Source Code
1 REM "STARBLASTERS"
2 REM
3 REM DAN TANDBERG
4 REM SYNC MAGAZINE
5 REM JANUARY/FEBRUARY 1983
10 REM
20 GOSUB 1370
30 LET TOTAL=0
40 LET WAVE=1
50 GOSUB 800
60 SLOW
70 GOTO 190
80 REM %Y%O%U% %F%I%R%E% % % % % % % % % % % % % % %
90 LET CAT=29-C
100 LET U=C+3
110 PRINT AT R,U;A$( TO CAT);AT R,U;C$( TO CAT);AT R,U;E$( TO CAT);AT R,U;F$( TO CAT);AT R,U;G$( TO CAT);AT R,U;X$( TO CAT)
120 IF R=RA THEN GOTO 470
130 LET FIRE=FIRE+(.4-D/10)
140 RETURN
150 REM %A%L%I%E%N% %F%I%R%E% % % % % % % % % % % % %
160 PRINT AT RA,0;J$( TO CA);AT RA,0;H$( TO CA);AT RA,0;J$( TO CA);AT RA,0;H$( TO CA);AT RA,0;I$( TO CA);AT RA,0;X$( TO CA)
170 IF R=RA THEN GOTO 380
180 RETURN
190 REM %M%O%V%E% % % % % % % % % % % % % % % % % % %
200 LET RAX=RA
210 LET CAX=CA
220 LET RX=R
230 LET CX=C
240 LET C=C+1
250 LET CA=CA-1
260 LET RA=RA+(RND<.5 AND RA<16)-(RND>.5 AND RA>2)
270 PRINT AT RAX,CAX;R$;AT RA,CA;Z$
280 LET R=R+(INKEY$="6" AND R<18)-(INKEY$="7" AND R>2)
290 PRINT AT RX,CX;R$
300 PRINT AT R,C;Y$
310 IF RND<(FIRE+DIFF) THEN GOSUB 150
320 IF C>=CA THEN GOTO 590
330 REM %D%E%L%A%Y% %F%O%R% %F%I%R%E% % % % % % % % %
340 FOR I=1 TO D
350 NEXT I
360 IF INKEY$="1" THEN GOSUB 80
370 GOTO 190
380 REM %Y%O%U% %H%I%T% % % % % % % % % % % % % % % %
390 PRINT AT R,C;"% %.%.% ";AT R,C;"%.%.%.%.";AT R,C;"%.% % %.";AT R,C;"% % % % ";AT R-1,C;"%.% % %.";AT R+1,C;"%.% % %.";AT R-1,C;"% % % % ";AT R+1,C;"% % % % "
400 LET R=RA-(RA>=10)*INT (RND*D+2)+(RA<10)*INT (RND*D+2)
410 LET C=0
420 LET SHIPS=SHIPS-1
430 PRINT AT 21,3;"SHIPS= ";SHIPS
440 IF SHIPS<=0 THEN GOTO 1170
450 LET FIRE=0
460 GOTO 190
470 REM %A%L%I%E%N% %H%I%T% % % % % % % % % % % % % %
480 PRINT AT R,CA;"% %.%.% ";AT R,CA;"%.%.%.%.";AT R,CA;"%.% % %.";AT R,CA;"% % % % ";AT R-1,CA;"%.% % %.";AT R+1,CA;"%.% % %.";AT R-1,CA;"% % % % ";AT R+1,CA;"% % % % "
490 LET RA=R-(R>=10)*INT (RND*6)+(R<10)*INT (RND*8)
500 LET CA=28
510 LET ALIENS=ALIENS-1
520 PRINT AT R,C;R$
530 LET C=0
540 PRINT AT 21,20;"ALIENS ";ALIENS;" "
550 IF ALIENS<=0 THEN GOTO 1270
560 LET DIFF=DIFF+.3/(D*WAVE*5)
570 LET FIRE=0
580 GOTO 190
590 REM %O%V%E%R%R%U%N% % % % % % % % % % % % % % % %
600 PRINT AT R,C;"% %.%.% ";AT R,C;"%.%.%.%.";AT R,C;"%.% % %.";AT R,C;"% % % % ";AT R-1,C;"%.% % %.";AT R+1,C;"%.% % %.";AT R-1,C;"% % % % ";AT R+1,C;"% % % % "
610 PRINT AT RAX,CAX;R$;AT RA,CA;Z$
620 IF RND>.5 THEN PRINT AT RA,0;J$( TO CA);AT RA,0;H$;AT RA,0;J$( TO CA);AT RA,0;H$( TO CA);AT RA,0;I$( TO CA);AT RA,0;X$( TO CA)
630 LET RAX=RA
640 LET CAX=CA
650 LET CA=CA-1
660 LET RA=RA+(RA<=9)-(RA>=11)
670 IF CA<=0 THEN GOTO 1170
680 GOTO 610
690 REM %E%N%D% %O%F% %O%V%E%R%R%U%N% % % % % % % %
700 REM %S%E%T% %P%O%S%I%T%I%O%N%S% % % % % % % % %
710 LET RA=2+2*INT (RND*8)
720 LET CA=28
730 PRINT AT 21,20;"ALIENS ";ALIENS
740 RETURN
750 REM %R%E%S%E%T% %Y%O%U%R% %P%O%S%I%T%I%O%N% % % %
760 LET R=RA-(RA>=10)*INT (RND*6)+(RA<10)*INT (RND*6)
770 LET C=1
780 PRINT AT 21,3;"SHIPS= ";SHIPS
790 RETURN
800 REM %S%E%T%U%P% % % % % % % % % % % % % % % % % %
810 FAST
820 CLS
830 PRINT AT 0,0;"% % % % %S% %T% %A% %R% %B% %L% %A% %S% %T% %E% %R% %S% % % % % "
840 FOR I=1 TO 20
850 PRINT AT I,0;"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
860 NEXT I
870 PRINT AT 20,15;CHR$ (128+CODE STR$ D)
880 REM %L%O%N%G% %S%T%R%I%N%G%S% % % % % % % % % % %
890 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
900 LET C$="\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!\!!"
910 LET E$="%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+"
920 LET F$="%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%=%="
930 LET G$="%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-"
940 LET H$="\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;\;;"
950 LET I$="%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%."
960 LET J$="\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
970 LET X$="% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
980 REM %S%H%O%R%T% %S%T%R%I%N%G%S% % % % % % % % % %
990 LET Y$="%<%0%>"
\n1000 LET Z$="%<%=%>"
\n1010 LET R$="% % % "
\n1020 REM %I%N%I%T%I%A%L%I%Z%E% % % % % % % % % % % % %
\n1030 LET SHIPS=5
\n1040 LET FIRE=0
\n1050 LET DIFF=0.1
\n1060 LET ALIENS=WAVE*5
\n1070 GOSUB 700
\n1080 GOSUB 750
\n1090 REM %S%T%A%R%S% % % % % % % % % % % % % % % % % %
\n1100 RAND
\n1110 FOR I=1 TO 10
\n1120 PRINT AT 1+INT (RND*19),INT (RND*31);"%*"
\n1130 PRINT AT 1+INT (RND*19),INT (RND*31);"%."
\n1140 PRINT AT 1+INT (RND*19),INT (RND*31);"%."
\n1150 NEXT I
\n1160 RETURN
\n1170 REM %A%L%I%E%N%S% %W%I%N% % % % % % % % % % % % %
\n1180 FAST
\n1190 LET TOTAL=TOTAL+WAVE*5-ALIENS
\n1200 CLS
\n1210 PRINT AT 4,3;"YOU FAILED---"
\n1220 PRINT AT 8,3;"THE ALIENS GOT THROUGH."
\n1230 PRINT AT 12,3;"YOU DESTROYED ";TOTAL;" SHIPS."
\n1240 PRINT AT 21,3;"(PUSH TO TRY AGAIN.)"
\n1250 PAUSE 10000
\n1260 GOTO 30
\n1270 REM %E%A%R%T%H% %W%I%N%S% % % % % % % % % % % % %
\n1280 FAST
\n1290 LET TOTAL=TOTAL+WAVE*5
\n1300 CLS
\n1310 LET WAVE=WAVE+1
\n1320 PRINT AT 8,3;"CONGRATULATIONS---"
\n1330 PRINT AT 12,3;"A SUCCESSFUL DEFENCE."
\n1340 PRINT AT 21,3;"(BUT WAVE ";WAVE;" IS ON THE WAY.)"
\n1350 PAUSE 600
\n1360 GOTO 50
\n1370 REM %I%N%S%T%R%U%C%T%I%O%N%S% % % % % % % % % % %
\n1380 FAST
\n1390 CLS
\n1400 PRINT """STARBLASTERS"""
\n1410 PRINT
\n1420 PRINT
\n1430 PRINT
\n1440 PRINT "USE KEYS 6 AND 7"
\n1450 PRINT "TO STEER EARTHSHIPS"
\n1460 PRINT
\n1470 PRINT "USE KEY 1"
\n1480 PRINT "TO BLAST ALIENS."
\n1490 PRINT
\n1500 PRINT
\n1510 PRINT "DIFFICULTY:"
\n1520 PRINT "1 IS HARD"
\n1530 PRINT "2 IS MEDIUM"
\n1540 PRINT "3 IS EASY"
\n1550 PAUSE 10000
\n1560 LET D=VAL INKEY$
\n1570 IF D>3 OR D<1 THEN GOTO 1550
\n1580 RETURN
\n1585 CLEAR
\n1590 SAVE "1000%7"
\n1600 RUN