Apple1-esp/programs/startrek.txt

339 lines
11 KiB
Plaintext

SCR
LOMEM=768
HIMEM=16384
10 FOR I=1 TO 40: PRINT "*";:NEXT I: PRINT
20 PRINT "*";: TAB 40: PRINT "*"
30 PRINT "*";: TAB 15: PRINT "STAR TREK";: TAB 40: PRINT "*"
40 PRINT "*";: TAB 40: PRINT "*"
50 PRINT "* FOR THE APPLE 1 & REPLICA 1 *"
60 PRINT "*";: TAB 40: PRINT "*"
70 PRINT "*";: TAB 13: PRINT "BY VINCE BRIEL";: TAB 40: PRINT "*"
80 PRINT "*";: TAB 40: PRINT "*"
130 FOR I=1 TO 40: PRINT "*";:NEXT I: PRINT
140 FOR I=1 TO 9:PRINT:NEXT I
150 DIM G(100),S(100),A$(15),N$(25)
160 A$="-\= * >!</=\-=-"
170 INPUT "WHAT IS YOUR NAME CAPTAIN",N$
250 INPUT "SKILL LEVEL (1-5) 5 IS HARDEST",S
260 IF S>0 AND S<6 THEN 280
270 PRINT "CHOOSE A NUMBER BETWEEN 1 AND 5 PLEASE.":GOTO 250
280 FOR I=1 TO 15:PRINT:NEXT I:PRINT "SETTING UP THE GALAXY"
290 FOR I=1 TO 100:G(I)=0:NEXT I
300 E1=5*S+RND(10):E7=2000:S1=0:T=10
310 FOR I=1 TO E1
320 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF G(C)>=100 THEN 320
330 G(C)=G(C)+100
340 NEXT I
350 FOR I=1 TO 7-S
360 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:G=G(C)
370 IF G<100 THEN 390
380 G=G-100:GOTO 370
390 IF G>=10 THEN 360
400 G(C)=G(C)+10
410 NEXT I
420 G=RND(300)+1:FOR I=1 TO G
430 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10
440 G(C)=G(C)+1:NEXT I
450 REM SET UP RANDOM X,Y CORDINATES FOR WHOLE GALAXY
451 PRINT:PRINT:PRINT
452 PRINT "SPACE, THE FINAL FRONTIER.":FOR G=1 TO 1000:NEXT G
453 PRINT "THESE ARE THE VOYAGES OF THE STARSHIP"
454 PRINT "ENTERPRISE. ITS FIVE YEAR MISSION:"
455 PRINT "TO EXPLORE STRANGE NEW WORLDS,"
456 PRINT "TO SEEK OUT NEW LIFE AND "
457 PRINT "NEW CIVILIZATIONS, TO BOLDLY GO "
458 PRINT "WHERE NO MAN HAS GONE BEFORE!"
459 PRINT:TAB (10):PRINT"S T A R T R E K":FOR G=1 TO 1000:NEXT G
460 X1=RND(10)+1:Y1=RND(10)+1:GOTO 2000
470 PRINT:PRINT "LONG RANGE SENSOR SCAN:":PRINT:PRINT E1;" ENEMIES REMAINING.":PRINT
480 IF X1>1 THEN 500
490 PRINT " 10 1 2":GOTO 530
500 IF X1<10 THEN 520
510 PRINT " 9 10 1":GOTO 530
520 TAB 7:PRINT X1-1;" ";X1;" ";X1+1
530 FOR Y=Y1-1 TO Y1+1:Y2=Y:IF Y2<1 THEN Y2=10
540 IF Y2>10 THEN Y2=1
550 FOR I=1 TO 22:PRINT "-";:NEXT I:PRINT:PRINT Y2;:IF Y2<10 THEN PRINT " ";
560 PRINT " :";:N=1:FOR X=X1-1 TO X1+1:X2=X:IF X2<1 THEN X2=10
570 IF X2>10 THEN X2=1
580 IF X2=1 THEN 600
590 TAB (N*6)
600 C=(10*Y2+X2)-10:IF G(C)<100 THEN PRINT"0";
610 IF G(C)<10 THEN PRINT "0";
620 PRINT G(C);" : ";:N=N+1:NEXT X:PRINT:N=1:NEXT Y
630 FOR I=1 TO 22:PRINT "-";:NEXT I:PRINT:RETURN
650 REM SET UP OBJECTS IN QUADRANT PLACE ENTERPRISE FIRST
660 X4=RND(10)+1:Y4=RND(10)+1:C=(10*Y4+X4)-10:E6=0:E5=0
670 FOR I=1 TO 10:PRINT:NEXT I
680 PRINT "ENTERING QUADRANT ";X1;",";Y1
690 FOR I=1 TO 100:S(I)=0:NEXT I:S(C)=1:C=(10*Y1+X1)-10:G=G(C)
700 IF G<100 THEN 760
710 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 710
720 D=RND(10)+1:IF D=1 THEN 740
730 S(C)=4:E6=100:E5=4:GOTO 750
740 S(C)=5:E6=200:E5=5
750 G=G-100
760 IF G<10 THEN 790
770 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 770
780 S(C)=3:G=G-10:IF G>=10 THEN 770
790 IF G=0 THEN 840
800 FOR I=1 TO G
810 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 810
820 S(C)=2:NEXT I
840 RETURN
850 REM PRINT QUADRANT
860 PRINT:PRINT "QUAD ";X1;",";Y1;" SEC ";X4;",";Y4;" COND: ";:C1=3:C=(10*Y1+X1)-10:IF G(C) < 10 THEN 880
870 C1=2
880 IF G(C) < 100 THEN 900
890 C1=1
900 IF C1=1 THEN PRINT "RED"
910 IF C1=2 THEN PRINT "YELLOW"
920 IF C1=3 THEN PRINT "GREEN"
930 FOR I=1 TO 30:PRINT "-";:NEXT I:PRINT:FOR Y=1 TO 10:FOR X=1 TO 10:C=(10*Y+X)-10:IF S(C)<>0 THEN 950
940 PRINT " ";:GOTO 960
950 PRINT A$((S(C)*3)-2,S(C)*3);
960 NEXT X:PRINT:NEXT Y:FOR I=1 TO 30:PRINT "-";:NEXT I:PRINT:PRINT
970 PRINT "ENERGY=";E7;:TAB 13:PRINT "SHIELDS=";S1;:TAB 24:PRINT "TORP=";T:PRINT:PRINT:PRINT:PRINT:PRINT:RETURN
1000 REM PHASORS
1010 INPUT "ENTER SHIELD LEVEL",G:IF G<E7 THEN 1030
1020 PRINT "NOT ENOUGH ENERGY.":GOTO 1000
1030 S1=G:E7=E7-G:IF S1>0 THEN 1050
1040 S1=0
1050 RETURN
1100 REM ENEMY FIRES
1110 IF E6>50 THEN 1130
1120 RETURN
1130 G=RND(E6/2)+1:IF E5=5 THEN 1220
1140 PRINT "KLINGON FIRES PHASOR BLAST ";G;" STRONG."
1150 S1=S1-G:E6=E6-(G/2):IF S1>0 THEN 1210
1160 E7=E7-G*2:S1=0:PRINT "SHIELDS DOWN! ";G*2;" DAMAGE TO SHIPS ENERGY"
1170 IF E7>0 THEN 1210
1180 PRINT "THE ENTERPRISE WAS DESTROYED!"
1190 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED."
1200 END
1210 RETURN
1220 G=G*(RND(3)+1):PRINT "ROMULAN FIRES STRANGE WEAPON...":PRINT "CAUSES ";G;" IN DAMAGE"
1230 GOTO 1150
1250 REM WARP SPEED
1260 IF S1<=0 THEN 1290
1270 PRINT "CAN'T WARP WITH SHIELDS UP.":GOTO 1900
1290 INPUT "DIRECTION ",T1:IF T1<1 OR T1>8 THEN 1290
1300 INPUT "WARP SPEED",G:IF G*10 < E7 THEN 1360
1320 PRINT "NOT ENOUGH ENERGY.":GOTO 1900
1360 FOR I=1 TO G:IF T1#1 THEN 1450
1380 X1=X1+1:IF X1>10 THEN X1=1
1420 Y1=Y1-1:IF Y1<1 THEN Y1=10
1450 IF T1#2 THEN 1500
1480 X1=X1+1:IF X1>10 THEN X1=1
1500 IF T1#3 THEN 1580
1520 X1=X1+1:IF X1>10 THEN X1=1
1540 Y1=Y1+1:IF Y1>10 THEN Y1=1
1580 IF T1#4 THEN 1640
1600 Y1=Y1+1:IF Y1>10 THEN Y1=1
1640 IF T1#5 THEN 1700
1660 X1=X1-1:IF X1<1 THEN X1=10
1680 Y1=Y1+1:IF Y1>10 THEN Y1=1
1700 IF T1#6 THEN 1760
1740 X1=X1-1:IF X1<1 THEN X1=10
1760 IF T1#7 THEN 1820
1780 X1=X1-1:IF X1<1 THEN X1=10
1800 Y1=Y1-1:IF Y1<1 THEN Y1=10
1820 IF T1#8 THEN 1850
1840 Y1=Y1-1:IF Y1<1 THEN Y1=10
1850 E7=E7-10:NEXT I:GOSUB 650
1870 GOSUB 850
1900 RETURN
2000 GOSUB 650
2010 GOSUB 850
2020 PRINT:PRINT "COMMAND CAPTAIN ";N$;" (0=HELP) ";
2030 INPUT C2
2040 IF G((10*Y1+X1)-10)<100 THEN 2070
2050 G=RND(5)+1:IF G>3 THEN 2070
2060 GOSUB 1100
2070 IF C2#0 THEN 2100
2080 GOSUB 2360
2090 GOTO 2020
2100 IF C2#1 THEN 2130
2110 GOSUB 470
2120 GOTO 2020
2130 IF C2#2 THEN 2160
2140 GOSUB 850
2150 GOTO 2020
2160 IF C2#3 THEN 2190
2170 GOSUB 1250
2180 GOTO 2020
2190 IF C2#4 THEN 2220
2200 GOSUB 1000
2210 GOTO 2020
2220 IF C2#5 THEN 2250
2230 GOSUB 2400
2240 GOTO 2020
2250 IF C2#6 THEN 2280
2260 GOSUB 3000
2270 GOTO 2020
2280 IF C2#7 THEN 2310
2290 GOSUB 4200
2300 GOTO 2020
2310 IF C2#8 THEN 2350
2320 GOTO 7000
2350 PRINT "ENTER A VALID COMMAND.":GOTO 2020
2360 PRINT:PRINT "COMMAND LIST:":PRINT:PRINT "0 = HELP, THIS LIST":PRINT "1 = LONG RANGE SENSOR SCAN"
2370 PRINT "2 = SHORT RANGE SENSOR SCAN":PRINT "3 = WARP ENGINES":PRINT "4 = SHIELD CONTROL":PRINT "5 = IMPULSE ENGINES"
2380 PRINT "6 = PHASOR CONTROL":PRINT "7 = PHOTON TORPEDO CONTROL"
2390 PRINT "8 = SELF DESTRUCT"
2391 PRINT " DIRECTIONS:"
2392 PRINT " 8"
2393 PRINT " 7 | 1"
2394 PRINT " \ | /"
2395 PRINT " 6---0---2"
2396 PRINT " / | \"
2397 PRINT " 5 | 3"
2398 PRINT " 4"
2399 RETURN
2400 INPUT "DIRECTION (1-8)",D
2410 IF D>0 AND D<9 THEN 2440
2420 PRINT "ANSWER BETWEEN 1 AND 8."
2430 GOTO 2400
2440 INPUT "IMPULSE SPEED",J
2450 IF E7>J THEN 2480
2460 PRINT "YOU DON'T HAVE ENOUGH ENERGY!"
2470 RETURN
2480 S((10*Y4+X4)-10)=0:FOR I=1 TO J:IF D#1 THEN 2510
2490 X4=X4+1:IF X4>10 THEN X4=1
2500 Y4=Y4-1:IF Y4<1 THEN Y4=10
2510 IF D#2 THEN 2530
2520 X4=X4+1:IF X4>10 THEN X4=1
2530 IF D#3 THEN 2560
2540 X4=X4+1:IF X4>10 THEN X4=1
2550 Y4=Y4+1:IF Y4>10 THEN Y4=1
2560 IF D#4 THEN 2580
2570 Y4=Y4+1:IF Y4>10 THEN Y4=1
2580 IF D#5 THEN 2610
2590 X4=X4-1:IF X4<1 THEN X4=10
2600 Y4=Y4+1:IF Y4>10 THEN Y4=1
2610 IF D#6 THEN 2630
2620 X4=X4-1:IF X4<1 THEN X4=10
2630 IF D#7 THEN 2660
2640 X4=X4-1:IF X4<1 THEN X4=10
2650 Y4=Y4-1:IF Y4<1 THEN Y4=10
2660 IF D#8 THEN 2680
2670 Y4=Y4-1:IF Y4<1 THEN Y4=10
2680 E7=E7-1:G=S((10*Y4+X4)-10)
2690 IF G=0 THEN 2900
2700 IF G#2 THEN 2750
2720 PRINT "YOU RAN INTO A STAR AND BURNED!"
2730 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED"
2740 END
2750 IF G#3 THEN 2800
2770 PRINT "YOU RAMMED THE STARBASE!"
2780 PRINT:PRINT "THOUSANDS ARE DEAD."
2790 PRINT N$;" WILL BE KNOWN AS A KILLER.":END
2800 PRINT "YOU RAMMED THE ENEMY SHIP"
2810 PRINT "IT WAS DESTROYED BUT SO WAS"
2820 PRINT "THE ENTERPRISE!":END
2900 NEXT I
2920 S((10*Y4+X4)-10)=1
2930 GOSUB 850
2940 GOSUB 4050
2950 RETURN
3000 REM PHASOR CONTROL
3010 IF E5#0 THEN 3100
3020 PRINT "NO ENEMY TO LOCK PHASORS ONTO!":RETURN
3100 INPUT "AMOUNT OF ENERGY TO PHASORS",G
3110 IF G<E7 THEN 3140
3120 PRINT "YOU DON'T HAVE THAT MUCH ENERGY.":GOTO 3100
3130 E7=E7-G
3140 IF E5=5 THEN 3390
3150 R=RND(10)+1:IF R#1 THEN 3300
3170 PRINT "PHASORS MISSED!":RETURN
3300 PRINT "KLINGON HIT WITH ";G;" PHASOR UNITS."
3310 E6=E6-G:IF E6>0 THEN 3380
3320 PRINT "*** KLINGON DESTROYED ***"
3330 G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100
3340 E1=E1-1:IF E1=0 THEN 4000
3350 E6=0:E5=0:FOR I=1 TO 100:IF S(I)=4 THEN S(I)=0
3360 IF S(I)=5 THEN S(I)=0
3370 NEXT I:GOSUB 850
3380 RETURN
3390 R=RND(5)+1:IF R>3 THEN 3410
3400 PRINT "ROMULAN SHIP AVOIDED PHASOR FIRE!":RETURN
3410 PRINT "ROMULAN HIT WITH ";G;" PHASOR UNITS."
3420 E6=E6-G:IF E6>0 THEN 3380
3430 PRINT "*** ROMULAN SHIP DESTROYED ***"
3440 G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100:E1=E1-1:IF E1=0 THEN 4000
3450 GOTO 3350
4000 FOR I=1 TO 24:PRINT:NEXT I
4010 PRINT "YOU HAVE DEFENDED THE GALAXY AND DEFEATED"
4020 PRINT "ALL ENEMIES! YOU WILL BE PROMOTED TO"
4030 PRINT "ADMIRAL BEFORE BEING SUCKED OUT INTO"
4040 PRINT "SPACE IN STAR TREK GENERATIONS."
4050 REM CHECK IF DOCKED
4060 D9=0:X=X4-1:IF X<1 THEN X=10
4070 X9=X4+1:IF X9>10 THEN X9=1
4080 IF S((10*Y4+X)-10)=3 THEN 4120
4090 IF S((10*Y4+X9)-10)=3 THEN 4120
4100 RETURN
4120 IF S1=0 THEN 4140
4130 PRINT "YOU CAN'T DOCK WITH SHIELDS UP.":RETURN
4140 PRINT "YOU ARE DOCKED WITH THE STARBASE":D9=1
4150 PRINT "ENERGY RESTORED":E7=2000:T=10:RETURN
4200 REM PHOTON TORPEDO CONTROL
4300 IF T>0 THEN 4500
4400 PRINT "YOU DON'T HAVE ANY TORPEDOS.":RETURN
4500 INPUT "DIRECTION",D
4600 IF D>0 AND D<9 THEN 4800
4700 PRINT "PLEASE CHOOSE BETWEEN 1-8":GOTO 4500
4800 X5=X4:Y5=Y4:T=T-1:PRINT:PRINT "TRACKING TORPEDO PATH":PRINT
5000 TAB 10:PRINT X5;",";Y5: IF D#1 THEN 5500
5100 X5=X5+1:IF X5>10 THEN 6000
5300 Y5=Y5-1:IF Y5<1 THEN 6000
5500 IF D#2 THEN 5560
5520 X5=X5+1:IF X5>10 THEN 6000
5560 IF D#3 THEN 5680
5600 X5=X5+1:IF X5>10 THEN 6000
5640 Y5=Y5+1:IF Y5>10 THEN 6000
5680 IF D#4 THEN 5720
5700 Y5=Y5+1:IF Y5>10 THEN 6000
5720 IF D#5 THEN 5780
5740 X5=X5-1:IF X5<1 THEN 6000
5760 Y5=Y5+1:IF Y5>10 THEN 6000
5780 IF D#6 THEN 5800
5790 X5=X5-1:IF X5<1 THEN 6000
5800 IF D#7 THEN 5830
5810 X5=X5-1:IF X5<1 THEN 6000
5820 Y5=Y5-1:IF Y5<1 THEN 6000
5830 IF D#8 THEN 5850
5840 Y5=Y5-1:IF Y5<1 THEN 6000
5850 V=S((10*Y5+X5)-10):IF V=0 THEN 5000
5860 IF V=2 THEN 6200
5870 IF V=3 THEN 6400
5880 IF V=4 THEN 6450
5890 IF V=5 THEN 6600
5900 GOTO 5000:REM CONTINUE UNTIL HIT SOMETHING OR LEAVE QUAD
6000 REM OUT OF QUADRANT
6100 PRINT:PRINT " ***** TORPEDO MISSED *****":PRINT:RETURN
6200 REM HIT STAR
6300 PRINT "TORPEDO EXPLODED IN THE STAR":PRINT:RETURN
6400 PRINT " ***** STAR BASE DESTROYED *****":GOTO 2780
6450 PRINT "KLINGON HIT BY TORPEDO"
6460 IF RND(100)+1>98 THEN 6550
6470 PRINT:PRINT "KLINGON DESTROYED"
6480 S((10*Y5+X5)-10)=0:G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100:E1=E1-1:E5=0:E6=0:IF E1=0 THEN 4000
6490 PRINT:GOSUB 850
6500 RETURN
6550 PRINT "KLINGON SURVIVED IMPACT FROM TORPEDO":E6=E6/2:RETURN
6600 PRINT "ROMULAN HIT BY TORPEDO"
6610 IF RND(100)+1<50 THEN 6650
6620 PRINT:PRINT "ROMULAN SHIP DESTROYED!":GOTO 6480
6650 PRINT "ROMULAN SHIELDS HOLDING":E6=E6/2:RETURN
7000 PRINT:PRINT "SELF DESTRUCT SEQUENCE IS NOW ACTIVE"
7100 FOR X=10 TO 1 STEP -1
7200 TAB 19:PRINT X:FOR Y=1 TO 500:NEXT Y:NEXT X
7300 PRINT:PRINT:PRINT " **** KA-BOOM!!! ****"
7400 PRINT "PIECES OF THE ENTERPRISE ARE NOW"
7500 PRINT "SPREAD ACROSS THE GALAXY"
7600 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED."
7700 END