1 10 REM ********** STAR TREK SPACE SIMULATOR **********
3 30 PRINT\PRINT\PRINT "STAR TREK SPACE SIMULATOR"
5 70 DEF FNA(X)=INT(X*RND(1)+1)
6 80 DIM G(8,8),Z$(20),X$(24)
12 130 X$="------------------------"
13 140 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
19 161 FOR I=1 TO 9\FOR J=1 TO 2\C(I,J)=1\NEXT J\NEXT I
20 170 C(2,1)=-1\C(3,1)=-1\C(4,1)=-1\C(4,2)=-1\C(5,2)=-1\C(6,2)=-1
21 180 C(1,1)=0\C(3,2)=0\C(5,1)=0\C(7,2)=0\C(9,1)=0
22 190 DIM D(6)\FOR I=1 TO 6\D(I)=0\NEXT I
27 240 IF RND(1)<.8 THEN 270
30 270 IF RND(1)<.96 THEN 300
34 310 G(I,J)=K3*100+B3*10+S3
37 340 IF K9=0 THEN 200\IF B9=0 THEN 200
50 470 S3=G(Q1,Q2)-((B3*10)+(K3*100))
52 490 PRINT "COMBAT AREA","CONDITION RED"
53 500 IF S>(K3*100) THEN 520
54 510 PRINT " SHIELDS DANGEROUSLY LOW"
55 520 DIM K(3,3)\FOR I=1 TO 3\FOR J=1 TO 3\K(I,J)=0\NEXT J\NEXT I
56 530 DIM Q(8,8)\FOR I=1 TO 8\FOR J=1 TO 8\Q(I,J)=0\NEXT J\NEXT I
75 720 IF A<1 THEN 780\IF A>5 THEN 780\IF A<>INT(A) THEN 780
77 740 IF D(R1)>=0 THEN 780
79 760 PRINT Z$;" NOT OPERATIONAL."
81 780 IF A+1=1 GOTO 890\IF A+1=2 GOTO 1520\IF A+1=3 GOTO 1640
82 781 IF A+1=4 GOTO 1800\IF A+1=5 GOTO 2200\IF A+1=6 GOTO 3010
83 782 IF A+1=7 GOTO 3550
85 800 PRINT "0=SET COURSE";TAB(20);"4 3 2"
86 810 PRINT "1=LONG RANGE SCAN";TAB(21);PNT(220);" ^ /"
87 820 PRINT "2=PHASER CTRL.";TAB(22);PNT(220);"^/"
88 830 PRINT "3=TORPEDO CTRL.";TAB(18);"5 ------- 1"
89 840 PRINT "4=SHIELDS";TAB(22);"/^";PNT(220)
90 850 PRINT "5=LIBRARY COMPUTER";TAB(21);"/ ^ ";PNT(220)
91 860 PRINT "6=RESIGNATION";TAB(20);"6 7 8"
94 890 PRINT "COURSE (1-8)";
96 910 IF C1<1 THEN 700\IF C1>=9 THEN 700
97 920 PRINT "WARP FACTOR (0-8)";
99 940 IF W1<=0 THEN 700\IF W1>8 THEN 700
100 950 IF D(1)>=0 THEN 980\IF W1<=.5 THEN 980
101 960 PRINT "ENGINES ARE DAMAGED. MAXIMUM SPEED = WARP 0.5"
103 980 IF E-(W1*8)>0 THEN 1030
105 1000 PRINT "YOU ONLY HAVE";E;"UNITS. SUGGEST YOU TRANSFER FROM"
106 1010 PRINT "SHIELDS WHICH HAVE";S;"UNITS."
109 1040 IF D(I)>=0 THEN 1060
112 1070 IF FNA(10)<>5 THEN 1120\IF W1<2 THEN 1120
114 1090 D(R1)=D(R1)-FNA(5)
116 1110 PRINT\PRINT "DAMAGE CONTROL REPORTS '";Z$;"' DAMAGED."\PRINT
122 1170 X1=C(C2,1)+(C(C2+1,1)-C(C2,1))*(C1-C2)
123 1180 X2=C(C2,2)+(C(C2+1,2)-C(C2,2))*(C1-C2)
127 1220 IF S1<1 THEN 1360\IF S1>8 THEN 1360\IF S2<1 THEN 1360
128 1221 IF S2>8 THEN 1360
129 1230 IF Q(INT(S1),INT(S2))=0 THEN 1270
132 1260 PRINT "DANGER AHEAD, ENTERPRISE STOPPED"\GOTO 1280
138 1320 IF W1<1 THEN 690
140 1340 IF T>T0+30 THEN 2500
146 1400 S1=INT(X-Q1*8+.5)
147 1410 S2=INT(Y-Q2*8+.5)
148 1420 IF S1>0 THEN 1450
151 1450 IF S2>0 THEN 1480
156 1500 IF T>T0+30 THEN 2500
160 1530 FOR I=Q1-1 TO Q1+1
161 1540 N(1)=0\N(2)=0\N(3)=0
162 1550 FOR J=Q2-1 TO Q2+1
163 1560 IF I<1 THEN 1580\IF I>8 THEN 1580
164 1565 IF J<1 THEN 1580\IF J>8 THEN 1580
165 1570 N(J-Q2+2)=G(I,J)
167 1590 PRINT ":";N(1);TAB(7);":";N(2);TAB(13);":";N(3);TAB(19);":";
171 1640 IF K3=0 THEN 2350
172 1650 PRINT "ENERGY AVAILABLE =";E
173 1660 PRINT "NUMBER OF UNITS TO FIRE =";
176 1690 IF E-X<0 THEN 1660
179 1720 IF K(I,3)=0 THEN 1780
180 1730 H=INT(X/K3/(FND(0)))
182 1750 PRINT H;"UNIT HIT ON KLINGON"
183 1760 IF K(I,3)>0 THEN 1780
188 1810 PRINT "ALL PHOTON TORPEDOES EXPENDED."
190 1830 PRINT "TORPEDO COURSE (1-9)";
192 1850 IF C1<1 THEN 700\IF C1=>9 THEN 700
194 1870 X1=C(C2,1)+(C(C2+1,1)-C(C2,1))*(C1-C2)
195 1880 X2=C(C2,2)+(C(C2+1,2)-C(C2,2))*(C1-C2)
202 1950 IF X<1 THEN 2180\IF X>8 THEN 2180\IF Y<1 THEN 2180\IF Y>8 THEN 2180
203 1960 IF Q(INT(X),INT(Y))<>0 THEN 1970
204 1961 IF Q(INT(X+.5),INT(Y+.5))<>0 THEN 1970
207 1980 IF INT(X)<>K(I,1) THEN 1990
208 1981 IF INT(Y)<>K(I,2) THEN 1990
210 1990 IF INT(X+.5)<>K(I,1) THEN 2000
211 1991 IF INT(Y+.5)<>K(I,2) THEN 2000
218 2050 K(I,3)=0\Q(K(I,1),K(I,2))=0
219 2060 PRINT "***KLINGON DESTROYED***"
222 2090 IF K9=0 THEN 2550
223 2100 G(Q1,Q2)=G(Q1,Q2)-100
225 2120 IF Q(INT(X),INT(Y))<>3 THEN 2150
226 2130 PRINT "YOU CAN'T DESTROY STARS, SILLY!"
228 2150 PRINT "***STARBASE DESTROYED***"
229 2160 PRINT "YOU ARE HEREBY RELIEVED OF DUTY!! CONGRATULATIONS!"
231 2180 PRINT "TORPEDO MISSED."
233 2200 PRINT "ENERGY AVAILABLE";E+5
234 2210 PRINT "NUMBER OF UNITS TO SHIELDS";
237 2240 IF E+S-X<0 THEN 2210
241 2280 PRINT\PRINT "DEVICE","STATE OF REPAIR"
248 2350 PRINT "SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRENT."
250 2370 IF C$="DOCKED" THEN 2460
251 2380 IF K3=0 THEN 2460
253 2400 IF K(I,3)=0 THEN 2450
254 2410 H=INT(K(I,3)/FND(0)+1)
256 2430 PRINT H;"UNIT HIT ON ENTERPRISE."
257 2440 IF S<0 THEN 2520
260 2470 PRINT "***FATAL ERROR***"
261 2480 PRINT "THE ENTERPRISE IS DEAD IN SPACE, AND MUST BE EVACUATED!!"
263 2500 PRINT\PRINT "IT IS STARDATE";T
265 2520 PRINT\PRINT " *** THE ENTERPRISE HAS BEEN DESTROYED ***"
266 2530 PRINT\PRINT "THE FEDERATION WILL BE CONQUERED!!!"
269 2560 PRINT "THE LAST KLINGON CRUSER HAS BEEN DESTROYED!!"
270 2570 PRINT "THE FEDERATION HAS BEEN SAVED!!"
273 2600 FOR I=S1-1 TO S1+1
274 2610 FOR J=S2-1 TO S2+1
275 2620 IF I<1 THEN 2640\IF I>8 THEN 2640
276 2621 IF J<1 THEN 2640\IF J>8 THEN 2640
277 2630 IF Q(I,J)=4 THEN 2670
284 2700 FOR I=1 TO 6\D(I)=0\NEXT I
288 2740 IF K3>0 THEN 2780
289 2750 IF E<300 THEN 2800
300 2860 PRINT "STARDATE ";T
302 2880 PRINT "CONDITION ";C$
304 2900 PRINT "ENERGY ";E
306 2920 PRINT "TORPEDOES ";P
308 2940 PRINT "SHIELDS ";S
310 2960 PRINT "KLINGONS ";K9
315 3010 PRINT "COMPUTER ACTIVE AND AWAITING COMMAND";
317 3030 IF A+1=1 GOTO 2280\IF A+1=2 GOTO 3100\IF A+1=3 GOTO 3310
318 3040 PRINT "FUNCTIONS AVAILABLE FROM COMPUTER:"
319 3050 PRINT " 0=DAMAGE REPORT"
320 3060 PRINT " 1=PHOTON TORPEDO DATA"
321 3070 PRINT " 2=SHORT RANGE SCAN"
326 3120 IF K(I,3)<=0 THEN 3200
329 3150 IF X=0 THEN 3240
330 3160 A=INT(((57.3*ATN(Y/X))/45+1)*100)/100
331 3170 IF X<=0 THEN 3180\IF Y=>0 THEN 3180\GOTO 3290
332 3180 IF X<0 THEN 3220
333 3190 PRINT "DIRECTION=";A
338 3240 IF Y<0 THEN 3270
347 3330 REM *****OUTPUT QUADRENT*****
350 3360 Z$=" <*>+++ * >!<"
351 3370 PRINT SEG$(Z$,Q(Z,I)*3+1,Q(Z,I)*3+3);
353 3390 IF Z=1 THEN 3410\IF Z=8 THEN 3410
356 3420 REM *****PRINTS DEVICE NAME*****
357 3430 DIM Z9$(6,15)\Z9$(1)="WARP ENGINES"\Z9$(2)="SCANNERS"
358 3440 Z9$(3)="PHASER BANKS"\Z9$(4)="TORPEDO TUBES"
359 3450 Z9$(5)="SHIELD CONTROL"\Z9$(6)="COMPUTER"
362 3500 REM ***PLACEMENT IN QUADRANT ARRAY***
365 3530 IF Q(R1,R2)<>0 THEN 3510
367 3550 PRINT\PRINT "YOUR RESIGNATION HAS BEEN ACCEPTED."
370 3572 PRINT "DO YOU NEED INSTRUCTIONS";
372 3590 PRINT\PRINT\PRINT
373 3600 IF A4$="N" THEN 440\IF A$="NO" THEN 440
374 3601 IF A4$="Y" THEN 3605\IF A4$="YES" THEN 3605\GOTO 3570
375 3605 PRINT TAB(20);"STAR TREK SPACE SIMULATOR"\PRINT
376 3606 PRINT "AS CAPTAIN OF THE ENTERPRISE, YOU HAVE 30 STARDATES"
377 3607 PRINT "TO DESTROY THE KLINGONS. ONE STARDATE TRANSPIRES EACH TIME"
378 3608 PRINT "YOU MOVE TO A NEW SECTOR. (THE UNIVERSE IS 8X8 SECTORS)."
379 3609 PRINT\PRINT "SCAN CHART SYMBOLS:"
380 3610 PRINT TAB(5);"<*> = ENTERPRISE"
381 3620 PRINT TAB(5);" * = STAR"
382 3630 PRINT TAB(5);"+++ = KLINGON"
383 3640 PRINT TAB(5);">!< = STARBASE"
384 3650 PRINT\PRINT "OPERATING COMMANDS FOR THE ENTERPRISE:"
385 3660 PRINT\PRINT "COMMAND 0 = WARP ENGINES."
386 3670 PRINT " COURSE IS IN A CIRCULAR VECTOR AS SHOWN.";TAB(50);"4 3 2"
387 3680 PRINT " REAL VALUES MAY BE USED. FOR EXAMPLE";
388 3681 PRINT TAB(51);PNT(220);" ^ /"
389 3690 PRINT " 1.2 WOULD BE HALF WAY BETWEEN 1 AND 2.";
390 3691 PRINT TAB(52);PNT(220);"^/"
391 3700 PRINT TAB(48);"5 ------- 1"
392 3710 PRINT " A 'WARP FACTOR' IS THE SIZE OF ONE QUARDRANT.";
393 3711 PRINT TAB(52);"/^";PNT(220)
394 3720 PRINT TAB(51);"/ ^ ";PNT(220)
395 3730 PRINT TAB(50);"6 7 8"
396 3740 PRINT\PRINT "COMMAND 1 = LONG RANGE SCAN."
397 3750 PRINT " CODED IN THE FORM XXX, WHERE THE UNITS ARE THE NUMBER"
398 3760 PRINT " OF STARS, TENS THE NUMBER OF STARBASES, AND HUNDREDS"
399 3770 PRINT " THE NUMBER OF KLINGONS."
400 3780 PRINT\PRINT "COMMAND 2 = PHASERS."
401 3790 PRINT " YOU MAY DESTROY THE KLINGON BY USING ENOUGH PHASER"
402 3800 PRINT " POWER AS TO DEPLETE HIS SHIELDS. KEEP IN MIND THAT WHEN"
403 3810 PRINT " YOU FIRE AT HIM, HE WILL FIRE BACK!"
404 3820 PRINT\PRINT "COMMAND 3 = PHOTON TORPEDOES."
405 3830 PRINT " COURSE IS THE SAME AS WITH WARP ENGINES. THE LIBRARY"
406 3840 PRINT " COMPUTER WILL COMPUTE TRAJECTORIES FOR YOU (OPTION 1)."
407 3850 PRINT\PRINT "COMMAND 4 = SHIELDS."
408 3860 PRINT " DEFINES THE AMOUNT OF ENERGY TO BE ASSIGNED TO SHIELDS."
409 3870 PRINT\PRINT "COMMAND 5 = LIBRARY COMPUTER."
410 3880 PRINT " OPTION 0 = DAMMAGE REPORT."
411 3890 PRINT " A STATE OF REPAIR OF LESS THAN ZERO INDICATES THAT"
412 3900 PRINT " THE DEVICE IS TEMPORARILY DISABLED."
413 3910 PRINT " OPTION 1 = PHOTON TORPEDO DATA."
414 3920 PRINT " GIVES DIRECTION TO ALL KLINGONS IN YOUR QUADRANT."
415 3930 PRINT " OPTION 2 = SHORT RANGE SCAN."
416 3940 PRINT " ALSO GIVEN AUTOMATICALLY AFTER SUCCESSFUL COMPLETION"
417 3950 PRINT " OF WARP ENGINE MANUVERS."
418 3960 PRINT\PRINT "COMMAND 6 = RESIGNATION."
419 3970 PRINT\PRINT "GOOD LUCK!"