'27/1 DECLARE SUB cmdesercizio_click () DECLARE SUB frase () DECLARE SUB presentazione () DECLARE SUB protez () DECLARE SUB messaggio (Nmessaggio) DECLARE SUB st (n AS INTEGER) DIM SHARED punti AS INTEGER DIM SHARED np AS INTEGER DIM SHARED a$ 'FRASE protetta DIM SHARED scuola$ 'FRASE protetta DIM SHARED eserciziosvolto% DIM SHARED esercizisvolti% DIM SHARED risposta$ DIM SHARED TEMPOSTART DIM SHARED livello DIM SHARED CODICE% DIM SHARED rispostamemoria CONST vero = -1 CONST falso = 0 CONST suonoallarme = "MBT255L16O6CO4GEDCBT255L16O6CO4GEDCBT255L16O6CO4GEDC" SUB Cmdesci_Click () MSGBOX " CIAO!! A PRESTO." END END SUB SUB cmdesercizio_click () inizio: cmdintestazione.CAPTION = scuola$ IF eserciziosvolto% = falso THEN ms$ = " Non hai finito l'esercizio !!! " + CHR$(10) + CHR$(13) ms$ = ms$ + " Ti tolgo 150 punti. " MSGBOX ms$ punti = punti - 150 st punti END IF eserciziosvolto% = falso IF punti < 200 AND livello = -1 THEN livello = 0 ETILIVELLO.CAPTION = " 1ψ LIVELLO " TEMPOSTART = INT(TIMER) timer1.interval = 10000 END IF IF punti > 199 AND punti < 400 AND livello = 0 THEN livello = 1 IF cntSuono.value = 1 THEN PLAY suonoallarme ETILIVELLO.CAPTION = " 2ψ LIVELLO " MSGBOX " SEI AL 2' LIVELLO " timer1.interval = 15000 END IF IF punti > 399 AND punti < 600 AND livello = 1 THEN livello = 2 IF cntSuono.value = 1 THEN PLAY suonoallarme ETILIVELLO.CAPTION = " 3ψ LIVELLO " MSGBOX " SEI AL 3' LIVELLO " timer1.interval = 20000 END IF IF punti > 599 AND punti < 800 AND livello = 2 THEN livello = 3 IF cntSuono.value = 1 THEN PLAY suonoallarme ETILIVELLO.CAPTION = " 4ψ LIVELLO " MSGBOX " SEI AL 4' LIVELLO " timer1.interval = 30000 END IF IF punti > 799 AND punti < 1000 AND livello = 3 THEN livello = 4 IF cntSuono.value = 1 THEN PLAY suonoallarme ETILIVELLO.CAPTION = " 5ψ LIVELLO " MSGBOX " SEI AL 5' LIVELLO " timer1.interval = 50000 END IF IF punti > 999 THEN IF cntSuono.value = 1 THEN PLAY suonoallarme timer1.interval = 0 i$ = "" + CHR$(13) + CHR$(10) i$ = i$ + "COMPLIMENTI per i " + STR$(punti) + " punti." + CHR$(13) + CHR$(10) i$ = i$ + CHR$(13) + CHR$(10) i$ = i$ + "COSA VUOI FARE ADESSO ? " + CHR$(13) + CHR$(10) i$ = i$ + CHR$(13) + CHR$(10) i$ = i$ + " 1 per Uscire " + CHR$(13) + CHR$(10) i$ = i$ + " 2 per Giocare " + CHR$(13) + CHR$(10) i$ = i$ + " 3 per Ripetere gli esercizi" + CHR$(13) + CHR$(10) a$ = INPUTBOX$(i$, "", "", 2, 6) a$ = LTRIM$(RTRIM$(a$)) IF a$ = "" OR a$ = "1" THEN END numSEC% = 240 tt$ = "msu.exe " + STR$(numSEC%) IF a$ = "2" THEN RUN tt$ IF a$ = "3" THEN : eserciziosvolto% = vero: punti = 10: livello = -1: np = 0: GOTO inizio END IF etichetta: SELECT CASE livello CASE 0 RANDOMIZE TIMER inf = 1: sup = 6: a = INT((sup - inf + 1) * RND + inf) IF a > 3 THEN c1 = a * 3: c2 = a * 4: ip = a * 5 TESTO$ = "Un triangolo rettangolo ha i due cateti che " TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(c2) + " Metri. " TESTO$ = TESTO$ + "Calcola la misura dell'ipotenusa. " esp$ = "IPOTENUSA = " risposta = ip ELSE c1 = a * 5: c2 = a * 12: ip = a * 13 TESTO$ = "Un triangolo rettangolo ha un cateto e l'ipotenusa che " TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(ip) + " metri. " TESTO$ = TESTO$ + "Calcola la misura dell'altro cateto. " esp$ = " CATETO = " risposta = c2 END IF CASE 1 RANDOMIZE TIMER inf = 6: sup = 14: a = INT((sup - inf + 1) * RND + inf) IF a > 9 THEN c1 = a * 3: c2 = a * 4: ip = a * 5 TESTO$ = "Un triangolo rettangolo ha i due cateti che " TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(c2) + " Metri. " TESTO$ = TESTO$ + "Calcola la misura dell'ipotenusa. " esp$ = "IPOTENUSA = " risposta = ip ELSE c1 = a * 5: c2 = a * 12: ip = a * 13 TESTO$ = "Un triangolo rettangolo ha un cateto e l'ipotenusa che " TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(ip) + " metri. " TESTO$ = TESTO$ + "Calcola la misura dell'altro cateto. " esp$ = " CATETO = " risposta = c2 END IF ' CASE 2 RANDOMIZE TIMER inf = 2: sup = 9: a = INT((sup - inf + 1) * RND + inf) IF a > 5 THEN c1 = a * 3: c2 = a * 4: ip = a * 5 TESTO$ = "Un triangolo rettangolo ha un cateto e l'ipotenusa che" TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(ip) + " metri. " TESTO$ = TESTO$ + "Calcola la misura del perimetro. " esp$ = "Perimetro = " risposta = c1 + c2 + ip ELSE c1 = a * 5: c2 = a * 12: ip = a * 13 TESTO$ = "Un triangolo rettangolo ha i due cateti che " TESTO$ = TESTO$ + "misurano rispettivamente " + STR$(c1) + " e " + STR$(c2) + " Metri. " TESTO$ = TESTO$ + "Calcola la misura del perimetro. " esp$ = "Perimetro = " risposta = c1 + c2 + ip END IF ' CASE 3 RANDOMIZE TIMER inf = 2: sup = 9: a = INT((sup - inf + 1) * RND + inf) IF a > 5 THEN c1 = a * 3: c2 = a * 4: ip = a * 5 TESTO$ = "Un rettangolo ha la base lunga " + STR$(c2) + " metri. " TESTO$ = TESTO$ + "La diagonale misura " + STR$(ip * 10) + " decimetri. " TESTO$ = TESTO$ + "Calcola la misura del perimetro (in metri). " esp$ = "Perimetro = " risposta = c1 + c1 + c2 + c2 ELSE c1 = a * 5: c2 = a * 12: ip = a * 13 TESTO$ = "Un rettangolo ha l'altezza lunga " + STR$(c2 * 10) + " decimetri. " TESTO$ = TESTO$ + "La diagonale misura " + STR$(ip) + " metri. " TESTO$ = TESTO$ + "Calcola la misura del perimetro (in metri). " esp$ = "Perimetro = " risposta = c1 + c1 + c2 + c2 END IF ' CASE 4 RANDOMIZE TIMER inf = 2: sup = 9: a = INT((sup - inf + 1) * RND + inf) IF a > 5 THEN c1 = a * 3: c2 = a * 4: ip = a * 5 TESTO$ = "In un triangolo rettangolo i due cateti misurano " + STR$(c1) + " e " + STR$(c2) + " metri. " TESTO$ = TESTO$ + "Calcola la misura dell'altezza relativa all'ipotenusa. " TESTO$ = TESTO$ + "( Il risultato sara' con una cifra decimale.) " esp$ = "Altezza = " risposta = (INT((c1 * c2 / ip) * 100)) / 100 ELSE c1 = a * 5: c2 = a * 12: ip = a * 13 TESTO$ = "In un triangolo rettangolo i due cateti misurano " + STR$(c1) + " e " + STR$(c2) + " metri. " TESTO$ = TESTO$ + "Calcola la misura dell'altezza relativa all'ipotenusa. " TESTO$ = TESTO$ + "( Il risultato sara' con varie cifre decimali. Rispondi con due cifre decimali.) " esp$ = "Altezza = " risposta = (INT((c1 * c2 / ip) * 100)) / 100 END IF END SELECT risposta$ = LTRIM$(STR$(risposta)) IF risposta = rispostamemoria THEN GOTO etichetta rispostamemoria = risposta etitesto.CAPTION = esp$ TESTO1.TEXT = TESTO$ testorisposta.TEXT = "" testorisposta.SETFOCUS END SUB SUB Cmdintestazione_Click () cmdintestazione.CAPTION = " Non cliccarmi !!!! BASTAAAA...." BEEP END SUB SUB Cntsuono_Click () testorisposta.SETFOCUS END SUB SUB EtiLIVELLO_Click () cmdintestazione.CAPTION = " Non cliccare. Lavora !!!!" END SUB SUB EtiPUNTI_Click () cmdintestazione.CAPTION = " Lavora. Pensa a guadagnarti i punti !!!!" END SUB SUB ETPD_CLICK () RANDOMIZE TIMER testomessaggio.top = INT(RND * 18) + 3 RANDOMIZE TIMER testomessaggio.left = INT(RND * 30) + 10 IF testomessaggio.visible = falso THEN testomessaggio.visible = vero timer2.interval = 150 testomessaggio.SETFOCUS ELSE timer1.interval = 0 testomessaggio.visible = falso END IF END SUB SUB form_load () livello = -1 timer1.interval = 0 CALL protez st punti SCC$ = "z­―©¦›z§Ÿž£›z‘©¨›¬­z‚―žƒz" FOR i = 1 TO LEN(SCC$) scuola$ = scuola$ + CHR$(ASC(MID$(SCC$, i, 1)) - 90) NEXT cmdintestazione.CAPTION = scuola$ eserciziosvolto% = vero SCREEN.ControlPanel(0) = 4 'colore lettera tasti di scelta SCREEN.ControlPanel(1) = 7 SCREEN.ControlPanel(2) = 0 SCREEN.ControlPanel(3) = vero SCREEN.ControlPanel(4) = 0 SCREEN.ControlPanel(5) = 3 SCREEN.ControlPanel(6) = 0 SCREEN.ControlPanel(7) = 176 'motivo SCREEN.ControlPanel(8) = 15 'elementi disattivati SCREEN.ControlPanel(9) = 15 '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 ms$ = "Programma per esercitazione di calcolo con Teorema di Pitagora." + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "I dati vengono proposte casualmente." + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "Usa il mouse oppure il tasto alt+lettera evidenziata. " + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "Vi sono 5 livelli di difficolta'. " + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "Anche la velocita' e' importante : il trascorrere del tempo " + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "fa diminuire il punteggio. " + CHR$(13) + CHR$(10) ms$ = ms$ + "" + CHR$(13) + CHR$(10) ms$ = ms$ + "Quando superi il 5 livello puoi riposarti giocando per 300 sec. " + CHR$(13) + CHR$(10) MSGBOX ms$, 0, "TEOREMA DI PITAGORA Ver 1.00 " END SUB SUB Im1_Click () cmdintestazione.CAPTION = " Non giocare con il mouse !!!!" 'testorisposta.SETFOCUS END SUB SUB messaggio (Nmessaggio) imgMessaggio.visible = vero imgMessaggio.CLS SELECT CASE Nmessaggio CASE 1 imgMessaggio.PRINT " " imgMessaggio.PRINT " ATTENZIONE !! ERRORE " imgMessaggio.PRINT " " imgMessaggio.PRINT " Correggi con il tasto <-- " imgMessaggio.PRINT " " CASE 2 imgMessaggio.PRINT " " imgMessaggio.PRINT " ATTENZIONE !! ERRORE " imgMessaggio.PRINT " Si inizia con il simbolo di " imgMessaggio.PRINT " uguaglianza ( = ) " imgMessaggio.PRINT " Correggi con il tasto <--" CASE 100 imgMessaggio.PRINT " ----------------------------------- " imgMessaggio.PRINT " Soft. Prof. C. Muscolino Palmanova UD " imgMessaggio.PRINT " ----------------------------------- " END SELECT 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$, 3, 1)) <> 102 THEN GOTO FINE IF ASC(MID$(a$, 30, 1)) <> 109 THEN GOTO FINE IF ASC(MID$(a$, 31, 1)) <> 97 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 st (n AS INTEGER) im1.CLS IF cntSuono.value = 0 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 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 Testomessaggio_KeyPress (KeyAscii AS INTEGER) testomessaggio.visible = falso timer2.interval = 0 testorisposta.SETFOCUS END SUB SUB testorisposta_Change () testorisposta.TEXT = LTRIM$(RTRIM$(testorisposta.TEXT)) WHILE i < LEN(testorisposta.TEXT) i = i + 1 IF MID$(testorisposta.TEXT, i, 1) = "," AND MID$(risposta$, i, 1) = "." THEN GOTO jk END IF IF MID$(testorisposta.TEXT, i, 1) <> MID$(risposta$, i, 1) THEN Nmessaggio = 1 cmdintestazione.visible = falso CALL messaggio(Nmessaggio) punti = punti - 50 st punti i$ = STR$(INT(punti / (INT(TIMER) - TEMPOSTART) * 60)) ETIVEL.CAPTION = i$ + " punti al minuto " EXIT SUB END IF jk: WEND st punti IF LEN(testorisposta.TEXT) = LEN(risposta$) THEN IF cntSuono.value = 1 THEN : SOUND 1000, 2: SOUND 500, 2: SOUND 800, 2 eserciziosvolto% = vero esercizisvolti% = esercizisvolti% + 1 IF livello = 0 THEN punti = punti + 80 IF livello = 1 THEN punti = punti + 100 IF livello = 2 THEN punti = punti + 120 IF livello = 3 THEN punti = punti + 140 IF livello = 4 THEN punti = punti + 180 IF livello = 5 THEN punti = punti + 200 st punti i$ = STR$(INT(punti / (INT(TIMER) - TEMPOSTART) * 60)) ETIVEL.CAPTION = i$ + " punti al minuto " CALL cmdesercizio_click 'NUOVO EXIT SUB END IF st punti cmdintestazione.visible = vero cmdintestazione.CAPTION = scuola$ imgMessaggio.visible = falso END SUB SUB timer1_timer () punti = punti - 3 st punti i$ = STR$(INT(punti / (INT(TIMER) - TEMPOSTART) * 60)) ETIVEL.CAPTION = i$ + " punti al minuto " END SUB SUB Timer2_Timer () a$ = RIGHT$(a$, LEN(a$) - 1) + LEFT$(a$, 1) testomessaggio.TEXT = LEFT$(a$, 38) END SUB SUB Timerpartenza_Timer () Timerpartenza.interval = 0 cmdesercizio_click END SUB