10 REM ************************
20 REM 30 REM Gunpowder Plot 40 REM 50 REM BY D.L.LAU 60 REM 70 REM *********************** 80 REM (c)Computing with the Amstrad 90 ENV 1,100,2,2:ENT 2,20,2,1:ENT 3,20,2,1:ENV 3,20,2,1:ENV 4,1,0,5,10,-4,2:ENT 4,4,1,3,5,4,2,4,4,1 100 ENT 5,50,2,2:ENV 6,50,2,5:ENT 6,50,5,5:ENV 7,20,2,2:ENT 7,25,2,5:ENV 5,50,2,2:ENV 8,30,2,2 110 DIM ma(20,25):DIM a(2),b(2):DIM j(2),hi(10),n$(10):vv=1 120 CALL &BBFF:INK 4,18:INK 6,16:INK 13,0 130 REM *** set characters *** 140 FOR f=1 TO 20:FOR g=4 TO 25:ma(f,g)=0:NEXT:NEXT 150 SYMBOL AFTER 37:SYMBOL 91,28,28,8,56,120,14,50,96:SYMBOL 93,56,56,16,28,30,112,76,6 160 SYMBOL 123,56,56,18,124,144,40,44,96:SYMBOL 125,56,56,18,124,144,40,44,96 170 SYMBOL 38,56,56,16,254,16,40,68,130 180 SYMBOL 64,3,4,8:SYMBOL 141,0,0,16,60,124,248,240,96 190 SYMBOL 148,126,195,153,165,165,153,195,126:SYMBOL 149,0,60,102,90,90,102,60,0 200 SYMBOL 203,0,221,221,221,0,119,119,119 210 GOTO 1880 220 REM *** build screen *** 230 INK 0,3:BORDER 13 240 CLS 250 FOR f=2 TO 20:FOR g=4 TO 24 260 ON ma(f,g)+1 GOTO 270,290,270,300,310 270 NEXT:NEXT 280 GOTO 320 290 PEN 4:LOCATE f,g:PRINT CHR$(207):GOTO 270 300 PEN 2:LOCATE f,g:PRINT CHR$(203):GOTO 270 310 PEN 5:LOCATE f,g:PRINT CHR$(148):PRINT CHR$(22)+CHR$(1):PEN 9:LOCATE f,g:PRINT CHR$(149): PRINT CHR$(22)+CHR$(0):GOTO 270 320 LOCATE 1,1:PEN 6:PRINT" HI SC SCORE":PEN 1:LOCATE 18,1:PRINT STRING$(li,"]") 330 PEN 1:LOCATE 2,2:PRINT HI:LOCATE 10,2:PRINT SC 340 REM *** start *** 350 INK 10,17:INK 7,26:INK 9,1:INK 5,25:x=11:y=22:a(1)=3:b(1)=11:a(2)=18:b(2)=11:mm=0:pl=0:ti=0:po=0:dr=0:j(1)=1:j(2)=4 360 LOCATE x,y:PEN 1:PRINT"[" 370 LOCATE a(1),b(1):PEN 7:PRINT"&":LOCATE a(2),b(2):PRINT"&" 380 PEN 7:LOCATE 1,3:PRINT STRING$(20,208) 390 z=1:GOSUB 3270 400 z=2:GOSUB 3270 410 ll=INT(RND*350):IF pl=1 THEN 420 ELSE IF ll=18 OR ll=3 THEN SOUND 2,50,40,1,7,7,1:ma(ll,14)=5:LOCATE ll,14:PEN 15:PRINT CHR$(231):pl=1 420 IF pl=1 THEN po=po-1:IF po=0 THEN pl=0:INK 7,26 430 IF INT(RND*ap)=5 AND mm=0 THEN SOUND 3,250,60,8,8:mn=INT(RND*20)+4:mm=20 440 IF mm>0 THEN GOSUB 1580 450 GOTO 390 460 REM *** guy up *** 470 LOCATE x,y:PRINT"è":IF y=4 THEN RETURN 480 te=TEST(x*32-16,(26-y)*16+8):IF te=7 THEN 1730 490 IF te=9 AND po>0 THEN RETURN ELSE IF te=9 THEN 1730 500 IF te=2 THEN RETURN 510 IF te=15 THEN GOSUB 3260:ma(x,y-1)=0:GOTO 570 520 IF te=14 THEN 3330 530 LOCATE x,y: 540 IF ma(x,y)=1 THEN GOSUB 3240:IF en=146 THEN 1680 ELSE 570 550 IF ma(x,y)=2 THEN GOSUB 3250:IF EN=146 THEN 1680 ELSE 570 560 PRINT" " 570 PEN 1:y=y-1:LOCATE x,y:PRINT"è":RETURN 580 PRINT" ":RETURN 590 PEN 4:PRINT CHR$(207):RETURN 600 PEN 2:PRINT CHR$(203):RETURN 610 PEN 5:PRINT CHR$(148):PRINT CHR$(22)+CHR$(1):LOCATE mm,mn:PEN 9:PRINT CHR$(149):PRINT CHR$(22)+CHR$(0):RETURN 620 PEN 15:PRINTCHR$(231):RETURN 630 REM *** guy right *** 640 LOCATE x,y:PRINT"]":IF x=20 THEN RETURN 650 te=TEST(x*32+16,(25-y)*16+8):IF te=7 THEN 1730 660 IF te=9 AND po>0 THEN RETURN ELSE IF te=9 THEN 1730 670 IF te=2 THEN RETURN 680 IF te=15 THEN GOSUB 3260:ma(x+1,y)=0:GOTO 740 690 IF te=14 THEN 3330 700 LOCATE x,y 710 IF ma(x,y)=1 THEN GOSUB 3240:IF en=146 THEN 1680 ELSE 740 720 IF ma(x,y)=2 THEN GOSUB 3250:GOTO 740 730 PRINT" " 740 PEN 1:x=x+1:LOCATE x,y:PRINT"]":RETURN 750 REM *** guy down *** 760 LOCATE x,y:PRINT"é":IF y=24 THEN RETURN 770 te=TEST(x*32-16,(24-y)*16+8):IF te=7 THEN 1730 780 IF te=9 AND po>0 THEN RETURN ELSE IF te=9 THEN 1730 790 IF te=2 THEN RETURN 800 IF te=15 THEN GOSUB 3260:ma(x,y+1)=0:GOTO 850 810 IF te=14 THEN 3330 820 LOCATE x,y 830 IF ma(x,y)=1 THEN GOSUB 3240:IF en=146 THEN 1680 ELSE 860 840 IF ma(x,y)=2 THEN GOSUB 3250:GOTO 860 850 PRINT" " 860 PEN 1:y=y+1:LOCATE x,y:PRINT"é":RETURN 870 REM *** guy left *** 880 LOCATE x,y:PRINT"[":IF x=1 THEN RETURN 890 te=TEST(x*32-48,(25-y)*16+8):IF te=7 THEN 1730 900 IF te=9 AND po>0 THEN RETURN ELSE IF te=9 THEN 1730 910 IF te=2 THEN RETURN 920 IF te=15 THEN GOSUB 3260:ma(x-1,y)=0:GOTO 980 930 IF te=14 THEN 3330 940 LOCATE x,y 950 IF ma(x,y)=1 THEN GOSUB 3240:IF en=146 THEN 1680 ELSE 980 960 IF ma(x,y)=2 THEN GOSUB 3250:GOTO 980 970 PRINT" " 980 PEN 1:x=x-1:LOCATE x,y:PRINT"[":RETURN 990 REM *** guard up *** 1000 IF in=1 THEN 1110 1010 IF a(v)=x AND b(v)-1=y THEN 1730 1020 IF ma(a(v),b(v)-1)=4 OR b(v)=4 THEN 1110 1030 ON ma(a(v),b(v))+1 GOTO 1040,1050,1060,1070,1080,1090 1040 PRINT" ":GOTO 1100 1050 PEN 4:PRINT CHR$(207):GOTO 1100 1060 GOSUB 3340:GOTO 1100 1070 PEN 2:PRINT CHR$(203):GOTO 1100 1080 RETURN 1090 PEN 15:PRINTCHR$(231) 1100 b(v)=b(v)-1:LOCATE a(v),b(v):PEN 7:PRINT"&":RETURN 1110 IF a(v)=20 THEN j(v)=4:RETURN 1120 IF (ma(a(v)+1,b(v))<>4 OR a(v)+1<20)AND x>a(v) THEN j(v)=2:RETURN 1130 IF a(v)-1>0 AND ma(a(v)-1,b(v))<>4 THEN j(v)=4 :RETURN 1140 j(v)=2:RETURN 1150 REM *** guard right *** 1160 IF in=2 THEN 1280 1170 IF a(v)+1=x AND b(v)=y THEN 1730 1180 IF a(v)=20 THEN 1280 1190 IF ma(a(v)+1,b(v))=4 THEN 1280 1200 ON ma(a(v),b(v))+1 GOTO 1210,1220,1230,1240,1250,1260 1210 PRINT" ":GOTO 1270 1220 PEN 4:PRINT CHR$(207):GOTO 1270 1230 GOSUB 3340:GOTO 1270 1240 PEN 2:PRINT CHR$(203):GOTO 1270 1250 RETURN 1260 PEN 15:PRINT CHR$(231) 1270 a(v)=a(v)+1:LOCATE a(v),b(v):PEN 7:PRINT"&":RETURN 1280 IF (ma(a(v),b(v)-1)<>4 OR b(v)-1>3)AND y<b(v) THEN j(v)=1:RETURN 1290 IF b(v)+1<20 AND ma(a(v),b(v)+1)<>4 THEN j(v)=3:RETURN 1300 j(v)=1:RETURN 1310 REM *** guard down *** 1320 IF in=3 THEN 1110 1330 IF a(v)=x AND b(v)+1=y THEN 1730 1340 IF b(v)=24 THEN 1110 1350 IF ma(a(v),b(v)+1)=4 THEN 1110 1360 ON ma(a(v),b(v))+1 GOTO 1370,1380,1390,1400,1410,1420 1370 PRINT" ":GOTO 1430 1380 PEN 4:PRINT CHR$(207):GOTO 1430 1390 GOSUB 3340:GOTO 1430 1400 PEN 2:PRINT CHR$(203):GOTO 1430 1410 RETURN 1420 PEN 15:PRINT CHR$(231) 1430 b(v)=b(v)+1:LOCATE a(v),b(v):PEN 7:PRINT"&":RETURN 1440 REM *** guard left *** 1450 IF in=4 THEN 1280 1460 IF a(v)-1=x AND b(v)=y THEN 1730 1470 IF a(v)=1 THEN 1280 1480 IF ma(a(v)-1,b(v))=4 THEN 1280 1490 ON ma(a(v),b(v))+1 GOTO 1500,1510,1520,1530,1540,1550 1500 PRINT" ":GOTO 1560 1510 PEN 4:PRINT CHR$(207):GOTO 1560 1520 GOSUB 3340:GOTO 1560 1530 PEN 2:PRINT CHR$(203):GOTO 1560 1540 RETURN 1550 PEN 15:PRINT CHR$(231) 1560 a(v)=a(v)-1:LOCATE a(v),b(v):PEN 7:PRINT"&":RETURN 1570 REM *** destroyer *** 1580 IF mm-1=x AND mn=y THEN LOCATE mm,mn:ON ma(mm,mn)+1 GOSUB 580,590,590,600,610,620:mm=0:RETURN 1590 LOCATE mm,mn:ON ma(mm,mn)+1 GOTO 1600,1610,1620,1630,1640,1650 1600 PRINT" ":GOTO 1660 1610 PEN 4:PRINT CHR$(207):GOTO 1660 1620 SOUND 1,10,20,0,3,3:en=en-1:sc=sc-1:LOCATE 10,2:PEN 1:PRINT sc:ma(mm,mn)=1:LOCATE mm,mn:GOTO 1610 1630 PEN 2:PRINT CHR$(203):GOTO 1660 1640 PEN 5:PRINT CHR$(148):PRINT CHR$(22)+CHR$(1):LOCATE mm,mn:PEN 9:PRINT CHR$(149):PRINT CHR$(22)+CHR$(0):GOTO 1660 1650 PEN 14:PRINTCHR$(231) 1660 mm=mm-1:IF mm=0 THEN LOCATE 1,mn:PRINT" ":RETURN 1670 LOCATE mm,mn:PEN 14:PRINT"&":RETURN 1680 REM *** task finished *** 1690 SOUND 1,50,150,0,6,6 1700 FOR f=1 TO 25:LOCATE 1,1:PRINTCHR$(11):NEXT 1710 scr=scr+1:IF scr=6 THEN MODE 1::LOCATE 11,12:PEN 1:PRINT"WHOLE GAME COMPLETED":LOCATE 15,14:PRINT"WELL DONE !!!":FOR F=1 TO 3200:NEXT:MODE 0:GOTO 2050 1720 en=0:MODE 0:ON scr GOTO 2360,2540,2730,2900,3060 1730 REM *** guy killed *** 1740 SOUND 1,50,100,0,5,5 1750 INK 4,18,0:INK 2,21,23:FOR f=1 TO 5555:NEXT:INK 4,18:INK 2,20 1760 li=li-1:LOCATE 21-(3-li),1:PRINT" ":IF li=0 THEN 2050 1770 IF mm>0 THEN LOCATE mm,mn:ON ma(mm,mn)+1 GOSUB 580,590,590,600,610,620 1780 z=1:GOSUB 3350:z=2:GOSUB 3350 1790 LOCATE x,y:ON ma(x,y)+1 GOSUB 1810,1830,1870,1850,1820,1860 1800 GOTO 350 1810 PRINT" " 1820 RETURN 1830 PEN 4:PRINT CHR$(207):RETURN 1840 PEN 10:PRINT CHR$(64):PRINT CHR$(22)+CHR$(1):LOCATE a(v),b(v):PEN 1:PRINT CHR$(141):PRINT CHR$(22)+CHR$(0):RETURN 1850 PEN 2:PRINT CHR$(203):RETURN 1860 PEN 15:PRINT CHR$(231):RETURN 1870 PEN 10:PRINT CHR$(64):PRINT CHR$(22)+CHR$(1):LOCATE x,y:PEN 1:PRINT CHR$(141):PRINT CHR$(22)+CHR$(0):GOTO 350 1880 REM *** introduction *** 1890 PEN 3:LOCATE 14,5:PRINT"GUNPOWDER PLOT" 1900 PEN 1:LOCATE 16,7:PRINT"BY D.L.LAU" 1910 PEN 9:LOCATE 11,12:PRINT" A-UP Z-DOWN" 1920 PEN 6:PRINT:PRINT" L-RIGHT K-LEFT" 1930 PRINT:PEN 5:PRINT" OR USE A JOYSTICK" 1940 LOCATE 15,22:PRINT"Press a button":WHILE INKEY$<>"":WEND:WHILE INKEY$="":WEND 1950 FOR F=1 TO 25:SOUND 1,F+10,1:LOCATE 1,1:PRINT CHR$(11):NEXT 1960 INK 15,20,24:INK 14,5,26:sc=0:li=3 1970 MODE 1:PEN 2:LOCATE 18,7:PRINT"ENTER ":PEN 1:PRINT:PRINT" DIFFICULTY LEVEL":PEN 5:PRINT:PRINT" (1-5) EASY TO HARD" 1980 PEN 3:PRINT:k$="":WHILE INSTR(" 12345",k$)<2:k$=UPPER$(INKEY$):WEND:lev=VAL(k$) 1990 PEN 1:LOCATE 12,11:PRINT" (";k$;") ":PEN 3 2000 FOR co=1 TO 500:NEXT 2010 DF=20-(LEV*2):AP=450-(LEV*70):WE=300-(LEV*35) 2020 FOR f=1 TO 25:LOCATE 1,1:PRINT CHR$(11):NEXT:MODE 0 2030 en=0:sc=0:scr=1 2040 ON SCR GOTO 2360,2540,2730,2900,3060 2050 REM *** hi score *** 2060 FOR f=1 TO 25:LOCATE 1,1:PRINT CHR$(11):SOUND 1,f*2,2:NEXT 2070 IF vv<9 THEN 2250 2080 FOR f=1 TO 9:IF hi(f)<sc THEN 2250 2090 NEXT 2100 FOR f=1 TO 10 2110 FOR g=f+1 TO 10 2120 IF hi(f)<hi(g)THEN ee=hi(f):e$=n$(f):hi(f)=hi(g):n$(f)=n$(g):hi(g)=ee:n$(g)=e$ 2130 NEXT:NEXT 2140 CLS:PEN 15:PRINT:PRINT" L OF F":PRINT" L A":PRINT" A M":PRINT" H E" 2150 ORIGIN 270,360:DRAWR 100,0:DRAWR 0,-35:DRAWR -100,0:DRAWR 0,35:ORIGIN 130,310:DRAWR 380,0 2160 LOCATE 1,6:PRINT STRING$(4,CHR$(143)):LOCATE 17,6:PRINT STRING$(4,CHR$(143)) 2170 LOCATE 1,25:PRINT STRING$(20,CHR$(143)):LOCATE 1,1:PRINT CHR$(11):FOR F=7 TO 24:LOCATE 1,F:PRINT CHR$(143):LOCATE 20,F:PRINT CHR$(143):NEXT 2180 cc=1:FOR F=8 TO 24 STEP 2:LOCATE 2,f:PEN 4:PRINT hi(cc):LOCATE 11,f:PEN 5:PRINT n$(cc):cc=cc+1:NEXT 2190 hi=hi(1):FOR f=1 TO 5555:NEXT:FOR f=1 TO 25:LOCATE 1,25:PRINT CHR$(10):SOUND 1,150-(f*5),2:NEXT 2200 MODE 1:LOCATE 15,14:PRINT"Another game ?" 2210 a$="":WHILE INSTR(" YN",a$)<2:a$=UPPER$(INKEY$):WEND 2220 IF a$="N"THEN END 2230 GOTO 1960 2240 REM *** enter name *** 2250 FOR f=1 TO 100: k$=INKEY$:NEXT 2260 CLS:n$(10)="":PEN 1:PRINT:PRINT:PRINT" ENTER YOUR NAME " 2270 HI(10)=SC 2280 PEN 4:LOCATE 7,8:PRINT STRING$(8,CHR$(208)) 2290 FOR F=7 TO 14 2300 IF INKEY(18)=0 THEN 2350 2310 j$=INKEY$:IF j$="" THEN 2310 2320 PEN 2:LOCATE f,7:PRINT UPPER$(j$) 2330 SOUND 1,f*5,5,4:n$(10)=n$(10)+j$ 2340 NEXT 2350 vv=vv+1:n$(10)=UPPER$(n$(10)):hi(10)=sc:GOTO 2100 2360 REM *** screen 1 *** 2370 REM *** set grass *** 2380 FOR f=1 TO 20:FOR g=4 TO 24:ma(f,g)=0:NEXT:NEXT 2390 FOR f=2 TO 5:FOR g=5 TO 10 2400 ma(f,g)=1:ma(f+14,g)=1:ma(f,g+13)=1:ma(f+14,g+13)=1:NEXT:NEXT 2410 FOR f=9 TO 12:FOR g=10 TO 18:ma(f,g)=1:NEXT:NEXT 2420 FOR f=7 TO 8:FOR g=12 TO 16:ma(f,g)=1:ma(f+6,g)=1:NEXT:NEXT 2430 REM *** set deadly bombs *** 2440 RESTORE 2480 2450 FOR f=5 TO 10:ma(6,f)=4:ma(15,f)=4:ma(6,f+13)=4:ma(15,f+13)=4:NEXT 2460 FOR f=10 TO 11:ma(f,9)=4:ma(f,19)=4:ma(f,13)=4:ma(f,14)=4:ma(f,15)=4:NEXT 2470 RESTORE 2480:FOR f=1 TO 16:READ q,w:ma(q,w)=4:NEXT 2480 DATA 9,6,12,6,9,9,12,9,8,10,8,11,13,10,13,11,8,17,8,18,13,17,13,18,9,19,12,19,9,22,12,22 2490 REM *** set obstacles *** 2500 FOR f=5 TO 7:ma(8,f)=3:ma(13,f)=3:ma(8,f+16)=3:ma(13,f+16)=3:NEXT 2510 FOR f=2 TO 5:ma(f,13)=3:ma(f,15)=3:ma(f+14,13)=3:ma(f+14,15)=3:NEXT 2520 ma(9,9)=0:ma(12,9)=0:ma(9,19)=0:ma(12,19)=0 2530 GOTO 220 2540 REM *** screen 2 *** 2550 FOR g=4 TO 25:FOR f=1 TO 20:ma(f,g)=0:NEXT:NEXT 2560 '*** set grass *** 2570 FOR f=2 TO 9:FOR g=7 TO 9:ma(f,g)=1:ma(f+11,g)=1:NEXT:NEXT 2580 FOR f=2 TO 3:FOR g=5 TO 6:ma(f,g)=1:ma(f+16,g)=1:NEXT:NEXT 2590 FOR f=9 TO 12:FOR g=14 TO 20:ma(f,g)=1:NEXT:NEXT 2600 FOR f=2 TO 6:FOR g=18 TO 23:ma(f,g)=1:ma(f+13,g)=1:NEXT:NEXT 2610 FOR f=4 TO 6:FOR g=16 TO 17:ma(f,g)=1:ma(f+11,g)=1:NEXT:NEXT 2620 FOR f=7 TO 9:ma(20,f)=0:NEXT 2630 REM *** set obstacles *** 2640 FOR f=9 TO 12:ma(f,5)=3:ma(f,24)=3:NEXT:FOR f=7 TO 14:ma(f,12)=3:NEXT 2650 FOR f=2 TO 5:ma(f,13)=3:ma(f+14,13)=3:NEXT 2660 REM *** set deadly bombs *** 2670 FOR f=2 TO 8:ma(f,10)=4:ma(f+11,10)=4:NEXT:RESTORE 2690 2680 FOR f=1 TO 34:READ aa,bb:ma(aa,bb)=4:NEXT 2690 DATA 5,4,16,4,7,6,14,6,9,7,9,8,9,9,12,7,12,8,12,9,10,11,11,11,2,12,19,12 2700 DATA 8,14,13,14,3,16,18,16,2,17,3,17,18,17,19,17 2710 DATA 8,19,13,19,4,20,17,20,9,21,10,21,11,21,12,21,4,21,17,21,7,23,14,23 2720 GOTO 220 2730 REM *** screen 3 *** 2740 FOR f=1 TO 20:FOR g=4 TO 24:ma(f,g)=0:NEXT:NEXT 2750 REM *** set grass *** 2760 FOR f=4 TO 17:FOR g=5 TO 8:ma(f,g)=1:NEXT:ma(3,5)=1:ma(3,6)=1:ma(18,5)=1:ma(18,6)=1:NEXT 2770 FOR f=8 TO 13:FOR g=12 TO 18:ma(f,g)=1:NEXT:NEXT 2780 FOR f=2 TO 4:FOR g=15 TO 23:ma(f,g)=1:ma(f+15,g)=1:NEXT:NEXT 2790 FOR f=5 TO 6:FOR g=21 TO 23:ma(f,g)=1:ma(f+10 ,g)=1:NEXT:NEXT 2800 REM *** set obstacles *** 2810 FOR f=2 TO 5:ma(f,11)=3:ma(f+14,11)=3:NEXT:FOR f=9 TO 12:ma(f,23)=3:NEXT 2820 REM *** set deadly bombs *** 2830 FOR f=5 TO 15 STEP 2:ma(f,9)=4:NEXT:FOR f=8 TO 13:ma(f,11)=4:NEXT 2840 FOR f=2 TO 5:ma(f,13)=4:ma(f+14,13)=4:NEXT 2850 FOR f=15 TO 18:ma(7,f)=4:ma(14,f)=4:NEXT 2860 FOR f=9 TO 12:ma(f,19)=4:ma(f,21)=4:NEXT 2870 RESTORE 2880:FOR f=1 TO 16:READ aa,bb:ma(aa,bb)=4:NEXT 2880 DATA 8,5,10,6,12,7,14,8,2,8,19,8,10,15,11,15,10,16,11,16,5,19,5,20,6,20,15,20,16,19,16,20 2890 GOTO 230 2900 REM *** screen 4 *** 2910 FOR f=1 TO 20:FOR g=4 TO 24:ma(f,g)=0:NEXT:NEXT 2920 REM *** set grass *** 2930 FOR f=2 TO 8:FOR g=5 TO 9:ma(f,g)=1:ma(f+11,g)=1:ma(f,g+13)=1:ma(f+11,g+13)=1:NEXT:NEXT 2940 FOR f=8 TO 13:FOR g=12 TO 14:ma(f,g)=1:ma(f,g+6)=1:NEXT:NEXT 2950 FOR f=8 TO 13:ma(f,15)=1:NEXT 2960 REM *** set obstacles *** 2970 FOR f=10 TO 11:ma(f,6)=3:ma(f,8)=3:ma(f,11)=3:ma(f,24)=3:NEXT 2980 FOR f=2 TO 6:ma(f,13)=3:ma(f+13,13)=3:NEXT 2990 REM *** deadly bombs *** 3000 RESTORE 3020:FOR f=4 TO 6:ma(f,7)=4:ma(f+11,7)=4:ma(f+1,17)=4:ma(f+5,17)=4:ma(f+10,17)=4:NEXT 3010 FOR f=1 TO 36:READ ta,tb:ma(ta,tb)=4:NEXT 3020 DATA 2,5,8,5,13,5,19,5,2,9,8,9,13,9,20,9,4,10,6,10,15,10,17,10,5,12,16,12,10,13,11,14 3030 DATA 7,15,14,15,2,16,19,16,12,17,5,18,16,18,4,20,7,20,14,20,17,20,10,21,11,21 3040 DATA 8,22,13,22,6,23,15,23,3,24,18,24,19,9 3050 ma(8,21)=0:ma(13,21)=0:GOTO 220 3060 REM *** screen 5 *** 3070 FOR f=1 TO 20:FOR g=1 TO 24:ma(f,g)=0:NEXT:NEXT 3080 REM *** set grass *** 3090 FOR f=2 TO 19:FOR g=5 TO 10:ma(f,g)=1:NEXT:NEXT 3100 FOR f=7 TO 14:FOR g=11 TO 14:ma(f,g)=1:NEXT:NEXT 3110 FOR f=2 TO 5:FOR g=17 TO 23:ma(f,g)=1:ma(f+14,g)=1:NEXT:NEXT 3120 REM *** set obstacles *** 3130 FOR f=14 TO 15:ma(6,f)=3:ma(15,f)=3:ma(8,f+7)=3:ma(13,f+7)=3:NEXT:ma(8,23)=3:ma(13,23)=3 3140 FOR f=8 TO 13:ma(f,17)=3:NEXT 3150 REM *** set deadly bombs *** 3160 FOR f=2 TO 3:ma(f,5)=4:ma(f+16,5)=4:ma(f+8,6)=4:ma(f+1,7)=4:ma(f+3,7)=4:ma(f+13,7)=4:ma(f+15,7)=4:ma(f+8,8)=4 3170 ma(f+8,11)=4:ma(f+8,12)=4:ma(f,13)=4:ma(f+15,13)=4:ma(f+8,15)=4:ma(f+8,19)=4:ma(f+8,24)=4:NEXT 3180 RESTORE 3190:FOR f=1 TO 32:READ ta,tb:ma(ta,tb)=4:NEXT 3190 DATA 8,6,13,6,8,8,13,8,2,10,6,10,15,10,19,10,7,12,14,12,7,13,14,13,4,13,19,13,8,15,13,15 3200 DATA 2,17,5,17,16,17,19,17,4,19,8,19,13,19,18,19,3,20,6,20,15,20,17,20,2,23,5,23,16,23,19,23 3210 GOTO 220 3220 REM *** blinding guards *** 3230 FOR f=1 TO 10:INK 0,26:FOR g=1 TO 20:NEXT:INK 0,0:FOR g=1 TO 10:NEXT:NEXT:INK 0,3:RETURN 3240 SOUND 1,10,20,4,0,2:PEN 10:PRINT CHR$(64):PRINT CHR$(22)+CHR$(1):LOCATE x,y:PEN 1:PRINT CHR$(141):PRINT CHR$(22)+CHR$(0):SC=SC+lev:en=en+1:ma(x,y)=2:LOCATE 10,2:PRINT sc:RETURN 3250 SOUND 1,10,20,0,3,3:PEN 4:PRINT CHR$(207):en=en-1:sc=sc-lev:LOCATE 10,2:PRINT sc:ma(x,y)=1:RETURN 3260 SOUND 1,100,25,0,4,4:GOSUB 3220:INK 7,15,0:po=WE:LOCATE x,y:PRINT" ":RETURN 3270 PEN 1:IF INKEY(37)=0 OR JOY(0)=4 THEN GOSUB 870 3280 IF INKEY(36)=0 OR JOY(0)=8 THEN GOSUB 630 3290 IF INKEY(69)=0 OR JOY(0)=1 THEN GOSUB 460 3300 IF INKEY(71)=0 OR JOY(0)=2 THEN GOSUB 750 3310 IF po<1 THEN in=INT(RND*df):LOCATE a(z),b(z):v=z:ON j(z) GOTO 1000,1160,1320,1450 3320 RETURN 3330 LOCATE mm,mn:ON ma(mm,mn)+1 GOSUB 580,590,590,600,610,620:mm=0:RETURN 3340 PRINT CHR$(64):PRINT CHR$(22)+CHR$(1):LOCATE a(v),b(v):PEN 1:PRINT CHR$(141):PRINT CHR$(22)+CHR$(0):RETURN 3350 LOCATE a(z),b(z):v=z:ON ma(a(z),b(z))+1 GOTO 1810,1830,1840,1850,50,1860 |