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