100 REM *** PROGRAM SIMULATES TV PROGRAM STARTREK 110 REM *** WRITTEN BY MIKE MAYFIELD, CENTERLINE ENGINEERING 170 RANDOMIZE 180 PRINT " * * * STAR TREK * * *" 181 PRINT 200 INPUT "DO YOU WANT INSTRUCTIONS (THEY'RE LONG!)";A$ 210 IF A$<>"YES" THEN 230 220 GOTO 5820 230 REM *** PROGRAM BEGINS HERE 240 Z$,R$,Q$=" " 260 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8) 290 T0,T=INT(RND(1)*20+20)*100 300 T9=30 301 D0=0 302 E0,E=3000 303 P0,P=10 304 S9=200 305 S,H8=0 360 DEF FND(D)=SQR((K(I,1)-S1)**2+(K(I,2)-S2)**2) 370 Q1=INT(RND(1)*8+1) 380 Q2=INT(RND(1)*8+1) 390 S1=INT(RND(1)*8+1) 400 S2=INT(RND(1)*8+1) 410 T7=TIME(0) 420 C(2,1),C(3,1),C(4,1),C(4,2),C(5,2),C(6,2)=-1 430 C(1,1),C(3,2),C(5,1),C(7,2),C(9,1)=0 440 C(1,2),C(2,2),C(6,1),C(7,1),C(8,1),C(8,2),C(9,2)=1 450 MAT D=ZER 460 D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL" 470 D$=D$+"PHOTON TUBESDAMAGE CNTRL" 480 E$="SHIELD CNTRLCOMPUTER" 490 B9,K9=0 491 REM *** SETS UP WHAT EXISTS IN GALAXY 500 FOR I=1TO8 510 FOR J=1TO8 520 R1=RND(1) 530 IF R1>.98 THEN 580 540 IF R1>.95 THEN 610 550 IF R1>.8 THEN 640 560 K3=0 561 GOTO 660 580 K3=3 581 K9=K9+3 582 GOTO 660 610 K3=2 611 K9=K9+2 612 GOTO 660 640 K3=1 641 K9=K9+1 660 R1=RND(1) 670 IF R1>.96 THEN 700 680 B3=0 681 GOTO 720 700 B3=1 701 B9=B9+1 720 S3=INT(RND(1)*8+1) 730 G(I,J)=K3*100+B3*10+S3 740 Z(I,J)=0 750 NEXT J 760 NEXT I 770 K7=K9 775 PRINT 776 PRINT 780 PRINT"YOU MUST DESTROY"K9" KLINGONS IN"T9" STARDATES WITH "B9" STARBASES" 790 IF B9>0 THEN 810 800 G(6,3)=114 810 K3,B3,S3=0 820 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 920 830 X=G(Q1,Q2)*.01 840 K3=INT(X) 850 B3=INT((X-K3)*10) 860 S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10 870 IF K3=0 THEN 910 880 IF S>200 THEN 910 890 PRINT"COMBAT AREA CONDITION RED" 900 PRINT" SHIELDS DANGEROUSLY LOW" 910 MAT K=ZER 920 FOR I=1TO3 930 K(I,3)=0 940 NEXT I 950 Q$=Z$ 951 R$=Z$ 970 S$=MID(Z$,1,48) 971 REM *** PUT ENTERPRISE SOMEWHERE 980 A$="<*>" 990 Z1=S1 1000 Z2=S2 1010 GOSUB 5510 1020 FOR I=1TOK3 1030 GOSUB 5380 1031 REM *** PUT KLINGONS SOMEWHERE 1040 A$="+++" 1050 Z1=R1 1060 Z2=R2 1070 GOSUB 5510 1080 K(I,1)=R1 1081 K(I,2)=R2 1082 K(I,3)=S9 1110 NEXT I 1120 FOR I=1TOB3 1130 GOSUB 5380 1131 REM *** PUT STARBASE(S) SOMEWHERE 1140 A$=">!<" 1141 Z1=R1 1142 Z2=R2 1170 GOSUB 5510 1180 NEXT I 1190 FOR I=1TOS3 1200 GOSUB 5380 1201 REM *** PUT STARS SOMEWHERE 1210 A$=" * " 1211 Z1=R1 1212 Z2=R2 1240 GOSUB 5510 1250 NEXT I 1260 GOSUB 4120 1270 INPUT "COMMAND:";A 1290 IF A=0 GOTO 1410 1291 IF A=1 GOTO 1260 1292 IF A=2 GOTO 2330 1293 IF A=3 GOTO 2530 1294 IF A=4 GOTO 2800 1295 IF A=5 GOTO 3460 1296 IF A=6 GOTO 3560 1297 IF A=7 GOTO 4630 1298 IF A=8 GOTO 6510 1310 PRINT 1311 PRINT" 0 = SET COURSE" 1320 PRINT" 1 = SHORT RANGE SENSOR SCAN" 1330 PRINT" 2 = LONG RANGE SENSOR SCAN" 1340 PRINT" 3 = FIRE PHASERS" 1350 PRINT" 4 = FIRE PHOTON TORPEDOES" 1360 PRINT" 5 = SHIELD CONTROL" 1370 PRINT" 6 = DAMAGE CONTROL REPORT" 1380 PRINT" 7 = CALL ON LIBRARY COMPUTER" 1390 PRINT" 8 = END THE CONTEST" 1391 PRINT 1400 GOTO 1270 1401 REM *** COURSE CONTROL CODE BEGINS HERE 1410 INPUT "COURSE (1-9):";C1 1430 IF C1=0 THEN 1270 1440 IF C1<1 OR C1>9 THEN 1410 1450 INPUT "WARP FACTOR (0-8):";W1 1470 IF W1<0 OR W1>8 THEN 1410 1480 IF D(1)>=0 OR W1<=.2 THEN 1510 1490 PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2" 1500 GOTO 1410 1510 IF K3<=0 THEN 1560 1520 GOSUB 3790 1530 IF K3<=0 THEN 1560 1540 IF S<0 THEN 4000 1550 GOTO 1610 1560 IF E>0 THEN 1610 1570 IF S<1 THEN 3920 1580 PRINT "YOU HAVE"E" UNITS OF ENERGY" 1590 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE"S" UNITS LEFT" 1600 GOTO 1270 1610 FOR I=1TO8 1611 IF D(I)>=0 THEN 1640 1612 REM *** FIX ANY DAMAGED DEVICE 1630 D(I)=D(I)+1 1640 NEXT I 1650 IF RND(1)>.2 THEN 1810 1660 R1=INT(RND(1)*8+1) 1670 IF RND(1)>= .5 THEN 1750 1680 D(R1)=D(R1)-(RND(1)*5+1) 1690 PRINT 1691 PRINT "DAMAGE CONTROL REPORT:"; 1710 GOSUB 5610 1720 PRINT" DAMAGED" 1721 PRINT 1722 GOTO 1810 1750 D(R1)=D(R1)+(RND(1)*5+1) 1760 PRINT 1761 PRINT "DAMAGE CONTROL REPORT:"; 1780 GOSUB 5610 1790 PRINT" STATE OF REPAIR IMPROVED" 1791 PRINT 1810 N=INT(W1*8) 1811 A$=" " 1812 Z1=S1 1813 Z2=S2 1850 GOSUB 5510 1860 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) 1870 X=S1 1871 Y=S2 1890 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) 1900 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) 1910 FOR I=1TON 1911 S1=S1+X1 1912 S2=S2+X2 1940 IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 2170 1950 S8=S1*24+S2*3-26 1951 IF S8>72 THEN 1990 1970 IF MID(Q$,S8,3)=" " THEN 2070 1980 GOTO 2030 1990 IF S8>144 THEN 2020 2000 IF MID(R$,S8-72,3)=" " THEN 2070 2010 GOTO 2030 2020 IF MID(S$,S8-144,3)=" " THEN 2070 2030 PRINT"WARP ENGINES SHUTDOWN AT SECTOR "S1","S2" DUE TO BAD NAVAGATION" 2040 S1=S1-X1 2041 S2=S2-X2 2042 GOTO 2080 2070 NEXT I 2080 A$="<*>" 2081 Z1=S1 2082 Z2=S2 2110 GOSUB 5510 2120 E=E-N+5 2121 IF W1<1 THEN 2150 2140 T=T+1 2150 IF T>T0+T9 THEN 3970 2160 GOTO 1260 2170 X=Q1*8+X+X1*N 2171 Y=Q2*8+Y+X2*N 2190