Source Code
1 LET S=0
2 LET HS=0
3 LET T=180
4 DIM B$(21,21)
5 LET COUNT=30
6 LET LIVES=3
7 GOSUB 7000
8 LET CHECK=1
9 LET E=0
10 LET R=1
11 LET B$(1)="% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
20 LET B$(2)="% .........% .........% "
30 LET B$(3)="% .% % % .% % % .% .% % % .% % % .% "
40 LET B$(4)="% *% % % .% % % .% .% % % .% % % *% "
50 LET B$(5)="% .% % % .% % % .% .% % % .% % % .% "
60 LET B$(6)="% ...................% "
70 LET B$(7)="% .% % % .% .% % % % % .% .% % % .% "
80 LET B$(8)="% .....% ...% ...% .....% "
90 LET B$(9)="% % % % % .% .......% .% % % % % "
100 LET B$(10)="% % % % % .% .......% .% % % % % "
110 LET B$(11)="% % % % % .% .% ---% .% .% % % % % "
120 LET B$(12)="-.......% % .......-"
130 LET B$(13)="% % % % % .% .% ---% .% .% % % % % "
140 LET B$(14)="% % % % % .% .... ..% .% % % % % "
150 LET B$(15)="% % % % % .% .% % % % % .% .% % % % % "
160 LET B$(16)="% .........% .........% "
170 LET B$(17)="% *% % % .% % % .% .% % % .% % % *% "
180 LET B$(18)="% ...% ...........% ...% "
190 LET B$(19)="% % % .% .% % % % % % % % % .% .% % % "
200 LET B$(20)="% % % ...............% % % "
210 LET B$(21)="% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
220 FOR N=1 TO 21
230 PRINT AT N,1;B$(N)
240 NEXT N
250 LET Y=14
255 LET E$=" "
260 LET X=12
265 LET D$=" "
270 LET A$=">"
275 LET C=1
280 LET GX=12
285 LET GY=12
290 LET GX1=12
295 LET GY1=11
300 PRINT AT GX,GY;"%""
310 PRINT AT GX1,GY1;"%""
320 PRINT AT Y,X;A$
325 PRINT AT 0,0;"LIVES:";LIVES;AT 0,19;"HI-SCORE:";HS
330 IF INT (RND*50)=0 THEN GOSUB 1000
335 PRINT AT Y,X;" "
340 IF INKEY$="8" OR (B$(Y,X+1)="-" AND R=1) THEN GOTO 1500
350 IF INKEY$="5" OR (B$(Y,X-1)="-" AND R=-1) THEN GOTO 1600
355 IF INKEY$<>"5" AND INKEY$<>"6" AND INKEY$<>"7" AND INKEY$<>"8" AND INKEY$<>"" THEN GOTO 4000
360 IF INKEY$="7" THEN GOSUB 1700
365 IF INKEY$="6" THEN GOSUB 1800
370 IF B$(Y,X+R)<>"-" AND B$(Y,X+R)<>"% " THEN LET X=X+R
371 IF B$(Y+E,X)<>"% " THEN LET Y=Y+E
375 IF B$(Y,X)="*" THEN GOSUB 2000
380 IF B$(Y,X)="." THEN LET S=S+1
390 IF B$(Y,X)="£" THEN LET S=S+10
395 IF B$(Y,X)="£" THEN LET T=T+10
400 LET B$(Y,X)=" "
405 PRINT AT 0,8;"SCORE:";S
410 PRINT AT Y,X;A$
415 IF S=T THEN GOTO 5000
420 PRINT AT GX,GY;D$;AT GX1,GY1;E$
425 IF RND<A THEN GOTO 436
430 IF GY<X AND B$(GX,GY+C)<>"% " AND B$(GX,GY+C)<>"% " THEN GOTO 3000
436 IF RND<A THEN GOTO 450
440 IF GY>X AND B$(GX,GY-C)<>"% " AND B$(GX,GY-C)<>"-" THEN GOTO 3020
446 IF RND<A THEN GOTO 456
450 IF GX<Y AND B$(GX+C,GY)<>"% " THEN GOTO 3040
456 IF RND<A THEN GOTO 470
460 IF GX>Y AND B$(GX-C,GY)<>"% " THEN LET GX=GX-C
465 IF RND<A THEN GOTO 474
470 IF GY1<X AND B$(GX1,GY1+C)<>"% " AND B$(GX1,GY1+C)<>"-" THEN GOTO 3060
474 IF RND<A THEN GOTO 478
475 IF GY1>X AND B$(GX1,GY1-C)<>"% " AND B$(GX1,GY1-C)<>"-" THEN GOTO 3080
478 IF RND<A THEN GOTO 486
480 IF GX1<Y AND B$(GX1+C,GY1)<>"% " THEN GOTO 3100
486 IF RND<A THEN GOTO 500
490 IF GX1>Y AND B$(GX1-C,GY1)<>"% " THEN LET GX1=GX1-C
500 LET COUNT=COUNT+1
510 IF COUNT>=30 THEN LET C=1
520 IF C=-1 THEN PRINT AT GX,GY;""""
525 IF C=1 THEN PRINT AT GX,GY;"%""
530 IF C=-1 THEN PRINT AT GX1,GY1;""""
535 IF C=1 THEN PRINT AT GX1,GY1;"%""
540 IF GX=Y AND GY=X THEN GOTO 9000
550 IF GX1=Y AND GY1=X THEN GOTO 9000
560 LET D$=B$(GX,GY)
570 LET E$=B$(GX1,GY1)
580 LET CHECK=1
600 GOTO 330
\n1000 IF B$(14,11)="£" THEN RETURN
\n1010 PRINT AT 14,11;"£"
\n1020 IF B$(14,11)="." THEN LET T=T-1
\n1030 LET B$(14,11)="£"
\n1040 RETURN
\n1500 PRINT AT Y,X;" "
\n1510 LET A$=">"
\n1520 IF B$(Y,X+1)="-" THEN LET CHECK=0
\n1530 IF CHECK=0 THEN LET X=2
\n1535 IF CHECK=0 THEN GOTO 375
\n1540 IF B$(Y,X+1)<>"% " THEN LET R=1
\n1545 IF B$(Y,X+1)<>"% " THEN LET E=0
\n1550 GOTO 370
\n1600 PRINT AT Y,X;" "
\n1610 LET A$="<"
\n1620 IF B$(Y,X-1)="-" THEN LET CHECK=0
\n1630 IF CHECK=0 THEN LET X=20
\n1635 IF CHECK=0 THEN GOTO 375
\n1640 IF B$(Y,X-1)<>"% " THEN LET R=-1
\n1645 IF B$(Y,X-1)<>"% " THEN LET E=0
\n1650 GOTO 370
\n1700 PRINT AT Y,X;" "
\n1710 IF B$(Y-1,X)<>"% " AND B$(Y-1,X)<>"-" THEN LET E=-1
\n1715 IF B$(Y-1,X)<>"% " AND B$(Y-1,X)<>"-" THEN LET R=0
\n1720 LET A$="A"
\n1730 RETURN
\n1800 PRINT AT Y,X;" "
\n1810 IF B$(Y+1,X)<>"% " AND B$(Y-1,X)<>"-" THEN LET E=1
\n1815 IF B$(Y+1,X)<>"% " AND B$(Y-1,X)<>"-" THEN LET R=0
\n1820 LET A$="V"
\n1830 RETURN
\n2000 LET S=S+10
\n2010 LET C=-1
\n2020 LET B$(Y,X)=" "
\n2030 PRINT AT Y,X;A$
\n2040 LET T=T+10
\n2050 LET COUNT=0
\n2060 RETURN
\n3000 LET GY=GY+C
\n3010 GOTO 470
\n3020 LET GY=GY-C
\n3030 GOTO 470
\n3040 LET GX=GX+C
\n3050 GOTO 470
\n3060 LET GY=GY1+C
\n3070 GOTO 500
\n3080 LET GY1=GY1-C
\n3090 GOTO 500
\n3100 LET GX1=GX1+C
\n3110 GOTO 500
\n4000 LET R=0
\n4010 LET E=0
\n4020 GOTO 360
\n5000 CLS
\n5005 PRINT AT 10,31;"*"
\n5010 FOR N=1 TO 27
\n5020 PRINT AT 10,N;" %" >"
\n5025 REM SHEET CLEARED
\n5030 NEXT N
\n5040 FOR N=27 TO 1 STEP -1
\n5050 PRINT AT 10,N;""" < "
\n5060 NEXT N
\n5070 LET T=T+180
\n5080 GOTO 8
\n7000 PRINT AT 0,12;"MUNCHER II";TAB 11;"\''\''\''\''\''\''\''\''\''\''"
\n7010 PRINT AT 9,0;"--------------------------------"
\n7020 PRINT AT 11,3;"SELECT SKILL LEVEL (1-5)"
\n7030 PRINT TAB 7;"(5 IS THE EASIEST)"
\n7040 PRINT AT 14,0;"--------------------------------"
\n7050 PRINT TAB 5;" JAMES S. BROADDUS 1983"
\n7060 LET A=CODE INKEY$-28
\n7070 IF A>5 OR A<1 THEN GOTO 7060
\n7080 LET A=A/10
\n7090 LET A=A+.1
\n7100 CLS
\n7110 RETURN
\n8000 IF GY<>X OR GX<>Y THEN GOTO 8060
\n8010 LET S=S+10
\n8020 LET T=T+10
\n8030 LET GY=12
\n8040 LET GX=12
\n8045 PRINT AT Y,X;A$
\n8050 GOTO 500
\n8060 IF GY>=X OR GX1<>Y THEN GOTO 500
\n8070 LET S=S+10
\n8080 LET T=T+10
\n8090 LET GY1=11
\n8100 LET GX1=12
\n8105 PRINT AT Y,X;A$
\n8110 GOTO 500
\n9000 IF COUNT<=30 THEN GOTO 8000
\n9005 LET LIVES=LIVES-1
\n9010 FOR N=1 TO 10
\n9015 PRINT AT Y,X;A$
\n9016 FOR Q=1 TO 2
\n9017 NEXT Q
\n9018 PRINT AT Y,X;CHR$ (CODE A$+128)
\n9019 NEXT N
\n9020 IF LIVES<=0 THEN GOTO 9500
\n9025 CLS
\n9030 GOTO 210
\n9500 IF HS<S THEN LET HS=S
\n9510 PRINT AT 10,0;"HIT ANY KEY TO RESTART"
\n9520 IF INKEY$="" THEN GOTO 9520
\n9530 LET S=0
\n9540 CLS
\n9550 LET T=180
\n9560 LET LIVES=3
\n9570 GOTO 8
\n9580 CLEAR
\n9590 SAVE "1025%2"
\n9600 RUN