30 x=19:y=7
170 DEFine PROCedure scrup(y,x,c$):AT y-1,x-1:PRINT c$;scr$(y,x)=c$:END DEFine 
180 title_page
190 DEFine PROCedure title_page
200 PAPER #0,0:CLS #0
210 sheet=1:sheets
220 INK 4:AT 15,2:PRINT "Use Cursor Keys to Control HARRY"
230 AT 16,7:PRINT "Press (SPACE) to Bomb"
240 AT 17,7:PRINT "Press (ENTER) to Play"
250 key=KEYROW(1):IF key=1 THEN init:ELSE GO TO 250
260 END DEFine 
270 DEFine PROCedure init
280 PAPER #0,0:CLS #0:sheet=2:high=2000
290 score=0:lives=5:count=0:bombs=5
300 screen_init
310 END DEFine 
320 DEFine PROCedure update(a)
325 score=score+a
330 AT 9,18:INK 2:PRINT FILL$("@",lives)&" "
340 AT 8,18:PRINT score
350 AT 10,18:PRINT bombs
360 END DEFine 
370 x=19:y=7
380 mona=18:monb=15
390 REPeat main
400 FOR loop=1 TO 2
410 xx=x:yy=y
420 key=KEYROW(1)
430 IF key THEN moveyou
440 c$=scr$(y,x)
450 IF c$="." THEN BEEP 200,0:scrup y,x," ":update 5:count=count+1:IF key THEN moveyou
460 IF c$="[" THEN BEEP 500,100:scrup y,x," ":update 50:IF key THEN moveyou
470 IF c$="+" THEN BEEP 500,0:scrup y,x," ":update 50:IF key THEN moveyou
480 IF c$="^" THEN INK 2:scrup y,x,"^":OVER 1:INK 6:AT y-1,x-1:PRINT "&":OVER 0
490 x=xx:y=yy
500 INK 4:AT y-1,x-1:PRINT "@"
510 INK 4:AT monb-1,mona-1:PRINT " "
520 monstermovement
530 IF scr$(monb,mona)="^" THEN monsterdie
540 IF count=330 AND sheet=2 THEN clearsheet:screen_init:GO TO 370
550 IF count=302 AND sheet=3 THEN clearsheet:screen_init:GO TO 370
560 IF scr$(monb,mona)="." THEN count=count+1
570 INK 5:scrup monb,mona,"%"
590 IF x=mona AND y=monb THEN EXIT main
600 update 0
610 END FOR loop
620 END REPeat main
630 FOR n=1 TO 50
640 BEEP n,n
650 INK n:scrup y,x,"!"
660 END FOR n
670 lives=lives-1
680 scrup y,x," "
700 scrup monb,mona," "
710 IF lives>0 THEN GO TO 370
720 update 0:game_over
730 DEFine PROCedure monstermovement
740 IF mona<x AND scr$(monb,mona+1)="*" THEN mona=mona+1:RETurn 
750 IF mona>x AND scr$(monb,mona-1)="*" THEN mona=mona-1:RETurn 
760 IF monb<y AND scr$(monb+1,mona)="*" THEN monb=monb+1:RETurn 
770 IF monb>y AND scr$(monb-1,mona)="*" THEN monb=monb-1:RETurn 
780 END DEFine 
790 DEFine PROCedure moveyou
800 AT y-1,x-1 :PRINT " "
810 IF key&&16 AND x<>36 THEN IF scr$(y,x+1)<>"*" THEN xx=x+1
820 IF key&&2 THEN IF scr$(y,x-1)<>"*" THEN xx=x-1
830 IF key&&4 THEN IF scr$(y-1,x)<>"*" THEN yy=y-1
840 IF key&&128 THEN IF scr$(y+1,x)<>"*" THEN yy=y+1
850 IF key&&64 THEN IF bombs>0 THEN dropbomb
860 END DEFine 
1030 DEFine PROCedure dropbomb
1040 IF scr$(y,x)="." THEN count=count+1
1050 INK 2:scrup y,x,"^":OVER 1:INK 6:AT y-1,x-1:PRINT "&":OVER 0:bombs=bombs-1
1060 END DEFine 
1080 DEFine PROCedure screen_init
1090 sheets
1100 AT 8,12:PRINT "SCORE"
1110 AT 9,12:PRINT "LIVES"
1120 AT 10,12:PRINT "BOMBS"
1130 END DEFine 
1140 DEFine PROCedure sheets
1150 LOCal x,y
1160 DIM scr$(20,37)
1170 IF sheet=1 THEN RESTORE 1340
1180 IF sheet=2 THEN RESTORE 1550
1190 IF sheet=3 THEN RESTORE 1760
1195 PAPER 0:CLS:OVER 1
1200 FOR y=1 TO 20
1210 READ scr$(y)
1220 AT y-1,x-1
1240 FOR x=1 TO 37
1250 c$=scr$(y,x)
1260 IF c$="*" THEN INK 6
1270 IF c$="." THEN INK 1
1280 IF c$="[" THEN INK 4:PRINT c$;:INK 2:AT y-1,x-1:c$="]"
1290 IF c$="+" THEN INK 2:PRINT c$;:INK 4:AT y-1,x-1:c$="-"
1300 PRINT c$;
1310 END FOR x
1320 END FOR y
1325 OVER 0
1330 END DEFine 
1340 DATA "*************************************"
1350 DATA "*                                   *"
1360 DATA "*   +  + +  + +  + ++++ ++++ +  +   *"
1370 DATA "*   ++++ +  + ++ + +    +  + ++++   *"
1380 DATA "*   ++++ ++++ + ++ + ++ +++   ++    *"
1390 DATA "*   +  + ++++ +  + ++++ +  +  ++    *"
1400 DATA "*                                   *"
1410 DATA "*     [  [  [[  [[[[ [[[[ [  [      *"
1420 DATA "*     [[[[ [  [ [  [ [  [ [[[[      *"
1430 DATA "*     [[[[ [[[[ [[[  [[[   [[       *"
1440 DATA "*     [  [ [  [ [  [ [  [  [[       *"
1450 DATA "*                                   *"
1460 DATA "*************************************"
1470 DATA "*+                                 [*"
1480 DATA "*                                   *"
1490 DATA "*                                   *"
1500 DATA "*                                   *"
1510 DATA "*                                   *"
1520 DATA "*[                                 +*"
1530 DATA "*************************************"
1550 DATA "*************************************"
1560 DATA "*+.................................+*"
1570 DATA "*.***************..****************.*"
1580 DATA "*...................................*"
1590 DATA "*.********..************..*********.*"
1600 DATA "*...................................*"
1610 DATA "*.*******..................********.*"
1620 DATA "*.........****************..........*"
1630 DATA "* *******.*              *.********.*"
1640 DATA "*.........*              *..........*"
1650 DATA "* *******.*              *.********.*"
1660 DATA "*.........****************..........*"
1670 DATA "*.*******..................********.*"
1680 DATA "*...................................*"
1690 DATA "*.********..************..*********.*"
1700 DATA "*...................................*"
1710 DATA "*.***************..****************.*"
1720 DATA "*...................................*"
1730 DATA "**[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[**"
1740 DATA "*************************************"
1760 DATA "***************       ***************"
1770 DATA "*[............*       *............[*"
1780 DATA "*.**.**.*.*.*.*       *.*.*.*.**.**.*"
1790 DATA "*....**...*.*.*********.*.*...**....*"
1800 DATA "*.**....*...................*....**.*"
1810 DATA "* **.**.*.****.***.***.****.*.**.**.*"
1820 DATA "*...................................*"
1830 DATA "********..***************..**********"
1840 DATA "       *..*             *..*         "
1850 DATA "       *..*             *..*         "
1860 DATA "       *..*             *..*         "
1870 DATA "       *..***************..*         "
1880 DATA "********...................**********"
1890 DATA "*..........***.***.***.***..........*"
1900 DATA "*.**....**.................**....**.*"
1910 DATA "*....**....**...........**....**....*"
1920 DATA "*.............*********.............*"
1930 DATA "*.**.**.**.**.*       *.** **.**.**.*"
1940 DATA "*[............*       *............[*"
1950 DATA "***************       ***************"
1960 DEFine PROCedure clearsheet
