Heli-Bomber


After all this intergalactic warfare, you'll find it refreshing to return to Earth and struggle to cope with a fleet of helicopters whose pilots are committed to wiping out your fair city. Thankfully you're in control of the metropolitan laser tower, and it's up to you to shoot down the bombs before they hit the city. You'll get points for every bomb you hit, and whilst you can wipe out a chopper if you feel so inclined, you will not add to your tally by so doing. You move your laser sight with the cursor keys, and the game is over once one of the bombs finds a clear path to the ground or the laser tower itself is destroyed.

    5  REM *HELIBOMBER* BBC VERSION**@ERSKINE
.CONVERTED BY I.THOMAS*
   10 SC=0:HS=0
   20 MODE7:PRINT'CHR$141;CHR$&82;CHR$157;CHR
$&84"          Heli-Bomber            "CHR$15
6'CHR$141;CHR$&82;CHR$157;CHR$&84"          H
eli-Bomber            "CHR$156
   30 PRINT'''"Your city is under attack from
"'"helicopter bombers. When a bomb has a"'"cl
ear path through to the ground or whenyour la
ser tower is destroyed the game  ends."
   40 PRINT''"Move your laser sight using the
 cursor  keys and try to shoot down the bombs
"'"using the space bar."
   50 PRINTTAB(7,22)CHR$136;CHR$&85"Press SPA
CE to play."
   60 REPEATUNTILGET=32
   70 GOSUB470
   80 LIN=LIN-2*(INKEY(-42) AND LIN<13)
   90 IFFNAT(15,21)=32 GOTO500
  100 COL=COL+2*INKEY(-26):IFCOL<0 COL=31
  110 LIN=LIN+2*(INKEY(-58) AND LIN>0)
  120 COL=COL-2*INKEY(-122):IFCOL>31 COL=0
  130 COLOUR2:PRINTTAB(CL,IN)" "TAB(COL,LIN)"
+":IN=LIN:CL=COL
  140 IFCOL1=30 COL1=0:LIN1=RND(10)
  150 LIN1=LIN1-(RND(1)>.7 AND LIN1<13)
  160 LIN1=LIN1+(RND(1)>.7 AND LIN1>0) 
  170 COL1=COL1-(COL1<30)
  180 PRINTTAB(CL1,IN1)"  "TAB(CL1,IN1+1)"  "
:COLOUR2:PRINTTAB(COL1,LIN1)"__"TAB(COL1,LIN1
+1)CHR$227;CHR$228:IN1=LIN1:CL1=COL1
  190 IFG=1 AND RND(1)>.8 LIN2=LIN1+2:COL2=CO
L1:G=-G:IN2=LIN2:CL2=COL2
  200 IFG=1 GOTO240
  210 LIN2=LIN2+1
  220 PRINTTAB(CL2,IN2)" ":COLOUR3:PRINTTAB(C
OL2,LIN2)CHR$229:IN2=LIN2:CL2=COL2:SOUND&11,-
15,100-LIN2*4,10:IFLIN2=21 GOTO500
  230 IFFNAT(COL2,LIN2+1)>127 PRINTTAB(COL2,L
IN2)" "TAB(COL2,LIN2+1)" ":G=-G:SOUND&11,0,0,
0:SOUND0,-15,4,1:SOUND0,-13,5,1:SOUND0,-10,4,
1:SOUND0,-8,6,3
  240 IF NOTINKEY(-99) GOTO80
  250 X=488:Y=168:MOVEX,Y:GCOL3,3
  260 XX=COL*32+16:YY=687-LIN*32
  270 DRAWXX,YY
  280 IF(COL=COL1 OR COL=COL1+1) AND (LIN=LIN
1 OR LIN=LIN1+1) H=-H
  290 IFFNAT(COL2,LIN2)<32 B=-B
  300 DRAWX,Y
  310 IFB=-1 GOSUB340
  320 IFH=-1 GOSUB360
  330 GOTO80
  340 FORX=1TO10:SOUND0,-15,4+(X)MOD3,1:COLOU
RRND(4):PRINTTAB(COL2,LIN2)"*":NEXT
  350 PRINTTAB(COL2,LIN2)" ":SC=SC+10:G=1:B=1
:RETURN
  360 *FX15
  370 FORX=LIN1 TO20
  380   PRINTTAB(CL1,IN1)"  "TAB(CL1,IN1+1)" 
 "
  390   COLOUR1:PRINTTAB(COL1,LIN1)"  "TAB(CO
L1,LIN1+1)CHR$227+CHR$228
  400   IN=LIN1:CL1=COL1:LIN1=X
  410   SOUND1,-15,80-X,1
  420 NEXT
  430 PRINTTAB(COL1,LIN1)"  ":IFFNAT(15,21)=3
2 GOTO500
  440 LIN1=0:COL1=RND(3)-1
  450 H=1
  460 RETURN
  470 FORI=224TO229:VDU23,I:FORX=0TO7:READN:V
DUN:NEXT,
  480   DATA255,165,165,255,165,165,165,255,2
4,126,126,126,60,24,24,255,129,195,165,153,15
3,165,195,129,0,0,195,255,15,7,0,0,128,128,22
4,152,252,248,0,0,195,195,36,24,24,36,195,195
  490   GOTO570
  500   PRINTTAB(10,10)"End of game"TAB(7,12)
"Your score was ";SC:IFSC>HS HS=SC
  510   PRINTTAB(9,14)"High Score ";HS
  520   FORX=0TO3000:NEXT
  530   PRINTTAB(4,16)"Press any key to resta
rt"
  540   *FX15
  550   X=GET
  560   SC=0:GOSUB570:GOTO80
  570   MODE1:VDU28,4,27,35,4,29,128;192;
  580   COLOUR1
  590   FORX=0TO31
  600     R=RND(5)+16
  610     FORY=R TO21
  620       PRINTTAB(X,Y)CHR$224
  630     NEXT,
  640     COLOUR2:PRINTTAB(15,16)CHR$225
  650     FORX=17TO21
  660       PRINTTAB(15,X)CHR$226
  670     NEXT
  680     LIN=10:COL=15:PRINTTAB(COL,LIN)"+"
  690     LIN1=10:COL1=RND(31)-1:IN=LIN:CL=CO
L
  700     PRINTTAB(COL1,LIN1)"__"TAB(COL1,LIN
1+1)CHR$227;CHR$228
  710     IN1=LIN1:CL1=COL1
  720     G=1:H=1:B=1
  730     RETURN
  740     DEFFNAT(X,Y)
  750     VDU31,X,Y
  760     A%=135:A%=USR&FFF4 AND&FFFF
  770     =A% DIV256