10 REM **INVADERS**BBC VERSION**BY IAN TH OMAS 20 ONERRORGOTO580 30 MODE7:PRINT'CHR$141;CHR$&84;CHR$157;CHR $&87" Space invaders"'CHR$141;CHR$&84 ;CHR$157;CHR$&87" Space invaders"'''C HR$&85" left......"CHR$&83"Z"'''CHR$&85" right....."CHR$&83"X" 36 X=X+INKEY(-98)-INKEY(-67):X=X+(X>16)-(X <0) 40 PRINT'''CHR$&85" fire......"CHR$&83 "M"TAB(0,21)CHR$&82;CHR$136" Press the spa ce bar to play"'''" "CHR$&86;CHR$157;CHR$&84" (c) Copyright 1983 Ian Thomas."; 50 A$=GET$:IFA$<>" "GOTO50 60 MODE2:IFA%<0A%=0 70 *FX9 80 *FX10 90 VDU23,224,7,15,31,63,127,127,127,127,23 ,225,255,255,255,255,255,255,255,255,23,226,2 24,240,248,252,254,254,254,254,23,227,127,126 ,124,124,120,120,120,120,23,228,129,0,0,0,0,0 ,0,0,23,229,254,126,62,62,30,30,30,30 100 VDU23,231,127,127,127,127,127,127,127,1 27,23,232,254,254,254,254,254,254,254,254,19, 8,1,0,0,0,23;11,0;0;0;0;:FORJ%=233TO250:VDU23 ,J%:FORI%=0TO7:VDURND(255):NEXT, 110 B$=STRING$(4,CHR$224+CHR$225+CHR$226+ " ")+STRING$(4,CHR$231+CHR$225+CHR$232+" ") +STRING$(4,CHR$227+CHR$228+CHR$229+" ") 120 VDU23,255,4,4,14,14,31,31,0,0,23,254, 0,0,4,4,4,4,0,0,23,253,24,60,90,255,126,60,66 ,129,23,252,15,63,102,255,127,63,15,0,23,251, 240,252,102,255,254,252,240,0:ENVELOPE1,1,-4, 0,0,50,0,0,64,-1,-1,-2,80,0 130 ENVELOPE2,2,0,0,0,0,0,0,64,0,0,-2,80, 0:ENVELOPE3,2,5,1,1,5,1,1,64,0,0,-4,48,0:ENVE LOPE4,2,0,0,0,0,0,0,64,0,0,-2,128,0:DIMX%(5), A$(5),Y(5),C%(5) 140 FORB%=1TO20:SOUND1,-15,200,1:A$=INKEY $(5):NEXT:S%=0:X=0:Y%=7:Z%=0:L%=3:I%=30:J%=0: F%=1:U%=18:C%=0:E%=10000:Q%=0:W%=0 150 *FX11,1 160 *FX12,1 170 COLOUR5:PRINTTAB(0,1)"HIGH SCORE ";A% :COLOUR2:PRINTTAB(0,3)"LIVES":COLOUR3:PRINTTA B(9,3)"SCORE" 180 W%=W%+1:IFQ%>6 GOTO220 190 COLOUR8:PRINTTAB(1,25)B$ 200 VDU5:GCOL0,0:W$=STR$(W%):IFLEN(W$)<2 W$="0"+W$ 210 FORB%=96TO1056STEP320:MOVEB%,200:PRIN TW$:NEXT:VDU4 220 FORB%=1TO5:C%(B%)=B%+2:A$(B%)=" "+STR ING$(5,CHR$253+" "):COLOURC%(B%):X%(B%)=0:Y(B %)=B%*2+8+Q%:PRINTTAB(X%(B%),Y(B%))A$(B%):NEX T:Q%=Q%+1:IFQ%>9Q%=7 230 F%=1 240 FORB%=1TO5:IFA$(B%)=""C%=C%+1:IFB%<5N EXT 250 IFA$(B%)>""PRINTTAB(X%(B%),Y(B%))" " 260 X%(B%)=X%(B%)+F%:IFX%(B%)=0Y(B%)=Y(B% )+.5 270 IFA$(B%)>""COLOURC%(B%):PRINTTAB(X%(B %),Y(B%))A$(B%) 280 IFY(B%)>23C%(B%)=2:IFY(B%)>25C%(B%)=1 :IFY(B%)>28C%(B%)=9 290 IFU%<18SOUND&12,3,100,100 300 IFY(B%)=30ANDA$(B%)<>""GOTO540 310 PRINTTAB(J%,I%-1)" ":IFI%=30ANDJ%=INT (X+1)L%=L%-1:SOUND&10,2,4,4:IFL%=0GOTO540 320 IFFNAT(J%,I%)<>32 GCOL0,0:MOVEJ%*64,1 023-I%*32:VDU5,233+P%,4:I%=30:P%=(P%+1)MOD17 330 IFI%=30I%=Y(5)+1:J%=RND(19):IFI%>26 I %=26 340 PRINTTAB(J%,I%)CHR$254 350 I%=I%+1 360 X=X+INKEY(-98)-INKEY(-67):X=X+(X>16)- (X<0) 370 COLOUR7:PRINTTAB(X,30)" "CHR$255" ":I FINKEY(-102)ANDY%=7PRINTTAB(Z%,Y%)" ":Y%=29:Z %=X+1:SOUND&11,1,255,20 380 IFY%=8AND(Z%=U% ORZ%=U%+1)PRINTTAB(U% ,8)" ":S%=S%+1000:U%=18:SOUND&10,4,5,2 390 PRINTTAB(Z%,Y%)" ":IFY%>7Y%=Y%-1:IFFN AT(Z%,Y%)<>32 GCOL0,0:MOVEZ%*64,1023-Y%*32:VD U5,233+P%,4:Y%=7:SOUND&10,2,6,1:P%=(P%+1)MOD1 7 400 IFY%>7 PRINTTAB(Z%,Y%)CHR$254 410 FORD%=5TO1STEP-1 420 A$="":IFA$(D%)=" "A$(D%)= "" 430 IFINT(Y(D%))<>Y%NEXT:GOTO470 440 H%=(Z%-X%(D%))+1:A$=MID$(A$(D%),H%,1):I FA$=" "ORA$=""NEXT:GOTO470 450 IFA$=CHR$253S%=S%+(6-D%)*50:SOUND&10,2, 6,1:A$(D%)=LEFT$(A$(D%),(H%-1))+" "+RIGHT$(A$ (D%),(11-H%)) 460 PRINTTAB(Z%,Y%)" ":Y%=7 470 NEXTB%:IFC%=5C%=0:FORJ=0TO1000:NEXT:GOT O180 480 PRINTTAB(U%,8)" ":IFX%(5)=0ORX%(5)=8F% =-F% 490 IFU%<18U%=U%+1 500 IFU%=18SOUND&12,0,0,0:IFRND(20)=9U%=0 510 C%=0:COLOUR6:IFU%<18PRINTTAB(U%,8)CHR$2 52;CHR$251 520 PRINTTAB(15,3);S%;TAB(6,3);L%;" ":IFS% >E%L%=L%+1:E%=E%+10000 530 GOTO240 540 *FX15 550 ENVELOPE2,4,0,0,0,0,0,0,2,8,0,-8,32,128 :SOUND&10,2,4,50:FORJ=1TO5000:NEXT:IFS%>A%A%= S% 560 ENVELOPE2,2,0,0,0,0,0,0,64,0,0,-2,80,0: *FX15 570 *FX12 580 MODE7:PRINTTAB(7,8)CHR$&82;CHR$157;CHR$ &84;CHR$141;"Another game ? (Y/N) |"'" "CHR$&82;CHR$157;CHR$&84;CHR$141;"Another ga me ? (Y/N) |" 590 A$=GET$:IFA$<>"Y"ANDA$<>"N"GOTO590 600 IFA$="Y"CLEAR:GOTO60 610 END 620 DEFFNAT(X%,Y%):VDU31,X%,Y%:A%=135:A%=US R&FFF4 AND&FFFF 630 IFY%<Y(5)+1 =32 640 =A% DIV256