4 N2%=6%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1%:ON ERROR GOTO 0 1010 PRINT:PRINT "BOX ADDITION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY": PRINT "AS YOU CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=0%:R%=0%:T%=150% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%)>4% OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 O%=FNR%(2%):O%=1% IF R%<4%:GOSUB 1850 1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1% 1212 ON O% GOSUB 1810,1820 1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]" 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%); 1242 PRINT " = ";A$(3%);:T0=TIME(0%) 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT TAB(35%);"---> ["; 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(45%);"<---"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 1810 O$="+":A%(3%)=A%(1%)+A%(2%):RETURN 1820 O$="-":A%(3%)=A%(1%):A%(1%)=A%(1%)+A%(2%):RETURN 1850 A5%=A%(1%):B1%=FNR%(5%+5%*B%):GOTO 1850 IF B1%=A5% 1855 A%(2%)=FNR%(B%*B%+5%):GOTO 1850 IF B1%+A%(2%)>5%+B%*5%: A%(1%)=B1%:RETURN 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END