Galaxians


You are the commander of the sole surviving laser base on Earth. The fleets of Alien spacecraft are moving in for the final onslaught. Some swoop down, lasers blasting; others sit at the top of the screen launching unstoppable bombs which must be dodged. If you wipe out one fleet, another will appear in its place. In short, you haven't a chance. But make sure you take as many of the nasties with you as you can before you go.

    1 REM *** BBC VERSION ***
    2 REM ***  GALAXIANS  ***
   10 REM CONVERTED TO 32K BBC MICRO BY C.R.T
ANNER
   20 MODE 7:VDU 23;8202;0;0;0;
   30 hs=0
   40 GOSUB 960
   50 MODE 1:COLOUR 3:VDU 28,4,27,35,4,23;820
2;0;0;0;19,1,4,0,0,0,19,2,5,0,0,0
   60 VDU 23,224,34,35,36,62,15,7,2,14
   70 VDU 23,225,36,196,228,252,240,224,64,11
2
   80 VDU 23,226,2,3,7,63,39,39,34,3
   90 VDU 23,227,64,192,32,124,228,228,68,192
  100 VDU 23,228,128,&A6,242,123,61,47,39,3
  110 VDU 23,229,1,105,79,222,188,244,196,192
  120 VDU 23,230,0,240,248,252,14,6,6,6
  130 VDU 23,231,145,82,0,3,192,0,74,145
  140 VDU 23,232,7,31,127,170,170,127,31,7
  150 VDU 23,233,255,255,255,170,170,255,255,
255
  160 VDU 23,234,192,240,252,170,170,252,240,
