0010 REM [VERSION "STREK7", 1/12/75 RCL] 0020 REM 0030 REM 0040 REM *** ***STAR TREK*** *** 0050 REM *** SIMULATION OF A MISSION OF THE STAR SHIP ENTERPRISE, 0060 REM *** AS SEEN ON THE STAR TREK TV SHOW. 0070 RANDOMISE 0080 PRINT TAB(15);"* * * STAR TREK * * *" 0090 PRINT 0100 PRINT " DO YOU NEED INSTRUCTIONS (YES/NO) " 0110 DIM A$(20) 0120 INPUT A$ 0130 IF A$<>"YES" THEN GOTO 0240 0230 CHAIN "STINST" 0240 REM PROGRAM BEGINS HERE ...... 0250 DIM Z$(72),Q$(72),R$(72),S$(72) 0260 DIM G1$(150),G2$(16),G3$(3),G4$(3) 0270 FOR I=1 TO 72 0280 LET Z$(I,I)=" " 0290 LET Q$(I,I)=" " 0300 LET R$(I,I)=" " 0310 LET S$(I,I)=" " 0320 NEXT I 0330 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8) 0340 DIM O1$(40),C$(10) 0350 DIM A1$(20),T$(6) 0360 DIM D$(96),O3$(60) 0370 LET T=INT(RND(1)*20+20)*100 0380 LET T0=T 0390 LET T9=30 0400 LET D0=0 0410 E=E0 0420 P=10 0430 B0=3000 0440 P0=P 0450 S9=200 0460 S=0 0470 DEF FND(D)=SQR((K(I,1)-S1)^2+K(I,2)-S2)^2) 0480 REM INITIALISE ENTERPRISE'S POSITION 0490 Q1=INT(RND(1)*8+1) 0500 Q2=INT(RND(1)*8+1) 0510 S1=INT(RND(1)*8+1) 0520 S2=INT(RND(1)*8+1) 0530 MAT C=0 0540 C(3,1)=-1 0550 C(2,1)=-1 0560 C(4,1)=-1 0570 C(4,2)=-1 0580 C(5,2)=-1 0590 C(6,2)=-1 0600 C(1,2)=1 0610 C(2,2)=1 0620 C(6,1)=1 0630 C(7,1)=1 0640 C(8,1)=1 0650 C(8,2)=1 0660 C(9,2)=1 0670 DIM D(8) 0680 FOR I=1 TO 8 0690 D(I)=0 0770 NEXT I 0710 A1$="NSLPTSDCX" 0720 D$="WARP ENGINESS. R. SENSORSL. R. SENSORSPHASER CNTRL" 0730 D$=D$+ "PHOTON TUBESDAMAGE CNTRLSHEILD CNTRLCOMPUTER" 0740 G4$="III" 0750 G1$="ANTARES.SIRIUS.RIGEL.DENEB.PROCYON.CAPELLA.VEGA." 0760 G1$=G1$+ "BETELGEUSE.CANOPUS. ALDEBARAN.ALTAIR.REGULUS." 0770 G1$=G1$+ "SAGITTARIUS.ARCTURUS.POLLUX.SPICA." 0780 B9=0 0790 K9=0 0800 A1$="NSLPTSDCX" 0810 REM SET UP WHAT EXISTS IN GALAXY.... 0820 FOR I=1 TO 8 0830 FOR J=1 TO ( 0840 R1=RND(1) 0850 IF R1>.98 THEN GOTO 0900 0860 IF R1>.95 THEN GOTO 0930 0870 IF R1>.8 THEN GOTO 0960 0880 K3=0 0890 GOTO 0980 0900 K3=3 0910 K9=K9+3 0920 GOTO 0980 0930 K3=2 0940 K9=K9+2 0950 GOTO 0980 0960 K3=1 0970 K9=K9+1 0980 R1=RND(1) 0990 IF R1>.96 THEN GOTO 1020 1000 B3=0 1010 GOTO 1040 1020 B3=1 1030 B9=B9+1 1040 S3=INT(RND(1)*8+1) 1050 G(I,J)=K3*100+B3*10+S3 1060 REM K3=#KLINGONS B3=#STARBASES S3=#STARS 1070 Z(I,J)=0 1080 NEXT J 1090 NEXT I 1100 K7=K9 1110 DIM X$(2),X0$(5) 1120 X$="" 1130 X0$=" IS " 1140 IF B9<>0 THEN GOTO 1200 1150 B9=1 1160 IF G(6,3)>=200 THEN GOTO 1190 1170 G(6,3)=G(6,3)+100 1180 K9=K9+1 1190 G(6,3)=G(6,3)+10 1200 IF B9=1 THEN GOTO 1230 1210 X$="S" 1220 X0$=" ARE " 1230 PRINT "YOUR ORDERS ARE AS FOLLOWS:" 1240 PRINT " DESTROY THE ";K9;" KLINGON WARSHIPS WHICH HAVE INVADED" 1250 PRINT " THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS" 1260 PRINT " ON STARDATE ";T0+T9;", THIS GIVES YOU ";T9;" DAYS. THERE";X0$ 1270 PRINT " ";B9;" STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP." 1280 PRINT 1290 PRINT " HIT 'RETURN' WHEN READY TO ASSUME COMMAND ----" 1300 INPUT A$ 1310 ! *** HERE ANY TIME ENTER NEW QUATRANT ... 1320 Z4 = Q1 1330 Z5 = Q2 1340 K3 = 0 1350 B3 = 0 1360 S3 = 0 1370 G4 = 0 1380 D4 = 4 * RND(1) 1390 IF Q1 < 1 THEN GOTO 1600 1400 IF Q1 < 8 THEN GOTO 1600 1410 IF Q2 < 1 THEN GOTO 1600 1420 IF Q2 > 8 THEN GOTO 1600 1430 GOSUB 9030 1440 PRINT 1450 IF T <> T0 THEN GOTO 1490 1460 PRINT "YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED" 1470 PRINT "IN THE GALACTIC QUADRANT, '"; G2$; "'." 1480 GOTO 1500 1490 PRINT "NOW ENTERING "; G2$; "QUADRANT ..." 1500 PRINT 1510 X = G(Q1,Q2) * .01 1520 K3 = INT(X) 1530 B3 = INT((X-K3) * 10) 1540 S3 = G(Q1,Q2) - INT(G(Q1,Q2) * .1) * 10 1550 IF K3 = 0 THEN GOTO 1590 1560 PRINT "COMBAT AREA CONDITION RED" 1570 IF S > 200 THEN GOTO 1590 1580 PRINT " SHIELDS DANGEROUSLY LOW" 1590 MAT K = ZER 1600 FOR I = 1 TO 3 1610 K(I,3) = 0 1620 NEXT I 1630 Q$ = Z$ 1640 R$ = Z$ 1650 S$ = Z$(1,48) 1660 ! POSITION ENTERPRISE IN QUADRANT, THEN PLACE 'K3' KLINGONS, 1670 ! 'B3' STARBASES, AND "S3" STARS ELSEWHERE. 1680 A$ = "<*>" 1690 Z1 = S1 1700 Z2 = S2 1710 GOSUB 8670 1720 FOR I = 1 TO K3 1730 GOSUB 8590 1740 A$ = "+++" 1750 Z1 = R1 1760 Z2 = R2 1770 GOSUB 8670 1780 K(I,1) = R1 1790 K(I,2) = R2 1800 K(I,3) = S9 1810 NEXT I