Shoot the aliens.
Content
Source Code
200 DIM a$(4,32)
220 LET n=15
230 LET tm=0
240 LET s$=" "
245 PAPER 1: BRIGHT 1
250 FOR j=0 TO 21
260 PRINT AT j,0;s$;s$
270 NEXT j
280 LET pr=0
290 INK 7: PRINT AT 21,11;"Score "
300 LET limit=800
500 POKE USR "a",BIN 00011000
510 POKE USR "a"+1,BIN 00011000
520 POKE USR "a"+2,BIN 00111100
530 POKE USR "a"+3,BIN 00111100
540 POKE USR "a"+4,BIN 01111110
550 POKE USR "a"+5,BIN 01100110
560 POKE USR "a"+6,BIN 11000011
570 POKE USR "a"+7,BIN 11000011
600 POKE USR "b",BIN 00011000
610 POKE USR "b"+1,BIN 00011000
620 POKE USR "b"+2,BIN 00011000
630 POKE USR "b"+3,BIN 00011000
640 POKE USR "b"+4,BIN 00011000
650 POKE USR "b"+5,BIN 00011000
660 POKE USR "b"+6,BIN 00100100
670 POKE USR "b"+7,BIN 00000000
700 POKE USR "c",BIN 00000000
710 POKE USR "c"+1,BIN 011111110
720 POKE USR "c"+2,BIN 11111111
730 POKE USR "c"+3,BIN 00011000
740 POKE USR "c"+4,BIN 00111100
750 POKE USR "c"+5,BIN 01111110
760 POKE USR "c"+6,BIN 11111111
770 POKE USR "c"+7,BIN 00011000
900 LET sta=15
910 FOR i=1 TO 4
930 FOR j=1 TO 32
940 LET a$(i,j)=" "
950 NEXT j
960 NEXT i
970 LET scr=0
980 GO SUB 3000
985 GO SUB 4000
1010 IF |(1,1)=4 THEN GO TO 1100
1020 IF |(1,1)=8 THEN GO TO 1150
1030 IF |(2,1)=1 THEN GO TO 1060
1050 GO TO 1200
1060 LET pr=1: LET s=19: LET c=sta
1070 GO TO 1200
1100 IF sta-1<0 THEN GO TO 1200
1110 PRINT AT 20,sta;" "
1120 LET sta=sta-1
1130 GO TO 1200
1150 IF sta+1>31 THEN GO TO 1200
1160 PRINT AT 20,sta;" "
1170 LET sta=sta+1
1180 GO TO 1200
1200 INK 6: PRINT AT 20,sta;"\a"
1210 IF pr=0 THEN GO TO 1260
1220 IF s<=7 AND s/2<>INT (s/2) THEN GO SUB 6000
1230 INK 6: PRINT AT s,c;"\b"
1240 PAUSE 3: PRINT AT s,c;" "
1250 LET s=s-2
1260 LET tm=tm+8
1265 IF tm/50=INT (tm/50) THEN GO SUB 5000
1270 IF tm=limit THEN GO TO 9000
1280 IF left=0 THEN GO TO 1300
1290 GO TO 1010
1300 GO TO 1010
1310 GO SUB 4000
1320 GO TO 1010
3000 IF n<100 THEN LET n=n+5
3005 LET limit=limit+500: LET left=n
3010 FOR k=1 TO n
3020 LET x=INT (RND*4)+1
3030 LET y=INT (RND*32)+1
3040 IF a$(x,y)<>" " THEN GO TO 3020
3050 LET a$(x,y)="\c"
3060 NEXT k
3070 RETURN
4000 FOR k=1 TO 4
4010 INK 7: PRINT AT (k-1)*2+1,0;a$(k,1 TO 32)
4020 NEXT k
4030 RETURN
5000 FOR k=1 TO 4
5010 LET h$=a$(k,1 TO k)
5020 LET a$(k,1 TO 32-k)=a$(k,k+1 TO 32)
5030 LET a$(k,32-k+1 TO )=h$
5040 NEXT k
5050 GO SUB 4000
5080 RETURN
6000 FOR k=4 TO 1 STEP -1
6010 IF a$(k,c+1)="\c" AND s=(k-1)*2+1 THEN GO TO 6100
6020 NEXT k
6030 IF s>0 THEN RETURN
6040 GO TO 6120
6100 LET a$(k,c+1)=" "
6103 PRINT AT (k-1)*2+1,c;" "
6105 LET left=left-1
6110 LET scr=scr+100
6115 GO SUB 7000
6120 LET pr=0
6130 RETURN
7000 BEEP 0.01,2
7010 PRINT AT 21,17;scr
7020 FLASH 0
7030 RETURN
9000 BRIGHT 0
9010 INK 0
9020 GO TO 200
9997 SAVE "star blast"
9998 STOP