192
  170 VDU 23,235,18,19,18,28,4,2,1,1
  180 VDU 23,236,72,200,72,56,32,64,128,128
  190 VDU 23,237,1,31,63,127,225,193,192,192
  200 x=15:sc=0:l=3:m=RND(18):g=3:h=INT(RND(1
8))
  210 a$=" "+STRING$(6,CHR$(224)+CHR$(225)+" 
")
  220 b$=" "+STRING$(6,CHR$(226)+CHR$(227)+" 
"):c$=STRING$(19," ")
  230 d$=" "+STRING$(2,CHR$(228)+CHR$(229)+" 
")
  240 dir=1:y=0
  250 hit=0
  260 COLOUR 3:PRINT TAB(17,0);"HIGH-SCORE:";
hs
  270 COLOUR 1:PRINT TAB(y,2);a$
  280 FOR A%=1 TO 6:SOUND 1,-15,100,0:TIME=0:
REPEAT UNTIL TIME>1:NEXT
  290 COLOUR 1:PRINT TAB(y,2);b$
  300 FOR A%=1 TO 3:SOUND 1,-15,130,0:TIME=0:
REPEAT UNTIL TIME>1:NEXT
  310 x=x-2*(INKEY(-67) AND x<25)+2*(INKEY(-9
8) AND x>1)
  320 PRINT TAB(x,21);"  "+CHR$(237)+CHR$(230
)+"  "
  330 IF INKEY(-102) THEN ELSE GOTO 360
  340 GOTO 480
  350 COLOUR 3:PRINT TAB(0,0);"SCORE:";sc
  360 y=y+dir
  370 IF y=0 OR y=13 THEN dir=-dir
  380 PRINT TAB(m,l);"       "
  390 l=l+1:m=m+RND(4)-RND(4)
  400 IF l=21 THEN l=3:d$=" "+STRING$(2,CHR$(
228)+CHR$(229)+" ")
  410 IF m>25 THEN m=12
  420 IF m<0 THEN m=12
  430 COLOUR 2:PRINT TAB(m,l);d$
  440 PRINT TAB(h,g);"  "
  450 g=g+3:PRINT TAB(h,g);CHR$235+CHR$236:IF
 g=21 THEN g=3:PRINT TAB(h,21);"  ":h1=h:h=IN
T(RND(17)+1):IF h1=x+3 OR h1=x+2 OR h1=x+1 TH
EN GOTO 860
  460 IF RND(1)>.8 THEN IF d$<>"       " THEN
 GOTO 740
  470 GOTO 260
  480 IF POINT(128+(x*8+23)*4,192+((21-l)*8+4
)*4)=2 THEN GOTO 580
  490 IF POINT(128+(x*8+23)*4,816)=1 THEN hit
=1
  500 GCOL3,2:PLOT 69,128+(x*8+23)*4,224:PLOT
 1,0,584
  510 SOUND 1,-15,80,1
  520 GCOL3,2:PLOT 69,128+(x*8+23)*4,224:PLOT
 1,0,584
  530 IFhit<>1 THEN GOTO 550 ELSE a$=MID$(a$,
1,(x+2-y)-1)+"   "+MID$(a$,(x+4-y)+1,(LEN(a$)
-(x+4-y)+1)):b$=MID$(b$,1,(x+2-y)-1)+"   "+MI
D$(b$,(x+4-y)+1,(LEN(b$)-(x+4-y)+1))
  540 sc=sc+10:PRINTTAB(x+1,2);CHR$231+CHR$23
1+CHR$231:FORf=0TO15:SOUND 1,-15,30+f,1:NEXT:
PRINTTAB(x+1,2);"   "
  550 hit=0
  560 IF a$=c$ THEN GOTO 640
  570 GOTO 350
  580 IF g=1 THEN IF h=x+1 OR h=x+2 THEN GOTO
 350
  590 GCOL3,2:PLOT 69,128+(x*8+23)*4,224:PLOT
 1,0,((21-l)*8-8)*4
  600 SOUND 1,-15,80,1
  610 GCOL3,2:PLOT 69,128+(x*8+23)*4,224:PLOT
 1,0,((21-l)*8-8)*4
  620 d$=MID$(d$,1,x+1-m)+"   "+MID$(d$,x+5-m
,(LEN(d$)-x+3-m)):sc=sc+20:PRINT TAB(x+1,l);C
HR$231+CHR$231+CHR$231:FOR f=0TO15:SOUND 1,-1
5,30+f,1:NEXT f:PRINTTAB(x+1,l);"   "
  630 GOTO 350
  640 FOR f=0 TO 15
  650   PRINT TAB(f,7);" "+CHR$232+CHR$233+CH
R$234
  660   IF f=0 OR f=3 OR f=6 OR f=9 OR f=12 O
R f=15 THEN COLOUR 1:PRINT TAB(f+1,2);CHR$224
+CHR$225
  670   NEXT f
  680 FOR f=14 26 STEP 2
  690   SOUND 1,-15,30,1
  700   PRINT TAB(f,7);"   "+CHR$232+CHR$233+
CHR$234
  710   NEXT f
  720 PRINT TAB(28,7);"    "
  730 GOTO 210
  740 IF MID$(d$,2,1)<>CHR$228 THEN GOTO 800
  750 GCOL3,2:PLOT 69,128+(m*8+16)*4,192+((21
-l)*8-1)*4:PLOT 1,0,(9-(21-l)*8)*4
  760 FOR f=38 TO 42:SOUND 1,-15,f,1:NEXT f
  770 GCOL3,2:PLOT 69,128+(m*8+16)*4,192+((21
-l)*8-1)*4:PLOT 1,0,(9-(21-l)*8)*4
  780 IF POINT(128+(m*8+16)*4,208)=1 THEN GOT
O 860
  790 COLOUR 3:GOTO 270
  800 IF g=l AND h=x+1 OR h=x+1 THEN GOTO 270
  810 GCOL3,2:PLOT 69,128+(m*8+36)*4,192+((21
-l)*8-1)*4:PLOT 1,0,(9-(21-l)*8)*4
  820 FOR f=38 TO 42:SOUND 1,-15,f,1:NEXT f
  830 GCOL3,2:PLOT 69,128+(m*8+36)*4,192+((21
-l)*8-1)*4:PLOT 1,0,(9-(21-l)*8)*4
  840 IF POINT(128+(m*8+36)*4,208)=1 THEN GOT
O 860
  850 COLOUR3:GOTO 270
  860 FOR f=1 TO 15
  870   PRINT TAB(x+2,21);CHR$231+CHR$231
  880   SOUND 1,-15,RND(30),1
  890   NEXT f
  900 PRINT TAB(x+2,21);"  "
  910 IF sc>hs THEN hs=sc
  920 COLOUR 3:PRINT TAB(8,10);"G A M E  O V 
E R";TAB(2,18);"PRESS ANY KEY TO PLAY AGAIN"
  930 *FX15,1
  940 IF INKEY$(1000)="" THEN GOTO 940
  950 FOR f=1 TO 100:NEXT f:CLS:COLOUR 3:GOTO
 200
  960 PRINT TAB(0,0);CHR$(141);CHR$(129);"---
---------- GALAXIAN -------------"'CHR$(141);
CHR$(130);"------------- GALAXIAN -----------
--"
  970 PRINT '"Fleet after fleet, the invaders
 form andwait to attack. Some of them dive do
wn  to earth firing lasers as they do.";
  980 PRINT" The  invaders in the formation d
rop dangerousbombs to try and destroy your la
ser base. Diving invaders are worth more poin
ts.";
  990 PRINT"As soon as 1 fleet of invaders ha
ve beendestroyed their mother-ship will arran
gea new battle-line."
 1000 PRINT'CHR$(132);"   Your controls are:-
"
 1010 PRINT''TAB(10);CHR$(133);"Z";CHR$(134);
"....To move left"
 1020 PRINT'TAB(10);CHR$(133);"X";CHR$(134);"
...To move right"
 1030 PRINT'TAB(10);CHR$(133);"M";CHR$(134);"
...To fire laser canon"
 1040 PRINT TAB(6,24);CHR$(136);"PRESS ANY KE
Y TO START";
 1050 IF INKEY$(1000)="" THEN GOTO 1050 ELSE 
RETURN