home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1991-12-02 | 3.8 KB | 99 lines |
- 5 REM SAVE"MNCHMATH.BAS",A
- 10 REM Munchmath from June 84 Compute!'s PC & PCjr
- 100 RANDOMIZE(1):WIDTH 40:SCREEN 0,1:KEY OFF:DEF SEG=0:POKE 1047,80
- 110 SM=9:L=1:COLOR 14,1,1:CLS
- 120 H$=CHR$(11):D$=STRING$(21,31):S$=H$+D$
- 130 J$=STRING$(22,223):P=4:M=1:GOTO 760
- 140 D=VAL(AN$):IF ASC(AN$)=81 AND W+R>0 THEN 660
- 150 IF INT(D) <> INT (C) THEN 180
- 160 P=P+1:R=R+1:M=M+1:SC=SC+10
- 170 SOUND 252,3:GOTO 560
- 180 M=M+1:W=W+1:RW=22-LEN(C$):RV=RW-1:IF Q=3 THEN LOCATE 9,12:PRINT STRING$(30,32):LOCATE 10,RV:PRINT C;:FOR I=1 TO 400:NEXT I:GOTO 200
- 190 LOCATE 10,12:PRINT STRING$(20,32):LOCATE 10,RW-1:PRINT C;:FOR I=1 TO 400:NEXT I
- 200 SOUND 100,0.7:GOTO 580
- 210 SOUND 200,1:FOR I=1 TO 100:NEXT I:RETURN
- 220 RANDOMIZE(RD)
- 230 A=INT(RND(1)*5*L)+1
- 240 B=INT(RND(1)*5*L)+1:IF B>A THEN A=A+B
- 250 E=INT(A*B):A$=STR$(A):B$=STR$(B):E$=STR$(E)
- 260 IF Q=1 THEN C=A+B:X=43:GOTO 300
- 270 IF Q=2 THEN C=A-B:X=45:GOTO 300
- 280 IF Q=3 THEN C=A:GOTO 340
- 290 C=E:X=88
- 300 C$=STR$(C):LOCATE 7,INT((40-LEN(A$))/2):PRINT A
- 310 LOCATE 8,INT((40-LEN(B$))/2):PRINT B:D$=STRING$(3,223):LC=INT((40-LEN(D$))/2):LOCATE 9,LC:PRINT D$:LOCATE 8,LC:PRINT CHR$(X)
- 320 PRINT LEFT$(S$,10);SPC(19-LEN(C$));STRING$(15,32):GOSUB 970:IF AN$="" THEN 320
- 330 D=VAL(AN$):GOTO 140
- 340 C$=STR$(C):LC=22-LEN(C$)
- 350 LE=LEN(E$):LOCATE 11,11:PRINT STRING$(20,32):LOCATE 12,11:PRINT STRING$(20,32)
- 360 LOCATE 11,LC-1:PRINT STRING$(LE,220);:IF LEN(B$)=3 THEN LB=2 ELSE LB=1
- 370 LOCATE 12,LC-3-LB:PRINT B:LOCATE 12,LC-1:PRINT E:LOCATE 12,LC-2:PRINT CHR$(251)
- 380 GOSUB 970:IF AN$="" THEN 380
- 390 GOTO 140
- 400 LOCATE 2,SM+P:PRINT CHR$(64):FOR I=200 TO 220:SOUND I*2,1:NEXT I
- 410 LOCATE 2,SM+P:PRINT CHR$(32):SC=SC-50:IF SC<0 THEN SC=0
- 420 L=L-1:IF L=0 THEN L=1
- 430 P=4:M=1:CLS:GOTO 950
- 440 LOCATE 2,SM+M-1:PRINT CHR$(32):FOR I=1 TO 6:LOCATE 2,SM+M:PRINT CHR$(8)
- 450 LOCATE 2,SM+P:PRINT CHR$(8):LOCATE 2,SM+P:PRINT CHR$(2):LOCATE 2,SM+M:PRINT CHR$(8)
- 460 LOCATE 2,SM+M:PRINT CHR$(32):LOCATE 2,SM+P:PRINT CHR$(32):P=P-1:M=M-1:NEXT I
- 470 FOR I=12 TO 9 STEP-1:LOCATE 2,SM+I:PRINT CHR$(8):LOCATE 2,SM+9:PRINT CHR$(8)
- 480 SOUND INT(RND(1)*90+50),0.5:LOCATE 2,SM+I:PRINT CHR$(2)
- 490 LOCATE 2,SM+I:PRINT CHR$(32):NEXT I
- 500 COLOR 4,1:FOR I=1 TO 20:PRINT CHR$(11);CHR$(31);TAB(15);"** 100 **";:SOUND INT(RND(0)*200+50),0.5
- 510 Z$=SPACE$(9):PRINT CHR$(11);CHR$(31);TAB(15);Z$:NEXT I:SOUND 37,0:COLOR 7,1:L=L+1:IF L>9 THEN 660
- 520 SC=SC+100:P=4:M=1
- 530 REM SETUP
- 540 CLS:PRINT LEFT$(S$,3);SPC(9);J$
- 550 PRINT CHR$(11);SPC(13);CHR$(31);STRING$(14,254):COLOR 15,1:LOCATE 2,28:PRINT CHR$(3):COLOR 7,0
- 560 COLOR 14,1:LOCATE 2,SM+P-1:PRINT CHR$(32):LOCATE 2,SM+P:PRINT CHR$(2):COLOR 7,1
- 570 IF SM+P=SM+19 THEN 440
- 580 COLOR 4,1:LOCATE 2,SM+M-1:PRINT CHR$(32):LOCATE 2,SM+M:PRINT CHR$(8):COLOR 7,1
- 590 IF M=P THEN 400
- 600 PRINT LEFT$(S$,16);SPC(16);"Level:";L
- 610 PRINT LEFT$(S$,18);SPC(9);J$
- 620 PRINT LEFT$(S$,21);SPC(12);N$;"'s score:";SC
- 630 IF Q=3 THEN LOCATE 10,5:PRINT STRING$(20,32);
- 640 PRINT LEFT$(S$,7);SPC(17);" ":PRINT SPC(17);" ":PRINT SPC(13);" "
- 650 GOTO 220
- 660 CLS:PRINT CHR$(31);SPC(13-LEN(N$)/2);N$;"'s Scoreboard"
- 670 PRINT SPC(14);STRING$(2,31);"Problems:";W+R:PR=W+R
- 680 PRINT SPC(12);STRING$(2,31);"Right Answers:";R:PRINT SPC(12);STRING$(2,31);"Wrong Answers:";W
- 690 PRINT SPC(14);STRING$(2,31);"Grade:";INT(R/PR*100);"%"
- 700 PRINT SPC(12);STRING$(2,31);"Play Again (Y/N)?"
- 710 A$=INKEY$:RD=RND(1):IF A$="" OR (A$<>"Y" AND A$<>"N") THEN 710
- 720 IF A$="N" THEN SYSTEM
- 730 IF S$="Y" AND L<9 THEN RUN 100
- 740 PR=0:R=0:W=0:SC=0:P=4:M=1:GOTO 850
- 750 REM TITLE
- 760 LOCATE 1,1,0:FOR I=13 TO 29 STEP 2:READ CR,CL:COLOR CL,1:LOCATE 10,I:PRINT CHR$(CR):NEXT I:COLOR 14,1
- 770 READ F,G:IF F=-1 THEN 800
- 780 SOUND F+G,0.5
- 790 RD=RND(1):GOTO 770
- 800 FOR I=4 TO 24:SOUND I*10,0.5:PRINT LEFT$(S$,10);SPC(I);CHR$(8);STRING$(2,32);CHR$(2);
- 810 PRINT LEFT$(S$,10);SPC(I);CHR$(8);STRING$(2,32);CHR$(2)
- 820 NEXT I:SOUND 37,0
- 830 PRINT LEFT$(S$,10);SPC(24);STRING$(8,32)
- 840 COLOR 7,1:CLS:LOCATE 12,11:PRINT"What is your name";:BEEP:INPUT N$:IF LEN(N$)>10 THEN 840
- 850 COLOR 7,1:CLS:LOCATE 3,13:PRINT"What would you":GOSUB 210
- 860 LOCATE 5,12:PRINT"like to practice,":GOSUB 210
- 870 LOCATE 7,INT(20-LEN(N$)/2):PRINT N$;":":GOSUB 210
- 880 LOCATE 10,14:PRINT CHR$(31);"1) Addition":GOSUB 210
- 890 PRINT SPC(13);CHR$(31);"2) Subtratioon":GOSUB 210
- 900 PRINT SPC(13);CHR$(31);"3) Division":GOSUB 210
- 910 PRINT SPC(13);CHR$(31);"4) Multiplication":GOSUB 210
- 920 A$=INKEY$:Q=VAL(A$):Z=RND(1):IF Q<1 OR Q>4 THEN 920
- 930 PRINT LEFT$(S$,20);SPC(13);"Level (1-9)?"
- 940 A$=INKEY$:L=VAL(A$):IF L<1 OR L>9 THEN 940
- 950 GOTO 540
- 970 AN$="":RW=22-LEN(C$)
- 980 ZA$=INKEY$:IF ZA$="" THEN 980
- 990 ZL=LEN(AN$)
- 1000 IF ASC(ZA$)=8 AND ZL THEN LOCATE 10,RW-1:PRINT CHR$(32);:AN$=LEFT$(AN$,ZL-1):RW=RW-1:GOTO 980
- 1010 IF ZA$=CHR$(13) THEN PRINT:RETURN
- 1020 IF ZA$<>"Q" AND (ZA$<"0" OR ZA$>"9") OR ZL=LEN(C$)-1 THEN 980
- 1030 LOCATE 10,RW:PRINT ZA$;:RW=RW+1:AN$=AN$+ZA$:GOTO 980
- 1040 DATA 77,2,85,3,78,4,67,5,72,6,77,7,65,8,84,10,72,11
- 1050 DATA 16,195,22,96,28,49,33,125,33,125,33,125,33,125
- 1060 DATA 28,49,28,49,28,49,22,96,28,49,22,96,16,195,-1,0
-