1 ! PROGRAM NAME --> S P E L L -- BY BOB HUNTSMAN 10 DIM B$(3%):B$(1%)="EASY":B$(2%)="MEDIUM":B$(3%)="HARD": OPEN "SPELL" FOR INPUT AS FILE 11% 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 DIM #11%,W1$(100%)=16%,W$(500%)=16% 20 R%=CVT$%(W$(0%)):W%=CVT$%(W1$(0%)):W2%=5% 25 RANDOMIZE:X%=0%:X1%=5% 130 PRINT:PRINT "WHAT KIND OF PROBLEM? ";:GOSUB 29000:PRINT M4$;:A$=M4$ 140 B%=0%:B%=1% IF A$="E":B%=2% IF A$="M":B%=3% IF A$="H":GOTO 32000 IF A$="N":GOTO 170 IF B%:PRINT:PRINT "'E' FOR EASY, 'M' FOR " " MEDIUM, 'H' FOR HARD, OR 'N' FOR NONE!!":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%W2%+1%: PRINT M4$;TAB(15%);:RETURN 1042 DEF FNR%(V3%) 1044 V4%=INT(1000%*RND(0%)) 1046 FNR%=V4%-(V4%/V3%)*V3%+1% 1050 FNEND 1300 L%=B%+2%:FOR K%=0% TO W2% 1305 G%(K%)=FNR%(R%):GOTO 1305 IF G%(K%)=G%(J%) FOR J%=0% TO K%-1%:GOTO 1305 IF LEN(W$(G%(K%)))<>FNL%(L%,1%) 1310 NEXT K%:Z$(K%)=W$(G%(K%)) FOR K%=0% TO W2% 1315 Z$(W2%+1%)="NONE OF THE ABOVE" 1320 W$=W1$(FNR%(W%)):GOTO 1320 IF LEN(W$)<>FNL%(L%,2%) 1330 W1%=FNR%(W2%+2%)-1%:Z$(W1%)=W$ IF W1%<=W2% 1340 GOSUB 700:GOSUB 900 1345 IF C%=W1% THEN PRINT "CORRECT!!":E%=3%:GOSUB 800: GOTO 200 1347 E%=2% 1350 PRINT "NO, ";N$;", TRY AGAIN!":GOSUB 900 1355 IF C%=W1% THEN PRINT "CORRECT!!":GOSUB 800:GOTO 200 1360 PRINT "NO -- YOU'RE STILL INCORRECT. TRY IT ONCE MORE!!!": GOSUB 900 1365 IF C%=W1% THEN PRINT "CORRECT!!":E%=1%:GOSUB 800: GOTO 200 1370 PRINT "SORRY -- THE CORRECT ANSWER IS ";CHR$(65%+W1%);".": E%=0%:GOSUB 800:GOTO 200 20000 DEF FNL%(V%,V1%) 20010 FNL%=V%:FNL%=LEN(W$(G%(K%))) IF V1%=1% AND V%>4% AND LEN(W$(G%(K%)))>4%:FNL%=LEN(W$) IF V%>4% AND V1%=2% AND LEN(W$)>4% 20020 FNEND 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% 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