DECLARE SUB calcON () DECLARE SUB calcOff () DECLARE SUB pulizia () DECLARE SUB esercizio3 () DECLARE SUB esercizio4 () DECLARE SUB esercizio1 () DECLARE SUB esercizio2 () DECLARE SUB esercizio () DECLARE SUB LISTA () DECLARE SUB cmdesercizio_click () DECLARE SUB frase () DECLARE SUB presentazione () DECLARE SUB protez () DECLARE SUB messaggio (Nmessaggio) DECLARE SUB st (n AS INTEGER) COMMON SHARED SEC% DIM SHARED nl AS STRING DIM SHARED punti AS INTEGER DIM SHARED np AS INTEGER DIM SHARED a$ 'FRASE protetta DIM SHARED scuola$ 'FRASE protetta DIM SHARED livello% DIM SHARED proced(7) DIM SHARED passaggio% DIM SHARED risultato$(7) DIM SHARED sugg$(7) DIM SHARED suggf$(7) DIM SHARED orologio! CONST vero = -1 CONST falso = 0 CONST suonoallarme = "MBT255L16O6CO4GEDCBT255L16O6CO4GEDCBT255L16O6CO4GEDC" SUB calcOff () imgtot.visible = falso testocalcolo.visible = falso cmdcopia.visible = falso cornice1.visible = falso END SUB SUB calcON () imgtot.visible = vero testocalcolo.visible = vero cmdcopia.visible = vero cornice1.visible = vero testocalcolo.SETFOCUS END SUB SUB cmduscita_Click () END END SUB SUB esercizio1 () livello% = 1: timer1.interval = 8000 ETIlivello.caption = " " + STR$(livello%) + " LIVELLO " CALL pulizia inferiore = 1: superiore = 2 RANDOMIZE TIMER n% = INT((superiore - inferiore + 1) * RND + inferiore) SELECT CASE n% CASE 1 inferiore = 4: superiore = 9 RANDOMIZE TIMER n = INT((superiore - inferiore + 1) * RND + inferiore) h = n * 3: b = n * 4: d = n * 5: p = (b + h) * 2 PRINT "..................................................." PRINT " ESERCIZIO " PRINT " Un rettangolo ha il perimetro e la base lunghi " PRINT " rispettivamente" + STR$(p) + " cm. e " + STR$(b) + " cm." PRINT " Calcola la lunghezza della diagonale." PRINT "..................................................." rpl.visible = vero rpl.ADDITEM "Perimetro" rpl.ADDITEM "Diagonale" rpl.ADDITEM "Area" rpl.ADDITEM "Altezza " rpl.ADDITEM "Cateto" rpl.ADDITEM "Ipotenusa" proced(0) = 3: risultato$(0) = STR$(h) + " cm." sugg$(0) = STR$(p) + " / 2 -" + STR$(b): suggf$(0) = "Altezza = Perimetro/2 - Base" proced(1) = 1: risultato$(1) = STR$(d) + " cm." sugg$(1) = "(" + STR$(b) + ")+(" + STR$(h) + ")": suggf$(1) = "Diagonale=(base)+(altezza)" proced(2) = -1 CASE 2 inferiore = 4: superiore = 9 RANDOMIZE TIMER n = INT((superiore - inferiore + 1) * RND + inferiore) h = n * 3: b = n * 4: d = n * 5: a = b * h PRINT "..................................................." PRINT " ESERCIZIO " PRINT " Un rettangolo ha la base e la diagonale lunghi " PRINT " rispettivamente" + STR$(b) + " cm. e " + STR$(d) + " cm." PRINT " Calcola l'area (in centimetri quadrati cmq.) ." PRINT "..................................................." rpl.visible = vero rpl.ADDITEM "Perimetro" rpl.ADDITEM "Diagonale" rpl.ADDITEM "Area" rpl.ADDITEM "Altezza " rpl.ADDITEM "Cateto" rpl.ADDITEM "Ipotenusa" proced(0) = 3: risultato$(0) = STR$(h) + " cm." sugg$(0) = "(" + STR$(d) + ")-(" + STR$(b) + ")": suggf$(0) = "Altezza=(Diagonale)-(Base)" proced(1) = 2: risultato$(1) = STR$(a) + " cmq." sugg$(1) = STR$(b) + " *" + STR$(h): suggf$(1) = " Area = Base * Altezza" proced(2) = -1 END SELECT rpl.top = 11 rpl.Height = 22 - rpl.top rpl.SETFOCUS rpl.listindex = 0 passaggio% = 0 eti(0).visible = vero: eti(0).caption = " Cosa calcoli ?? " END SUB SUB esercizio2 () livello% = 2: timer1.interval = 12000 ETIlivello.caption = " " + STR$(livello%) + " LIVELLO " CALL pulizia inferiore = 4 superiore = 9 RANDOMIZE TIMER n = INT((superiore - inferiore + 1) * RND + inferiore) Dmin = n * 3 * 2 Dmag = n * 4 * 2 p = n * 5 * 4 a = (Dmin * Dmag) / 2 PRINT "..................................................." PRINT " ESERCIZIO " PRINT " Un rombo ha l'area di " + STR$(a) + " cmq. Sapendo che 1/2 della" PRINT " diagonale maggiore misura " + STR$(Dmag / 2) + " cm. calcolare" PRINT " la lunghezza del perimetro." PRINT "..................................................." rpl.visible = vero rpl.ADDITEM " Perimetro" rpl.ADDITEM " Lato" rpl.ADDITEM " Diagonale maggiore" rpl.ADDITEM " Area" rpl.ADDITEM " Altezza " rpl.ADDITEM " 1/2 Diagonale minore" rpl.ADDITEM " Diagonale minore" proced(0) = 2: risultato$(0) = STR$(Dmag) + " cm." sugg$(0) = STR$(Dmag / 2) + " * 2": suggf$(0) = "Diag. Magg.= semidiagonale magg. * 2" proced(1) = 6: risultato$(1) = STR$(Dmin) + " cm." sugg$(1) = STR$(a) + " * 2 /" + STR$(Dmag): suggf$(1) = "Diag.minore = 2 * area / diag.magg.)" proced(2) = 5: risultato$(2) = STR$(Dmin / 2) + " cm." sugg$(2) = STR$(Dmin) + " / 2": suggf$(2) = "Semidiag.minore = Diag. minore / 2" proced(3) = 1: risultato$(3) = STR$(n * 5) + " cm." sugg$(3) = "(" + STR$(Dmag / 2) + ")+(" + STR$(Dmin / 2) + ")": suggf$(3) = "Lato = (Dmag / 2)+(Dmin / 2)" proced(4) = 0: risultato$(4) = STR$(n * 5 * 4) + " cm." sugg$(4) = STR$(n * 5) + " * 4": suggf$(4) = "Perimetro = lato * 4" proced(5) = -1 rpl.top = 11 rpl.Height = 22 - rpl.top rpl.SETFOCUS rpl.listindex = 0 passaggio% = 0 eti(0).visible = vero eti(0).caption = "Cosa calcoli adesso ??" END SUB SUB esercizio3 () livello% = 3: timer1.interval = 14000 ETIlivello.caption = " " + STR$(livello%) + " LIVELLO " CALL pulizia inferiore = 4 superiore = 9 RANDOMIZE TIMER n = INT((superiore - inferiore + 1) * RND + inferiore) a = n * n * 45 Bmin = 3 * n pro = n * 12 Bmax = 15 * n h = n * 5 lob = n * 13 p = 36 * n PRINT "" PRINT " ESERCIZIO " PRINT " Un trapezio rettangolo ha l'area di " + STR$(a) + " cmq." PRINT " Sapendo che la base minore e la proiezione del lato " PRINT " obliquo sulla base maggiore misurano " PRINT " rispettivamente" + STR$(Bmin) + " e " + STR$(pro) + " cm." PRINT " Calcola la lunghezza del perimetro." PRINT "" rpl.visible = vero rpl.ADDITEM " Perimetro" rpl.ADDITEM " Lato obliquo" rpl.ADDITEM " Diagonale maggiore" rpl.ADDITEM " Base maggiore" rpl.ADDITEM " Area" rpl.ADDITEM " Altezza " rpl.ADDITEM " Base Minore" rpl.ADDITEM " Diagonale minore" proced(0) = 3: risultato$(0) = STR$(15 * n) + " cm." sugg$(0) = STR$(Bmin) + " +" + STR$(pro): suggf$(0) = "Base Magg. = Base Minore + Proiezione " proced(1) = 5: risultato$(1) = STR$(5 * n) + " cm." sugg$(1) = "2 *" + STR$(a) + " /(" + STR$(15 * n) + " +" + STR$(Bmin) + ")": suggf$(1) = "Altezza = 2 * area / ( base mag.+ base min.)" proced(2) = 1: risultato$(2) = STR$(13 * n) + " cm." sugg$(2) = "(" + STR$(5 * n) + ")+(" + STR$(pro) + ")": suggf$(2) = "Lato ob.=(Altezza)+(proiezione)" proced(3) = 0: risultato$(3) = STR$(36 * n) + " cm." sugg$(3) = STR$(15 * n) + " +" + STR$(Bmin) + " +" + STR$(13 * n) + " +" + STR$(5 * n): suggf$(3) = "Perim. = Base Mag.+ Base min.+ Altezza + lato ob." proced(4) = -1 rpl.top = 11 rpl.Height = 22 - rpl.top rpl.SETFOCUS rpl.listindex = 0 passaggio% = 0 eti(0).visible = vero eti(0).caption = "Cosa calcoli adesso ??" END SUB SUB esercizio4 () livello% = 4: timer1.interval = 18000 ETIlivello.caption = " " + STR$(livello%) + " LIVELLO " CALL pulizia inferiore = 3 superiore = 9 RANDOMIZE TIMER n = INT((superiore - inferiore + 1) * RND + inferiore) a = n * n * 90 h = n * 5 p = 54 * n PRINT "" PRINT " ESERCIZIO " PRINT " Un trapezio rettangolo ha l'area di " + STR$(a) + " cmq." PRINT " Sapendo che l'altezza ed il perimetro misurano " PRINT " rispettivamente" + STR$(h) + " cm." + " e" + STR$(p) + " cm., calcola" PRINT " la lunghezza della diagonale minore." PRINT "" rpl.visible = vero rpl.ADDITEM " Perimetro " rpl.ADDITEM " Lato obliquo " rpl.ADDITEM " Diagonale maggiore " rpl.ADDITEM " Base maggiore " rpl.ADDITEM " Proiez.lato obbliquo " rpl.ADDITEM " Base magg.+ base minore " rpl.ADDITEM " Area " rpl.ADDITEM " Altezza " rpl.ADDITEM " Base minore " rpl.ADDITEM " Diagonale minore " proced(0) = 5: risultato$(0) = STR$(36 * n) + " cm." sugg$(0) = "2 *" + STR$(a) + " /" + STR$(h): suggf$(0) = "Somma delle due basi = area * 2 / altezza" proced(1) = 1: risultato$(1) = STR$(13 * n) + " cm." sugg$(1) = STR$(p) + " - ( " + STR$(36 * n) + " +" + STR$(h) + " )": suggf$(1) = "Lato ob. = Perimetro - ( Somma delle due basi + altezza)" proced(2) = 4: risultato$(2) = STR$(12 * n) + " cm." sugg$(2) = "(" + STR$(13 * n) + ") - (" + STR$(h) + ")": suggf$(2) = "Proiez.= (lato ob.) - (altezza)" proced(3) = 8: risultato$(3) = STR$(12 * n) + " cm." sugg$(3) = "( " + STR$(36 * n) + "-" + STR$(12 * n) + " ) / 2": suggf$(3) = "Base min.= (Somma delle due basi-proiez.) / 2" proced(4) = 9: risultato$(4) = STR$(13 * n) + " cm." sugg$(4) = "(" + STR$(h) + ") + (" + STR$(12 * n) + ")": suggf$(4) = "Diag min = (altezza) + (base min.)" proced(5) = -1 rpl.top = 11 rpl.Height = 22 - rpl.top rpl.SETFOCUS rpl.listindex = 0 passaggio% = 0 eti(0).visible = vero eti(0).caption = "Iniziamo calcolando ..??" END SUB SUB EtiLIVELLO_Click () messaggio 11 tempo.interval = 2000 END SUB SUB Etinote_Click () abc$ = abc$ + "'\jz%l21zu+wvrftxr%ktuf{zhv+wnul}nryv+rqsz1x}t}zw{" + CHR$(13) + CHR$(10) abc$ = abc$ + "+ujswv%jlfjtf.+un'nrqjz}t'rvttpwpn3'^sv+wl~vs{t1" + CHR$(13) + CHR$(10) abc$ = abc$ + "+zhwv+nwt1ip+vxl}tnt1ip+xjvxvyytr%wtrsh+9fw{}njlnvyv%" + CHR$(13) + CHR$(10) abc$ = abc$ + "1Ylzjtl1ip+an{lxtyl:%jz%p+uf{t1s|xvwpnz%lwrgv}ryp+tfzrqtpyl9" + CHR$(13) + CHR$(10) abc$ = abc$ + "'^v%zt1x|{vwhy%p+zhwv+}n}p}qp+un'ozkmtttsr,'ns'%wylrxnv" + CHR$(13) + CHR$(10) abc$ = abc$ + "%hovl|lt'p8%wzxpmzql+xnvnrwl+ttu+Xtyt}qh~1ul}1zu+fpz1ip+~nun5+" + CHR$(13) + CHR$(10) abc$ = abc$ + "'Wv%ytuv~j'yrl}zhop1ilsv+vxzpj'~vl|tj'or%|y%z{rpz1j'" + CHR$(13) + CHR$(10) abc$ = abc$ + "%kl}q.n{l8%kt1rp~wh+9%l~vrwt%' LEN(abc$) THEN GOTO fine2 IF MID$(abc$, t%, 1) = CHR$(13) THEN WW$ = WW$ + CHR$(13) + CHR$(10) t% = t% + 1: GOTO inizio2 END IF a% = ASC(MID$(abc$, t%, 1)) IF (t% AND 3) = 0 THEN a% = a% - 5 IF (t% AND 3) = 1 THEN a% = a% - 7 IF (t% AND 3) = 2 THEN a% = a% - 11 IF (t% AND 3) = 3 THEN a% = a% - 17 WW$ = WW$ + CHR$(a%) GOTO inizio2 fine2: MSGBOX WW$ END SUB SUB Etisuono_Click () IF etisuono.caption = "[ ] Suono" THEN : etisuono.caption = "[&X] Suono": EXIT SUB IF etisuono.caption = "[&X] Suono" THEN : etisuono.caption = "[ ] Suono": EXIT SUB END SUB SUB Eti_Click (Index AS INTEGER) messaggio 12 tempo.interval = 2000 END SUB SUB Form_Click () RANDOMIZE TIMER tmsu.top = INT(RND * 18) + 3 RANDOMIZE TIMER tmsu.left = INT(RND * 30) + 10 IF tmsu.visible = falso THEN tmsu.visible = vero timer2.interval = 150 tmsu.SETFOCUS ELSE timer1.interval = 0 tmsu.visible = falso END IF END SUB SUB form_load () nl = CHR$(13) + CHR$(10) timer1.interval = 0 scuola$ = "" CALL protez punti = 0 st punti SCC$ = "zzzzz" ' SCUOLA MEDIA GONARS (UD) FOR i = 1 TO LEN(SCC$) scuola$ = scuola$ + CHR$(ASC(MID$(SCC$, i, 1)) - 90) NEXT f1.caption = scuola$ SCREEN.ControlPanel(0) = 10 'colore lettera tasti di scelta SCREEN.ControlPanel(1) = 8 'colore cornice SCREEN.ControlPanel(2) = 0 'filetto cornice SCREEN.ControlPanel(3) = vero SCREEN.ControlPanel(4) = 0 'selezione SCREEN.ControlPanel(5) = 3 ' tavolo SCREEN.ControlPanel(6) = 1 SCREEN.ControlPanel(7) = 176 'motivo SCREEN.ControlPanel(8) = 15 'elementi disattivati SCREEN.ControlPanel(9) = 8 'sfondo menu' SCREEN.ControlPanel(10) = 0 'primo piano menu' SCREEN.ControlPanel(11) = 4 'menu selezionato sfondo SCREEN.ControlPanel(12) = 7 'primo piano menu selezionato SCREEN.ControlPanel(13) = 15 's.barra SCREEN.ControlPanel(14) = 0 'p.barra SCREEN.ControlPanel(15) = -1 'tridimensione SCREEN.ControlPanel(16) = 4 'sfondo barra titolo esempio msgbox SCREEN.ControlPanel(17) = 15 'primo piano barra con titoli presentazione timerstart.interval = 1 calcOff END SUB SUB Im1_Click () END SUB SUB messaggio (Nmessaggio) imgmessaggio.top = 1 imgmessaggio.Width = 41 imgmessaggio.visible = vero imgmessaggio.CLS SELECT CASE Nmessaggio CASE 1 imgmessaggio.PRINT " " imgmessaggio.PRINT " ATTENZIONE !! ERRORE " imgmessaggio.PRINT " " imgmessaggio.PRINT " Cancella con il tasto <--" imgmessaggio.PRINT " o con il tasto cancella " CASE 2 imgmessaggio.PRINT " " imgmessaggio.PRINT " ATTENZIONE !! ERRORE " imgmessaggio.PRINT " ------------------------- " imgmessaggio.PRINT " Non e' la grandezza da " imgmessaggio.PRINT " calcolare adesso . " CASE 3 imgmessaggio.PRINT " " imgmessaggio.PRINT " ATTENZIONE !! ERRORE " imgmessaggio.PRINT " " imgmessaggio.PRINT " MANCA L' UNITA' DI " imgmessaggio.PRINT " MISURA " CASE 4 imgmessaggio.top = 17 imgmessaggio.PRINT " ATTENZIONE !! Il calcolo e' errato. " imgmessaggio.PRINT " Ti suggerisco di eseguire: " imgmessaggio.PRINT "" imgmessaggio.PRINT " " + sugg$(passaggio%) CASE 5 imgmessaggio.PRINT " " imgmessaggio.PRINT " B R A V O ! ! ! " imgmessaggio.PRINT " " CASE 6 imgmessaggio.PRINT " " imgmessaggio.PRINT " B R A V O ! ! ! " imgmessaggio.PRINT " " CASE 9 imgmessaggio.top = 17 imgmessaggio.Width = 60 imgmessaggio.PRINT " SUGGERIMENTO : " imgmessaggio.PRINT " " imgmessaggio.PRINT " " + suggf$(passaggio%) imgmessaggio.PRINT " " CASE 10 imgmessaggio.top = 17 imgmessaggio.Width = 60 imgmessaggio.PRINT " Calcolo ERRATO !!! Ti suggerisco la formula : " imgmessaggio.PRINT " " imgmessaggio.PRINT " " + suggf$(passaggio%) imgmessaggio.PRINT " " CASE 11 imgmessaggio.PRINT " " imgmessaggio.PRINT " Non cliccare !!! " imgmessaggio.PRINT " Pensa a risolvere l'esercizio. " CASE 12 imgmessaggio.PRINT " Non distrarti !!! " imgmessaggio.PRINT " Risolvi l'esercizio se vuoi giocare. " CASE 13 imgmessaggio.PRINT " SVEGLIATI !!. " imgmessaggio.PRINT " E' la quarta volta che sbagli. " imgmessaggio.PRINT " Lavora con calma e con ordine." CASE 100 imgmessaggio.PRINT " ----------------------------------- " imgmessaggio.PRINT " Soft. Prof. C. Muscolino Palmanova UD " imgmessaggio.PRINT " ----------------------------------- " END SELECT END SUB SUB presentazione () abc$ = abc$ + "" + CHR$(13) + CHR$(10) abc$ = abc$ + "1%'+1%'+%''+1%'+1%'+1%'+1" + CHR$(13) + CHR$(10) abc$ = abc$ + "+1%'+1%'11%%'1%+1%'+1%'+1%'+" + CHR$(13) + CHR$(10) abc$ = abc$ + "'+1%'+1%+11%'+1%'+1%'+1%'" + CHR$(13) + CHR$(10) abc$ = abc$ + "%'+1%'+1%'+1%'+1%'+1%'+1%'+1%'+1%'+1%" + CHR$(13) + CHR$(10) abc$ = abc$ + "1LLZ^J[]ZF'[ZFULK%'+1%" + CHR$(13) + CHR$(10) abc$ = abc$ + "1Fw{}njlnvyz%kp}%[pwlxr%kt1Uprlv}r" + CHR$(13) + CHR$(10) abc$ = abc$ + "" inizio3: t% = t% + 1 IF t% > LEN(abc$) THEN GOTO FINE3 IF MID$(abc$, t%, 1) = CHR$(13) THEN WW$ = WW$ + CHR$(13) + CHR$(10) t% = t% + 1: GOTO inizio3 END IF a% = ASC(MID$(abc$, t%, 1)) IF (t% AND 3) = 0 THEN a% = a% - 5 IF (t% AND 3) = 1 THEN a% = a% - 7 IF (t% AND 3) = 2 THEN a% = a% - 11 IF (t% AND 3) = 3 THEN a% = a% - 17 WW$ = WW$ + CHR$(a%) GOTO inizio3 FINE3: WW$ = WW$ + " Versione N' 2.3" MSGBOX WW$, 0, f1.caption END SUB SUB protez () a$ = "Soft prof. C. Muscolino - Palmanova " IF ASC(MID$(a$, 1, 1)) <> 83 THEN GOTO FINE IF ASC(MID$(a$, 2, 1)) <> 111 THEN GOTO FINE IF ASC(MID$(a$, 35, 1)) <> 97 THEN GOTO FINE IF ASC(MID$(a$, 36, 1)) <> 32 THEN GOTO FINE EXIT SUB FINE: CLS : LOCATE 10, 1: MSGBOX "COPIA MANOMESSA." END END SUB SUB pulizia () FOR O% = 0 TO 5 eti(O%).caption = "" eti(O%).visible = falso testo(O%).text = "" testo(O%).visible = falso NEXT CLS DO WHILE rpl.listcount rpl.REMOVEITEM 0 LOOP END SUB SUB Rpl_Click () imgmessaggio.CLS imgmessaggio.visible = falso END SUB SUB Rpl_KeyPress (keyascii AS INTEGER) imgmessaggio.visible = falso IF keyascii = 27 THEN : MSGBOX " CIAO!! A PRESTO.": END IF keyascii = 13 THEN IF proced(passaggio%) = rpl.listindex THEN punti = punti + 80 messaggio 5: tempo.interval = 1000 st punti IF cntSuono.value = 1 THEN : SOUND 1000, 2: SOUND 500, 2: SOUND 800, 2 eti(passaggio%).caption = rpl.text testo(passaggio%).visible = vero testo(passaggio%).enabled = vero testo(passaggio%).SETFOCUS rpl.visible = falso IF punti < 0 THEN calcON ELSE IF (TIMER - orologio!) < 3 THEN EXIT SUB punti = punti - 80 messaggio 2 st punti END IF orologio! = TIMER END IF END SUB SUB st (n AS INTEGER) im1.CLS IF etisuono.caption = "[ ] Suono" THEN : np = n: GOTO senzasuono eti: IF n = np THEN GOTO senzasuono IF n > np THEN np = np + 1 IF n < np THEN np = np - 1 FOR i% = 1 TO 10000: NEXT i$ = STR$(np) ln% = LEN(i$) FOR t% = 1 TO ln% IF t% = 1 THEN SOUND 50, 1: SOUND 50, 0 c$ = MID$(i$, t%, 1) X% = 16 - (ln% - t%) * 4 im1.currentY = 0 SELECT CASE c$ CASE "0" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "ͼ" CASE "1" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "2" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" im1.currentX = X%: im1.PRINT "" CASE "3" im1.currentX = X%: im1.PRINT " ͻ" im1.currentX = X%: im1.PRINT " ͹" im1.currentX = X%: im1.PRINT " ͼ" CASE "4" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT " " CASE "5" im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" CASE "6" im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" CASE "7" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "8" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT "ͼ" CASE "9" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT "ͼ" CASE " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "+" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT " " CASE "-" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT " " CASE "A" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT " " CASE ":" im1.currentX = X%: im1.PRINT " . " im1.currentX = X%: im1.PRINT " . " im1.currentX = X%: im1.PRINT " " END SELECT NEXT GOTO eti senzasuono: i$ = STR$(n) ln% = LEN(i$) FOR t% = 1 TO ln% c$ = MID$(i$, t%, 1) X% = 16 - (ln% - t%) * 4 im1.currentY = 0 SELECT CASE c$ CASE "0" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "ͼ" CASE "1" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "2" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" im1.currentX = X%: im1.PRINT "" CASE "3" im1.currentX = X%: im1.PRINT " ͻ" im1.currentX = X%: im1.PRINT " ͹" im1.currentX = X%: im1.PRINT " ͼ" CASE "4" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT " " CASE "5" im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" CASE "6" im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "ͼ" CASE "7" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "8" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT "ͼ" CASE "9" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT "ͼ" CASE " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT " " CASE "+" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT " " CASE "-" im1.currentX = X%: im1.PRINT " " im1.currentX = X%: im1.PRINT "" im1.currentX = X%: im1.PRINT " " CASE "A" im1.currentX = X%: im1.PRINT "ͻ" im1.currentX = X%: im1.PRINT "͹" im1.currentX = X%: im1.PRINT " " CASE ":" im1.currentX = X%: im1.PRINT " . " im1.currentX = X%: im1.PRINT " . " im1.currentX = X%: im1.PRINT " " END SELECT NEXT END SUB SUB Tempo_Timer () tempo.interval = 0 imgmessaggio.visible = falso END SUB SUB Testocalcolo_KeyDown (keycode AS INTEGER, Shift AS INTEGER) STATIC operazFatta% STATIC totale$ 'MSGBOX STR$(keycode) IF operazFatta% = vero THEN : operazFatta% = falso: testocalcolo.text = "" IF keycode = 13 THEN IF testocalcolo.text = "" THEN calcOff testo(passaggio%).text = totale$ testo(passaggio%).SETFOCUS testo(passaggio%).selstart = LEN(testo(passaggio%).text) EXIT SUB END IF imgtot.CLS tn$ = testocalcolo.text IF INSTR(tn$, "-") THEN n1 = VAL(LEFT$(tn$, INSTR(tn$, "-") - 1)) n2 = VAL(MID$(tn$, INSTR(tn$, "-") + 1)) totale = n1 - n2 totale$ = FORMAT$(totale, "### ### ###") imgtot.PRINT totale$ operazFatta% = vero EXIT SUB END IF IF INSTR(tn$, "+") THEN n1 = VAL(LEFT$(tn$, INSTR(tn$, "+") - 1)) n2 = VAL(MID$(tn$, INSTR(tn$, "+") + 1)) totale = n1 + n2 totale$ = FORMAT$(totale, "### ### ###") imgtot.PRINT totale$ operazFatta% = vero EXIT SUB END IF IF INSTR(tn$, "*") THEN n1 = VAL(LEFT$(tn$, INSTR(tn$, "*") - 1)) n2 = VAL(MID$(tn$, INSTR(tn$, "*") + 1)) totale = n1 * n2 totale$ = FORMAT$(totale, "### ### ###") imgtot.PRINT totale$ operazFatta% = vero EXIT SUB END IF IF INSTR(tn$, "/") THEN n1 = VAL(LEFT$(tn$, INSTR(tn$, "/") - 1)) n2 = VAL(MID$(tn$, INSTR(tn$, "/") + 1)) totale = n1 / n2 totale$ = FORMAT$(totale) imgtot.PRINT totale$ operazFatta% = vero EXIT SUB END IF END IF END SUB SUB Testo_KeyPress (Index AS INTEGER, keyascii AS INTEGER) STATIC tentativi% 'MSGBOX STR$(keyascii) IF keyascii = 27 THEN MSGBOX " CIAO!! A PRESTO." END END IF IF keyascii = 8 OR keyascii = 127 THEN : testo(passaggio%).text = "": imgmessaggio.visible = falso IF keyascii = 83 OR keyascii = 115 THEN testo(passaggio%).text = "" punti = punti - 30: st punti messaggio 9 EXIT SUB END IF IF keyascii = 13 THEN IF (TIMER - orologio!) < 3 THEN EXIT SUB orologio! = TIMER risposta$ = LCASE$(LTRIM$(RTRIM$(testo(passaggio%).text))) risultato$ = LCASE$(LTRIM$(RTRIM$(risultato$(passaggio%)))) IF INSTR(risposta$, "cm") = 0 THEN messaggio 3: punti = punti - 30: st punti tempo.interval = 2000 EXIT SUB END IF IF risposta$ = risultato$ THEN ' esatto il numero" punti = punti + 100 tentativi% = 0 messaggio 5: tempo.interval = 500 st punti testo(passaggio%).enabled = falso passaggio% = passaggio% + 1 calcOff IF proced(passaggio%) = -1 THEN '----- fine esercizio IF cntSuono.value = 1 THEN PLAY suonoallarme IF punti > 1000 AND livello% = 4 THEN : SEC% = 200: UNLOAD f1: EXIT SUB IF punti > 750 THEN : SEC% = 40: CALL esercizio4: EXIT SUB IF punti > 500 THEN : SEC% = 15: CALL esercizio3: EXIT SUB IF punti > 250 THEN : SEC% = 8: CALL esercizio2: EXIT SUB SEC% = 5: CALL esercizio1 EXIT SUB END IF eti(passaggio%).visible = vero eti(passaggio%).caption = "e adesso cosa calcoli ??" rpl.top = rpl.top + 1 rpl.Height = 22 - rpl.top rpl.visible = vero rpl.SETFOCUS ELSE '- "numero errato" punti = punti - 30 st punti tentativi% = tentativi% + 1 IF tentativi% = 1 THEN : messaggio 1: EXIT SUB IF tentativi% = 2 THEN : messaggio 10: EXIT SUB IF tentativi% = 3 THEN : messaggio 4: EXIT SUB IF tentativi% = 4 THEN : messaggio 13: EXIT SUB END IF END IF END SUB SUB Testo_KeyUp (Index AS INTEGER, keycode AS INTEGER, Shift AS INTEGER) 'MSGBOX STR$(KEYCODE) IF keycode = 83 OR keycode = 115 THEN testo(passaggio%).text = "" END SUB SUB timer1_timer () punti = punti - 5 st punti END SUB SUB Timer2_Timer () a$ = RIGHT$(a$, LEN(a$) - 1) + LEFT$(a$, 1) tmsu.text = LEFT$(a$, 38) END SUB SUB Timerstart_Timer () timerstart.interval = 0 CALL esercizio1 END SUB SUB Tmsu_KeyPress (keyascii AS INTEGER) tmsu.visible = falso timer2.interval = 0 'testorisposta.SETFOCUS END SUB