1 ! PROGRAM NAME --> F L A S H M -- BY BOB HUNTSMAN 2 PRINT:PRINT "FLASH MULTIPLY!!":PRINT 5 DIM B$(5%):B$(1%)="EASY":B$(2%)="MEDIUM":B$(3%)="HARD": B$(4%)="WRONG":B$(5%)="RIGHT" 12 OPEN "KB:" AS FILE 1%:FIELD #1%,K% AS Q$,1% AS M3$(K%) FOR K%=0% TO 10% :INPUT "NAME PLEASE";N$:V9$=SYS(CHR$(3%)) 15 RANDOMIZE 130 PRINT:PRINT "WHAT KIND OF PROBLEM? ";:GOSUB 29000:PRINT M4$;:A$=M4$ 135 GOTO 32000 IF A$="N":B%=1%:GOTO 170 IF A$="E":B%=2%:GOTO 170 IF A$="M":B%=3%:GOTO 170 IF A$="H" 140 PRINT:PRINT "'N' FOR NONE, 'E' FOR EASY, 'M' FOR MEDIUM," + " OR 'H' FOR HARD!":PRINT:GOTO 130 170 PRINT:PRINT "HOW MANY? ";:GOSUB 29000:GOTO 170 IF M4$<"1" OR M4$>"9" :X1%=ASCII(M4$)-48%:PRINT M4$:X%=0%:GOTO 1300 200 GOTO 1300 IF X%15%:RESUME 762 762 GOSUB 1060:M3%,C%,Z3%=0%:ON ERROR GOTO 0:PRINT TAB(16%);"TIME!!"; UNLESS E1%=3%:F1%=1%:RESUME 790 790 ON E1% GOTO 1320,1335,1350 800 X%(B%+3%)=X%(B%+3%)+1%:X%(B%)=X%(B%)+1% IF E%=3%:X%=X%+1%: RETURN 900 GOSUB 29000:M%=ASCII(M4$):IF M%=32% THEN Z%=1%:RETURN 910 GOTO 900 IF M%<48% OR M%>57%:PRINT M4$; IF M%<>32%:RETURN 1042 DEF FNR%(V3%) 1044 V4%=INT(1000%*RND(0%)):FNR%=V4%-(V4%/V3%)*V3%+1% 1050 FNEND 1060 WAIT 1%:ON ERROR GOTO 1062:INPUT #1%,H$:GOTO 1060 1062 ON ERROR GOTO 0 IF ERR<>15%:RESUME 1064 1064 M3%,Z3%=0%:WAIT 0%:RETURN 1100 DEF FNC$(X$,X1%) 1110 X1$="":X1$=X1$+X$ FOR K1%=1% TO X1% 1120 FNC$=X1$ 1130 FNEND 1300 A%=FNR%(6%):B0%=FNR%(6%):A1%=(B%-1%)*3%:GOTO 1300 IF B0%+A1%=B1%: B1%=B0%:A%=A%+A1%:B1%=B1%+A1% 1305 E1%=1%:C1%=A%*B1% 1310 C%=FNP%(A%,B1%,16%-(3%*B%)) 1320 IF C%=C1% THEN PRINT "CORRECT!!":E%=3%:GOSUB 800:GOTO 200 1325 E1%=2% 1330 PRINT "NO, ";N$;" -- TRY AGAIN!!";IF F1%=0%:PRINT: C%=FNP%(A%,B1%,14%-(3%*B%)) 1335 IF C%=C1% THEN PRINT "CORRECT!!":E%=2%:GOSUB 800:GOTO 200 1337 E1%=3% 1340 PRINT "NO, ";N$;" -- THAT'S STILL INCORRECT -- TRY ONCE MORE!!"; IF F1%=0%:PRINT:C%=FNP%(A%,B1%,20%) 1345 IF C%=C1% THEN PRINT "CORRECT!!":E%=3%:GOSUB 800:GOTO 200 1350 IF F1%=0% THEN PRINT "WRONG!!! THE CORRECT ANSWER IS";C1%;".": E%=0%:GOSUB 800:GOTO 200 1360 PRINT TAB(16%);"TIME IS UP ";N$;"!! THE CORRECT ANSWER IS";C1%;".": E%=0%:GOSUB 800:GOTO 200 29000 GOTO 29100 IF M3%=Z3%:M4$=M3$(M3%):M3%=M3%+1%:RETURN 29100 M3%=0%:V9$=SYS(CHR$(4%)):GET #1%:Z3%=RECOUNT:GOTO 29000 32000 U$="\ \ - ## OUT OF ## ---> ###%":V9$=SYS(CHR$(2%)):PRINT 32007 PRINT:PRINT N$;" -- HERE ARE YOUR SCORES:":PRINT 32010 FOR K%=1% TO 3%:GOTO 32100 IF X%(K%+3%)=0%:PRINTUSING U$, B$(K%),X%(K%),X%(K%+3%),100%*X%(K%)/X%(K%+3%) 32100 NEXT K% 32220 B%=0%:B%=B%+X%(K%) FOR K%=4% TO 6%:A%=0%:A%=A%+X%(K%) FOR K%=1% TO 3%:A%=100%*A%/B% 32230 B%=0%:B%=1% IF A%>60%:B%=2% IF A%>89%:DIM Z$(2%) 32240 Z$(0%)=", YOU DEFINITELY NEED MUCH MORE" + " PRACTICE!!":Z$(1%)=", YOU DID ABOUT AVERAGE" + " -- BUT YOU STILL NEED MORE PRACTICE!!" 32250 Z$(2%)=" -- GREAT -- YOU SEEM TO UNDERSTAND" + " THESE PROBLEMS VERY WELL!!" 32260 A$=NUM$(A%):PRINT:PRINT "YOUR CUMULATIVE SCORE IS"; LEFT(A$,LEN(A$)-1%);"%.":PRINT 32270 PRINT N$+Z$(B%):PRINT 32767 END