107 lines
2.1 KiB
Plaintext
107 lines
2.1 KiB
Plaintext
REM *********************
|
|
REM ** primo programma **
|
|
REM ** conta insieme **
|
|
REM *********************
|
|
DO
|
|
a$=@splashscreen$
|
|
REM ******************
|
|
REM ** Main Program **
|
|
REM ******************
|
|
limit=100
|
|
limit_2=20
|
|
iterazioni=0
|
|
score=0
|
|
badscore=0
|
|
LOCATE 0,15
|
|
PRINT "---------------------------------------"
|
|
COLOR 3
|
|
LOCATE 4,15
|
|
PRINT " ";a$;" "
|
|
REPEAT
|
|
x=RAND(limit+1)
|
|
y=RAND(limit_2+1)
|
|
IF x<y
|
|
SWAP x,y
|
|
ENDIF
|
|
segno=RAND(2)
|
|
IF segno=1
|
|
se$=" +"
|
|
resu=x+y
|
|
ELSE
|
|
se$=" -"
|
|
resu=x-y
|
|
ENDIF
|
|
riga=(iterazioni MOD 5)*2+1
|
|
IF riga=1
|
|
cancella
|
|
ENDIF
|
|
LOCATE 0,riga
|
|
REM Pen 2
|
|
PRINT " Quanto fa";x;se$;y;" ";
|
|
INPUT res
|
|
IF res=resu
|
|
LOCATE 25,riga
|
|
PRINT "OK!"
|
|
score=score+1
|
|
suono_ok
|
|
pallina(score,1)
|
|
ELSE
|
|
LOCATE 25,riga
|
|
PRINT "ERRORE! ";resu
|
|
badscore=badscore+1
|
|
suono_error
|
|
pallina(badscore,0)
|
|
ENDIF
|
|
iterazioni=iterazioni+1
|
|
UNTIL iterazioni>39
|
|
CLS
|
|
LOCATE 0,1
|
|
PRINT "Bravo ";a$;"!"
|
|
PRINT
|
|
PRINT "Hai eseguito ";score;" operazioni corrette"
|
|
PRINT " e ";badscore;" operazioni errate"
|
|
PRINT
|
|
PRINT "Ora tocca al prossimo giocatore!"
|
|
REM EVNT_TIMER(1000)
|
|
LOOP
|
|
REM ***************************
|
|
REM ** Procedure e funzioni **
|
|
REM ***************************
|
|
FUNCTION splashscreen$
|
|
CLS
|
|
LOCATE 0,1
|
|
PRINT " Conta Insieme"
|
|
PRINT " -------------"
|
|
LOCATE 1,5
|
|
INPUT "Come ti chiami? ";a$
|
|
LOCATE 1,8
|
|
PRINT "Ciao ";a$;", partiamo!"
|
|
CLS
|
|
RETURN a$
|
|
ENDFUNC
|
|
PROCEDURE suono_ok
|
|
RETURN
|
|
PROCEDURE suono_error
|
|
RETURN
|
|
PROCEDURE pallina(iterazioni,risultato)
|
|
IF risultato=1
|
|
REM pallina buona
|
|
LOCATE iterazioni-1,17
|
|
REM Pen 5
|
|
PRINT "O"
|
|
REM Pen 2
|
|
ELSE
|
|
REM pallina cattiva
|
|
LOCATE iterazioni-1,19
|
|
REM Pen 4
|
|
PRINT "X"
|
|
REM Pen 2
|
|
ENDIF
|
|
RETURN
|
|
PROCEDURE cancella
|
|
LOCATE 0,0
|
|
FOR ri=0 TO 10
|
|
PRINT " "
|
|
NEXT ri
|
|
RETURN
|