home *** CD-ROM | disk | FTP | other *** search
- 20 GO TO 9680
- 9630 IF (R3=1)OR(D4(9)>0) THEN 9680
- 9640 PRINT
- 9650 PRINT "LT. UHURA- 'CAPTAIN, STARFLEET COMMAND REPORTS THAT"
- 9660 PRINT " THE STARBASE IN QUADRANT";B4;"-";B5;"HAS BEEN"
- 9670 PRINT " DESTROYED BY A KLINGON COMMANDER.'"
- 9680 G(B4,B5)=G(B4,B5)-10
- 9690 IF R3<=1 THEN 9730
- 9700 FOR I=1 TO R3
- IF (B2(I)=B4)AND(B3(I)=B5) THEN 9720
- 9710 NEXT
- 9720 B2(I)=B2(R3):B3(I)=B3(R3)
- 9730 R3=R3-1
- 9740 GO TO 9001
-
- 10000 REM-FINISH
-
- 10001 A2=1:PRINT :PRINT "IT IS STARDATE";INT(D0*10+.5)/10:PRINT
- 10010 ON F9 GO TO 10020,10130,10160,10185,10195,10205,10220,10235,\
- 10245,10270,10280
- 10020 REM-THE GAME HAS BEEN WON
- 10025 PRINT "YOU HAVE DESTROYED THE KLINGON INVASION FLEET"
- 10027 PRINT
- 10030 PRINT " ***THE FEDERATION IS SAVED***":G1=1
- 10035 IF (A1=0)OR(B1<>0) THEN 10110
- 10040 IF LEFT$(S5$,1)<>"E" THEN 10110
- 10045 IF 3*S1+35*N1+C4>=100 THEN 10110
- 10050 IF D0-J2<=6 THEN 10070
- 10060 R8=.1*S8*(S8+1)+.1
- 10065 IF (K1+K2)/(D0-J2)<R8 THEN 10110
- 10070 PRINT
- 10075 PRINT "IN FACT, YOU HAVE DONE SO WELL THAT STARFLEET COMMAND"
- 10076 IF S8=4 THEN 10090
- 10080 PRINT "PROMOTES YOU ONE STEP IN RANK, ";
- 10085 IF S8=1 THEN PRINT "FROM BEGINNER TO NOVICE CLASS!"
- 10086 IF S8=2 THEN PRINT "FROM NOVICE TO SENIOR CLASS!"
- 10087 IF S8=3 THEN PRINT "FROM SENIOR TO EXPERT CLASS!"
- 10088 PRINT " ***CONGRATULATIONS***":GO TO 10110
- 10090 PRINT "PROMOTES YOU TO 'COMMODORE EMERITUS'."
- 10095 PRINT
- 10100 PRINT "NOW YOU CAN RETIRE AND WRITE YOUR OWN STAR TREK GAME!"
- 10110 GOSUB 23000
- 10120 RETURN
- 10130 REM-FED RESOURCES DEPLETED
- 10135 PRINT "YOUR TIME HAS RUN OUT, AND THE"
- 10136 PRINT "FEDERATION HAS BEEN CONQUERED.":PRINT
- 10137 PRINT "YOUR STARSHIP IS NOW KLINGON PROPERY, AND YOU ARE PUT"
- 10138 PRINT "ON TRIAL AS A WAR CRIMINAL. ON THE BASIS OF YOUR RECORD,"
- 10139 IF R1*3>I1 THEN 10150
- 10140 PRINT "YOU ARE FOUND GUILTY AND SENTENCED TO DEATH!"
- 10145 A1=0:GOSUB 23000:RETURN
- 10150 PRINT "YOU ARE ACQUITTED":GOSUB 23000:RETURN
- 10160 REM- L.S. FAILURE
- 10165 PRINT "YOUR LIFE SUPPORT RESERVES HAVE RUN OUT, AND"
- 10170 PRINT "YOU WILL SOON DIE OF ASPHYXIATION"
- 10172 PRINT
- 10175 PRINT "YOUR STARSHIP IS A DERELICT IN SPACE."
- 10180 GO TO 10300
- 10185 REM-ENERGY GONE
- 10190 PRINT "YOUR ENERGY SUPPLY IS EXHAUSTED.":GO TO 10172
- 10195 REM-BATTLE DEFEAT
- 10200 PRINT "THE ";S5$;" HAS BEEN DESTROYED IN BATTLE."
- 10201 GO TO 10300
- 10205 PRINT "F9=6 INVALID":RETURN
- 10220 REM-NOVA
- 10225 PRINT "YOUR STARSHIP HAS BEEN DESTROYED BY A NOVA."
- 10230 PRINT "NICE SHOT, YOU HOCKEY PUCK!":GO TO 10300
- 10235 REM-SUPERNOVA
- 10240 PRINT "THE ";S5$;" HAS BEEN INCINERATED BY A SUPERNOVA."
- 10241 GO TO 10300
- 10245 REM-ABANDON(NO BASES)
- 10250 PRINT "YOU HAVE BEEN CAPTURED BY THE KLINGONS. IF YOU STILL"
- 10255 PRINT "HAD A STARBASE TO BE RETURNED TO, YOU WOULD HAVE BEEN"
- 10260 PRINT "REPATRIATED AND GIVEN ANOTHER CHANCE. SINCE YOU HAVE"
- 10265 PRINT "NO STARBASES, YOU WILL BE MERCILESSLY TORTURED TO DEATH!"
- 10266 GO TO 10300
- 10270 REM - SELF-DESTRUCT
- 10271 PRINT :PRINT "THE ";S5$;" IS NOW AN EXPANDING CLOUD"
- 10272 PRINT "OF SUB-ATOMIC PARTICLES...":GO TO 10300
- 10280 REM-NOT REMATERIALIZED
- 10285 PRINT "STARBASE WAS UNABLE TO RE-MATERIALIZE YOUR STARSHIP."
- 10300 PRINT
- 10310 IF LEFT$(S5$,1)="F" THEN S5$=""
- 10315 IF LEFT$(S5$,1)="E" THEN S5$="FAERIE QUEENE"
- 10316 A1=0
- 10320 IF R1=0 THEN 10355
- 10325 G3=R4/I3:B8=(R1+2*R2)/(I1+2*I4)
- 10326 A3=G3/B8
- 10327 IF A3<1+.5+RND THEN 10345
- 10330 PRINT "AS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON"
- 10331 PRINT "EMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE"
- 10332 IF A3<3*RND THEN 10340
- 10335 PRINT "FAVORABLE TO THE FEDERATION.":PRINT
- 10336 PRINT "CONGRATULATIONS.":GO TO 10350
- 10340 PRINT "HIGHLY UNFAVORABLE TO THE FEDERATION.":GO TO 10350
- 10345 PRINT "THE FEDERATION WILL BE DESTROYED!"
- 10350 GOSUB 23000:RETURN
- 10355 PRINT "SINCE YOU TOOK THE LAST KLINGON WITH YOU, YOU ARE"
- 10360 PRINT "A MARTYR AND A HERO. SOMEDAY MAYBE THEY'LL ERECT"
- 10370 PRINT "A STATUE IN YOUR MEMORY. REST IN PEACE AND TRY NOT"
- 10380 PRINT "TO THINK ABOUT PIGEONS!":G1=1:A1=0
- 10390 GOSUB 23000:RETURN
-
- 11000 REM - HELP
-
- 11001 IF C5$<>"DOCKED" THEN 11020
- 11010 PRINT "ENSIGN CHEKOV- 'BUT CAPTAIN, WE'RE ALREAD Y DOCKED!'"
- 11015 RETURN
- 11020 IF D4(9)=0 THEN 11030
- 11025 PRINT "SUBSPACE RADIO DAMAGD...CANNOT TRANSMIT.":RETURN
- 11030 IF R3<>0 THEN 11050
- 11040 PRINT "LT. UHURA- 'CAPTAIN, I'M NOT GETTING ANY RESPONSE";
- 11045 PRINT " FROM STARBASE!'":RETURN
- 11050 N1=N1+1
- IF B6=0 THEN 11070
- 11060 GO TO 11130
- 11070 D1=1.0E+30
- 11080 FOR L=1 TO R3:X=10*SQR((B2(L)-Q1)^2+(B3(L)-Q2)^2)
- 11090 IF X>D1 THEN 11110
- 11100 D1=X:K=L
- 11110 NEXT L
- 11120 Q1=B2(K):Q2=B3(K):GOSUB 18000
- 11130 Q$(S6,S7)="."
- 11135 PRINT
- 11140 PRINT "STARBASE IN QUADRANT";Q1;"-";Q2;"RESPONDS --";
- 11145 PRINT " ";S5$;" DEMATERIALIZES."
- 11146 P2=(1-.98^D1)^.333333
- 11150 FOR L=1 TO 3
- 11155 IF L=1 THEN PRINT "1ST ";
- 11160 IF L=2 THEN PRINT "2ND ";
- 11170 IF L=3 THEN PRINT "3RD ";
- 11180 PRINT "ATTEMPT TO RE-MATERIALIZE THE ";S5$;". . . . .";
- 11190 IF RND>P2 THEN 11220
- 11200 PRINT "FAILS.":NEXT L
- 11210 F9=11:GOSUB 10000:RETURN
- 11220 FOR L=1 TO 5:I=B6+INT(3*RND)-1
- 11230 IF (I<1)OR(I>10) THEN 11260
- 11235 J=B7+INT(3*RND)-1
- 11240 IF (J<1)OR(J>10) THEN 11260
- 11250 IF Q$(I,J)="." THEN 11270
- 11260 NEXT L:PRINT "FAILS.":GO TO 11210
- 11270 PRINT "SUCCEEDS.":S6=I:S7=J:Q$(I,J)=LEFT$(S5$,1)
- 11280 GOSUB 7000:PRINT "LT. UHURA- 'CAPTAIN, WE MADE IT!'":RETURN
-
- 12000 REM - HITEM
- 12001 P4=2:L5=K3:N=1
- 12010 FOR K=1 TO L5
- 12020 IF H3(K)=0 THEN 12240
- 12030 D6=.9+.01*RND:H2=H3(K)*D6^K7(N)
- 12040 P3=K6(N)
- 12050 P=ABS(P3)
- IF P4*H2<P THEN P=P4*H2
- 12060 K6(N)=P3-SGN(P3)*ABS(P)
- 12070 X8=K4(N):Y8=K5(N)
- 12080 IF H2>4.99 THEN 12100
- 12090 PRINT "VERY SMALL HIT ON ":GO TO 12110
- 12100 PRINT INT(H2*10+.5)/10;"UNIT HIT ON ";
- 12110 M$=Q$(X8,Y8)
- 12120 IF M$="K" THEN PRINT "KLINGON AT";
- 12125 IF M$="C" THEN PRINT "COMMANDER AT";
- 12130 PRINT X8;"-";Y8
- 12140 IF K6(N)<>0 THEN 12180
- 12150 A5=X8:A6=Y8:T2$=Q$(X8,Y8):GOSUB 6000
- 12160 IF R1<>0 THEN 12250
- 12170 F9=1:GOSUB 10000:GO TO 12250
- 12180 IF K6(N)<0 THEN 12240
- 12190 IF RND<.9 THEN 12240
- 12200 IF K6(N)>(.4+.4*RND)*P3 THEN 12240
- 12205 PRINT
- 12210 PRINT "***MR. SPOCK - 'CAPTAIN, THE VESSEL AT SECTOR";
- 12215 PRINT X8;"-";Y8
- 12220 PRINT " HAS JUST LOST ITS FIREPOWER.'"
- 12225 PRINT
- 12230 K6(N)=-K6(N)
- 12240 N=N+1
- 12250 NEXT K
- 12260 RETURN
-
- 13000 REM - IMPULSE
-
- 13001 J3=0
- 13010 IF D4(7)<>0 THEN 13250
- 13020 IF E1<=75 THEN 13070
- 13030 INPUT "ENTER COURSE AND DISTANCE";D2,D1
- 13040 IF D2<0 THEN RETURN
- 13050 P3=50+250*D1
- 13060 IF P3<E1 THEN 13140
- 13070 PRINT
- 13080 PRINT "1ST OFFICER SPOCK- 'CAPTAIN, THE IMPULSE ENGINES"
- 13090 PRINT "REQUIRE 50 UNITS OF ENERGY TO ENGAGE, PLUS 250 UNITS"
- 13091 PRINT "PER ";
- 13100 IF E1>75 THEN 13120
- 13110 PRINT "QUADRANT. THEY ARE, THEREFORE, USELESS NOW.'":RETURN
- 13120 PRINT "QUADRANT. WE CAN GO, THEREFORE, A MAXIMUM OF ";
- 13130 PRINT INT((.004*(E1-50)-.05)*10+.5)/10;"QUADRANTS.'":RETURN
- 13140 T1=D1/.4
- 13150 IF T1<R5 THEN 13200
- 13160 PRINT INT((.004*(E1-50)-.05)*10+.05)/10;B$
- 13190 IF LEFT$(B$,1)<>"Y" THEN RETURN
- 13200 GOSUB 15000:J3=1
- 13210 IF A2<>0 THEN RETURN
- 13220 E1=E1-P3
- 13230 IF E1>0 THEN RETURN
- 13240 F9=4:GOSUB 10000:RETURN
- 13250 PRINT "IMPULSE ENGINES DAMAGED.":RETURN
-
- 14000 REM - LRSCAN
-
- 14001 N$=" #"
- 14005 PRINT
- 14010 IF D4(2)<>0 THEN 14180
- 14020 PRINT "L.R. SCAN FOR QUADRANT";Q1;"-";Q2:PRINT
- 14030 I=Q1-1:J=Q1+1:K=Q2-1:L=Q2+1
- 14040 FOR M=I TO J:FOR N=K TO L
- 14050 IF (M<=0)OR(M>8) THEN 14110
- 14060 IF (N<=0)OR(N>8) THEN 14110
- 14070 IF D4(11)=0 THEN S2(M,N)=1
- 14080 IF G(M,N)>=1000 THEN PRINT " ***";
- 14090 IF G(M,N)<1000 THEN PRINT TAB(POS+5-LEN(STR$(G(M,N))));G(M,N);
- 14100 GO TO 14120
- 14110 PRINT N$;
- 14120 NEXT N
- 14130 PRINT
- 14140 NEXT M
- 14150 IF D4(11)=0 THEN RETURN
- 14155 PRINT
- 14160 PRINT "***WARNING*** - COMPUTER DISABLED - SCAN NOT RECORDED."
- 14170 RETURN
- 14180 PRINT "LONG RANGE SENSORS DAMAGED.":RETURN
-
- 15000 REM - MOVE
-
- 15001 A5=(15-D2)*.5235988
- 15010 D41=-SIN(A5):D6=COS(A5)
- 15020 B8=ABS(D41)
- 15030 IF ABS(D6)>B8 THEN B8=ABS(D6)
- 15040 D41=D41/B8:D6=D6/B8:T5=0:T6=0
- 15050 IF D0+T1<F1(2) THEN 15080
- 15060 T5=1:C5$="RED":D1=D1*(F1(2)-D0)/T1+.1
- 15070 T1=F1(2)-D0+1E-5
- 15080 Q$(S6,S7)=".":X7=S6:Y7=S7:H9=INT(10*D1*B8+.5)
- 15090 IF H9=0 THEN 15115
- 15100 FOR L=1 TO H9
- 15102 X7=X7+D41:X1=INT(X7+.5):Y7=Y7+D6:Y1=INT(Y7+.5)
- 15105 IF (X1<1)OR(X1>10) THEN 15150
- 15106 IF (Y1<1)OR(Y1>10) THEN 15150
- 15108 IF Q$(X1,Y1)="O" THEN 15111
- 15109 IF Q$(X1,Y1)<>"." THEN 15125
- 15110 NEXT L
- 15111 D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
- 15112 S6=X1:S7=Y1
- 15115 F4=S6:F5=S7
- 15116 IF Q$(X1,Y1)<>"O" THEN 15320
- 15120 T2=INT(RND*8)+1:T3=INT(RND*8)+1
- 15122 Q1=INT(RND*8)+1:Q2=INT(RND*8)+1:S6=INT(RND*10)+1:S7=INT(RND*10)+1:PRINT
- 15123 PRINT "*** SPACE PORTAL ENTERED ***":GO TO 15307
- 15125 T6=1:K=50*D1/T1:D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
- 15127 IF (Q$(X1,Y1)="K")OR(Q$(X1,Y1)="C") THEN 15145
- 15129 PRINT :PRINT S5$;" BLOCKED BY ";
- 15130 IF Q$(X1,Y1)="*" THEN PRINT "STAR AT";
- 15131 IF Q$(X1,Y1)="B" THEN PRINT "STARBASE AT";
- 15132 PRINT " SECTOR";X1;"-";Y1;"...."
- 15133 PRINT "EMERGENCY STOP REQUIRED";INT(K*10+.5)/10;"UNITS OF ENERGY."
- 15135 E1=E1-K
- 15137 S6=INT(X7-D41+.5):F4=S6:S7=INT(Y7-D6+.5):F5=S7
- 15140 IF E1>0 THEN 15320
- 15141 F9=4:GOSUB 10000:RETURN
- 15145 S6=X1:S7=Y1:GOSUB 22000:F4=S6:F5=S7:GO TO 15320
- 15150 IF K3=0 THEN 15165
- 15155 FOR L=1 TO K3
- 15156 F3=SQR((X1-K4(L))^2+(Y1-K5(L))^2)
- 15158 K8(L)=.5*(F3+K7(L)):NEXT L
- 15160 IF G(Q1,Q2)<>1000 THEN GOSUB 1000
- 15162 IF A2<>0 THEN RETURN
- 15165 X7=10*(Q1-1)+S6:Y7=10*(Q2-1)+S7
- 15170 X1=INT(X7+10*D1*B8*D41+.5)
- 15175 Y1=INT(Y7+10*D1*B8*D6+.5):L6=0
- 15180 L5=0
- 15185 IF X1>0 THEN 15195
- 15190 X1=-X1+1:L5=1
- 15195 IF Y1>0 THEN 15210
- 15200 Y1=-Y1+1:L5=1
- 15210 IF X1<=80 THEN 15220
- 15215 X1=161-X1:L5=1
- 15220 IF Y1<=80 THEN 15230
- 15225 Y1=161-Y1:L5=1
- 15230 IF L5=0 THEN 15240
- 15235 L6=1:GO TO 15180
- 15240 IF L6=0 THEN 15270
- 15260 PRINT :PRINT "*** MESSAGE FROM STARFLEET COMMAND.....STARDATE";
- 15261 PRINT INT(D0*10+.5)/10:PRINT :PRINT "'PERMISSION TO CROSS GALACTIC ";
- 15262 PRINT "PERIMETER IS HEREBY DENIED.'"
- 15263 PRINT " 'SHUT DOWN ENGINES IMMMEDIATELY!'"
- 15264 PRINT
- 15265 PRINT "SCOTT HERE - 'ENGINES SHUT DOWN AT ";
- 15266 Z1=INT((X1+9)/10):Z2=INT((Y1+9)/10)
- 15267 PRINT "QUADRANT";Z1;"-";Z2;", ";
- 15268 PRINT "SECTOR";X1-10*(Z1-1);"-";Y1-10*(Z2-1);"'"
- 15270 IF T5<>0 THEN RETURN
- 15295 Q1=INT((X1+9)/10):Q2=INT((Y1+9)/10)
- 15296 S6=X1-10*(Q1-1):S7=Y1-10*(Q2-1)
- 15307 GOSUB 18400
- 15310 PRINT :PRINT "ENTERING THE ";G2$;" QUADRANT (";Q1;"-";Q2;")"
- 15315 Q$(S6,S7)=LEFT$(S5$,1):GOSUB 18000:RETURN
- 15320 Q$(S6,S7)=LEFT$(S5$,1)
- 15321 IF L6=1 THEN RETURN
- 15325 IF K3=0 THEN 15390
- 15330 FOR L=1 TO K3
- 15340 F3=SQR((F4-K4(L))^2+(F5-K5(L))^2)
- 15350 K8(L)=.5*(K7(L)+F3)
- 15360 K7(L)=F3
- 15370 NEXT L
- 15380 GOSUB 28000
- 15390 GOSUB 17000:RETURN
-
- 16000 REM-MOVECOM
-
- 16001 A=1:B=1
- 16010 FOR K=1 TO K3
- 16020 C=K4(K):D=K5(K)
- 16030 IF Q$(C,D)="C" THEN 16050
- 16040 NEXT K
- 16050 N=0:F=K6(K)+100*K3
- 16060 IF F>1000 THEN N=INT(RND*K7(K)+1)
- 16065 IF ((C5$="DOCKED")AND((B4<>Q1)OR(B5<>Q2))) THEN N=-S8
- 16070 IF N=0 THEN N=INT(((F+200*RND)/150)-5)
- 16071 IF N=0 THEN RETURN
- 16072 IF (N>0)AND(K7(K)<1.5) THEN RETURN
- 16075 IF ABS(N)>S8 THEN N=SGN(N)*ABS(S8)
- 16080 T=ABS(N):P=S6-C:Q=S7-D
- 16085 IF 2*ABS(P)<ABS(Q) THEN P=0
- 16090 IF 2*ABS(Q)<ABS(P) THEN Q=0
- 16095 IF P<>0 THEN P=SGN(P*N)
- 16100 IF Q<>0 THEN Q=SGN(Q*N)
- 16105 R=C:S=D:Q$(C,D)="."
- 16110 FOR L2=1 TO T:L=R+P:M=S+Q
- 16115 IF (L>0)AND(L<=10) THEN 16120
- 16117 ON SGN(N)+2 GO TO 16240,16165,16165
- 16120 IF (M>0)AND(M<=10) THEN 16130
- 16125 ON SGN(N)+2 GO TO 16240,16135,16135
- 16130 IF Q$(L,M)="." THEN 16195
- 16135 IF (Q=B)OR(P=0) THEN 16165
- 16140 M=S+B
- 16145 IF (M>0)AND(M<=10) THEN 16155
- 16150 ON SGN(N)+2 GO TO 16240,16160,16160
- 16155 IF Q$(L,M)="." THEN 16195
- 16160 B=-B
- 16165 IF (P=A)OR(Q=0) THEN 16200
- 16170 L=R+A
- 16175 IF (L>0)AND(L<=10) THEN 16185
- 16180 ON SGN(N)+2 GO TO 16240,16190,16190
- 16185 IF Q$(L,M)="." THEN 16195
- 16190 A=-A:GO TO 16200
- 16195 R=L:S=M
- 16200 NEXT L2
- 16205 Q$(R,S)="C"
- 16210 IF (R=C)AND(S=D) THEN RETURN
- 16215 K4(K)=R:K5(K)=S:K7(K)=SQR((S6-R)^2+(S7-S)^2)
- 16220 K8(K)=K7(K)
- IF N>0 THEN PRINT "***COMMANDER ADVANCES TO";
- 16225 IF N<0 THEN PRINT "***COMMANDER RETREATS TO";
- 16230 PRINT " SECTOR";R;"-";S:GOSUB 28000:RETURN
- 16240 I=Q1+INT((L+9)/10)-1:J=Q2+INT((M+9)/10)-1
- 16245 IF (I<1)OR(I>8) THEN 16350
- 16250 IF (J<1)OR(J>8) THEN 16350
- 16260 FOR L3=1 TO R2
- 16265 IF (C1(L3)=I)AND(C2(L3)=J) THEN 16350
- 16270 NEXT L3:PRINT "***COMMANDER ESCAPES TO ";
- 16275 PRINT "QUADRANT";I;"-";J;" (AND REGAINS STRENGTH)"
- 16280 K4(K)=K4(K3):K5(K)=K5(K3):K7(K)=K7(K3):K8(K)=K8(K3)
- 16285 K6(K)=K6(K3):K3=K3-1:C3=0
- 16290 IF C5$<>"DOCKED" THEN GOSUB 17000
- 16300 GOSUB 28000
- 16310 G(Q1,Q2)=G(Q1,Q2)-100:G(I,J)=G(I,J)+100
- 16320 FOR L3=1 TO R2
- 16330 IF (C1(L3)=Q1)AND(C2(L3)=Q2) THEN 16340
- 16335 NEXT L3
- 16340 C1(L3)=I:C2(L3)=J:RETURN
- 16350 A=-A:B=-B:GO TO 16200
-
- 17000 REM - NEWCOND
-
- 17001 C5$="GREEN"
- 17010 IF E1<1000 THEN C5$="YELLOW"
- 17020 IF G(Q1,Q2)>99 THEN C5$="RED"
- 17030 RETURN
-
- 18000 REM- NEW QUAD
-
- 18001 J4=1:B6=0:B7=0:K3=0:C3=0
- 18010 U=G(Q1,Q2)
- 18020 IF U>999 THEN 18290
- 18030 K3=INT(.01*U):FOR A=1 TO 10:FOR B=1 TO 10:Q$(A,B)=".":NEXT B:NEXT A
- 18040 Q$(S6,S7)=LEFT$(S5$,1):U=G(Q1,Q2)
- IF U<100 THEN 18150
- 18050 U=U-100*K3:FOR A=1 TO K3
- 18060 S=INT(RND*10)+1:K4(A)=S:T=INT(RND*10)+1:K5(A)=T
- 18070 IF Q$(S,T)<>"." THEN 18060
- 18080 Q$(S,T)="K":K7(A)=SQR((S6-S)^2+(S7-T)^2):K8(A)=K7(A)
- 18090 K6(A)=RND*150+325:NEXT A
- 18100 IF R2=0 THEN 18140
- 18110 FOR A=1 TO R2
- 18115 IF (C1(A)=Q1)AND(C2(A)=Q2) THEN 18130
- 18120 NEXT A:GO TO 18140
- 18130 Q$(S,T)="C":K6(K3)=1000+400*RND:C3=1
- 18140 GOSUB 28000
- 18150 IF U<10 THEN 18190
- 18160 U=U-10
- 18170 B6=INT(RND*10)+1:B7=INT(RND*10)+1
- IF Q$(B6,B7)<>"." THEN 18170
- 18180 Q$(B6,B7)="B"
- 18190 GOSUB 17000
- IF U<1 THEN RETURN
- 18200 FOR A=1 TO U
- 18210 S=INT(RND*10)+1:T=INT(RND*10)+1
- IF Q$(S,T)<>"." THEN 18210
- 18220 Q$(S,T)="*":NEXT A
- 18230 IF (T2<>Q1)OR(T3<>Q2) THEN RETURN
- 18240 S=INT(RND*10)+1:T=INT(RND*10)+1
- IF Q$(S,T)<>"." THEN 18240
- 18250 Q$(S,T)="O":PRINT
- 18260 PRINT "MR. SPOCK- 'CAPTAIN, MY SENSORS DETECT A"
- 18270 PRINT "SPACE WARP SOMEWHERE IN THIS QUADRANT.'"
- 18280 RETURN
- 18290 FOR A=1 TO 10:FOR B=1 TO 10:Q$(A,B)=".":NEXT B:NEXT A
- 18300 Q$(S6,S7)=LEFT$(S5$,1):RETURN
- 18400 G4$="III":L=2
- IF Q2>=5 THEN 18420
- 18410 L=1
- 18420 G2$=G1$(2*(Q1-1)+L):L=Q2
- 18425 IF L<=4 THEN 18440
- 18430 L=Q2-4
- 18440 G3$="IV"
- IF L=4 THEN 18460
- 18450 G3$=LEFT$(G4$,L)
- 18460 G2$=G2$+" "+G3$:RETURN
-
- 19000 REM - NOVA
-
- 19001 IF RND>.1 THEN 19015
- 19010 GOSUB 27000:RETURN
- 19015 Q$(A5,A6)=".":PRINT "***STAR AT SECTOR";A5;"-";A6;"NOVAS."
- 19020 G(Q1,Q2)=G(Q1,Q2)-1:S1=S1+1
- 19025 B9=1:T6=1:T7=1:K=0:X1=0:Y1=0
- 19030 H4(B9,1)=A5:H4(B9,2)=A6
- 19035 FOR M=B9 TO T6:FOR Q=1 TO 3:FOR J=1 TO 3
- 19040 IF J*Q=4 THEN 19260
- 19045 J5=H4(M,1)+Q-2:J6=H4(M,2)+J-2
- 19050 IF (J5<1)OR(J5>10) THEN 19260
- 19055 IF (J6<1)OR(J6>10) THEN 19260
- 19060 IF Q$(J5,J6)="." THEN 19260
- 19065 IF Q$(J5,J6)="O" THEN 19260
- 19070 IF Q$(J5,J6)<>"*" THEN 19105
- 19075 IF RND>=.1 THEN 19085
- 19080 X2=J5:Y2=J6:GOSUB 27000:RETURN
- 19085 T7=T7+1:H4(T7,1)=J5:H4(T7,2)=J6:G(Q1,Q2)=G(Q1,Q2)-1
- 19090 S1=S1+1:PRINT "***STAR AT SECTOR";J5;"-";J6;"NOVAS."
- 19100 GO TO 19255
- 19105 IF Q$(J5,J6)<>"B" THEN 19140
- 19110 G(Q1,Q2)=G(Q1,Q2)-10:FOR V=1 TO R3
- 19115 IF (B2(V)<>Q1)OR(B3(V)<>Q2) THEN 19125
- 19120 B2(V)=B2(R3):B3(V)=B3(R3)
- 19125 NEXT V:R3=R3-1:B6=0:B7=0:B1=B1+1:GOSUB 17000
- 19130 PRINT "***STARBASE AT SECTOR";J5;"-";J6;"DESTROYED."
- 19135 GO TO 19255
- 19140 IF (S6<>J5)OR(S7<>J6) THEN 19190
- 19145 PRINT "***STARSHIP BUFFETED BY NOVA."
- IF S4<>0 THEN 19155
- 19150 E1=E1-1000:GOTO 19170
- 19155 IF S3>=1000 THEN 19180
- 19160 D6=1000-S3:E1=E1-D6:GOSUB 17000:S3=0:S4=0
- 19165 PRINT "***STARSHIP SHIELDS KNOCKED OUT.":D4(8)=.005*D5*RND*D6
- 19170 IF E1>0 THEN 19185
- 19175 F9=7:GOSUB 10000:RETURN
- 19180 S3=S3-1000
- 19185 X1=X1+S6-H4(M,1):Y1=Y1+S7-H4(M,2):K=K+1:GOTO 19260
- 19190 IF Q$(J5,J6)<>"C" THEN 19250
- 19195 FOR V=1 TO K3
- 19200 IF (K4(V)=J5)AND(K5(V)=J6) THEN 19210
- 19205 NEXT V
- 19210 K6(V)=K6(V)-800
- IF K6(V)<=0 THEN 19250
- 19215 N5=J5+J5-H4(M,1):N6=J6+J6-H4(M,2)
- 19220 PRINT "***COMMANDER AT SECTOR";J5;"-";J6;"DAMAGED";
- 19225 IF (N5<1)OR(N5>10)OR(N6<1)OR(N6>10) THEN 19245
- 19230 PRINT " AND BUFFETED TO SECTOR";N5;"-";N6
- 19235 Q$(N5,N6)="C":K4(V)=N5:K5(V)=N6
- 19240 K7(V)=SQR((S6-N5)^2+(S7-N6)^2):K8(V)=K7(V)
- 19241 Q$(J5,J6)="."
- 19245 PRINT :GOTO 19260
- 19250 A5=J5:A6=J6:T2$=Q$(J5,J6):GOSUB 6000:GOTO 19260
- 19255 PRINT :Q$(J5,J6)="."
- 19260 NEXT J:NEXT Q:NEXT M
- 19265 IF T6=T7 THEN 19280
- 19270 B9=T6+1:T6=T7:GOTO 19035
- 19280 IF K=0 THEN RETURN
- 19290 D1=K*.1
- 19300 IF X1<>0 THEN X1=SGN(X1)
- 19310 IF Y1<>0 THEN Y1=SGN(Y1)
- 19320 I=3*(X1+1)+Y1+2
- 19330 D2=C5(I)
- 19340 IF D2=0 THEN D1=0
- 19350 IF D1=0 THEN RETURN
- 19360 PRINT :PRINT "FORCE OF NOVA DISPLACES STARSHIP."
- 19370 GOSUB 15000:RETURN
-
- 20000 REM-PHASERS
-
- 20001 P=2:J3=1
- 20020 IF C5$<>"DOCKED" THEN 20030
- 20025 PRINT "PHASERS CAN'T BE FIRED THRU BASE SHIELDS.":GO TO 20080
- 20030 IF D4(3)=0 THEN 20050
- 20040 PRINT "PHASER BANKS DAMAGED.":GOTO 20080
- 20050 IF S4=0 THEN 20060
- 20055 PRINT "SHIELDS MUST BE DOWN TO FIRE PHASERS.":GOTO 20080
- 20060 IF K3>0 THEN 20090
- 20065 PRINT
- 20070 PRINT "MR. SPOCK - 'CAPTAIN, THE SHORT-RANGE SENSORS"
- 20075 PRINT " DETECT NO KLINGONS IN THIS QUADRANT.'"
- 20080 J3=0:RETURN
- 20090 PRINT "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE=";
- 20095 PRINT .01*INT(100*E1)
- 20100 INPUT "UNITS TO FIRE";P1
- IF P1<E1 THEN 20120
- 20110 PRINT "ENERGY AVAILABLE =";:GOTO 20095
- 20120 IF P1>0 THEN 20140
- 20130 J3=0:RETURN
- 20140 E1=E1-P1
- 20142 IF D4(11)=0 THEN 20147
- 20144 P1=P1*(RND*.5+.5)
- 20145 PRINT :PRINT "COMPUTER MALFUNCTION HAMPERS PHASER ACCURACY.":PRINT
- 20147 E=P1
- IF K3=0 THEN 20310
- 20150 E=0:T5=(K3*(K3+1))/2
- 20160 FOR I=1 TO K3:H3(I)=((K3+1-I)/T5)*P1
- 20170 H5(I)=ABS(K6(I))/(P*.9^K7(I))
- 20180 IF H3(I)<=H5(I) THEN 20200
- 20190 E=E+(H3(I)-H5(I)):H3(I)=H5(I)
- 20200 NEXT I
- 20210 IF E=0 THEN 20280
- 20220 FOR I=1 TO K3:R7=H5(I)-H3(I)
- 20230 IF R7<=0 THEN 20260
- 20240 IF R7>=E THEN 20270
- 20250 H3(I)=H5(I):E=E-R7
- 20260 NEXT I:GOTO 20280
- 20270 H3(I)=H3(I)+E:E=0
- 20280 GOSUB 12000
- 20290 IF (E<>0)AND(A2=0) THEN 20310
- 20300 J3=1:RETURN
- 20310 PRINT INT(E*10+.5)/10;"EXPENDED ON EMPTY SPACE.":J3=1:RETURN
-
- 21000 REM - PHOTONS
-
- 21001 J3=1
- IF D4(4)=0 THEN 21015
- 21010 PRINT "PHOTON TUBES DAMAGED.":GOTO 21035
- 21015 IF T4<>0 THEN 21025
- 21020 PRINT "NO TORPEDOS LEFT.":GOTO 21035
- 21025 INPUT "TORPEDO COURSE";C6
- 21030 IF C6>=0 THEN 21040
- 21035 J3=0:RETURN
- 21040 INPUT "BURST OF 3";B$:N=1
- 21045 IF LEFT$(B$,1)="N" THEN 21066
- 21050 IF LEFT$(B$,1)<>"Y" THEN 21040
- 21051 IF T4>2 THEN 21060
- 21055 PRINT "NO BURST. ONLY";T4;"TORPEDOS LEFT.":GOTO 21035
- 21060 INPUT "SPREAD ANGLE (3 - 30 DEG)";G2
- 21061 IF G2<0 THEN 21035
- 21062 IF (G2<3)OR(G2>30) THEN 21060
- 21063 G2=G2/60
- 21065 N=3
- 21066 REM - CONTINUE
- 21070 FOR Z6=1 TO N
- 21075 IF C5$<>"DOCKED" THEN T4=T4-1
- 21080 Z7=Z6:R=RND
- 21085 R=(R+RND)*.5-.5
- 21090 IF (R>=-.4)AND(R<=.4) THEN 21125
- 21095 R=(RND+1.2)*R
- IF N=3 THEN 21105
- 21100 PRINT "***TORPEDO MISFIRES...":GOTO 21110
- 21105 PRINT "***TORPEDO NUMBER";Z6;"MISFIRES..."
- 21110 IF RND>.2 THEN 21125
- 21115 PRINT "***PHOTON TUBES DAMAGED BY MISFIRE."
- 21120 D4(4)=D5*(1+2*RND):GOTO 21440
- 21125 IF (S4<>0)OR(C5$="DOCKED") THEN R=R+.001*S3*R
- 21130 A3=C6+.25*R
- IF N=1 THEN 21140
- 21135 A8=(15-A3+(2-Z6)*G2)*.5235988:PRINT
- 21137 PRINT "TRACK FOR TORPEDO NUMBER";Z7;"--":GOTO 21145
- 21140 PRINT :PRINT "TORPEDO TRACK --":A8=(15-A3)*.5235988
- 21145 X4=-SIN(A8):Y4=COS(A8):B8=ABS(X4)
- 21146 IF ABS(Y4)>ABS(X4) THEN B8=ABS(Y4)
- 21150 X4=X4/B8:Y4=Y4/B8:X5=S6:Y5=S7
- 21155 FOR L9=1 TO 15:X5=X5+X4:A5=INT(X5+.5)
- 21160 IF (A5<1)OR(A5>10) THEN 21430
- 21165 Y5=Y5+Y4:A6=INT(Y5+.5)
- 21170 IF (A6<1)OR(A6>10) THEN 21430
- 21175 IF (L9=5)OR(L9=9) THEN PRINT
- 21180 PRINT INT(X5*10+.5)/10;"-";INT(Y5*10+.5)/10;", ";
- 21185 IF Q$(A5,A6)<>"." THEN 21195
- 21190 GOTO 21425
- 21195 PRINT
- IF Q$(A5,A6)="K" THEN 21220
- 21200 IF Q$(A5,A6)<>"C" THEN 21325
- 21205 IF RND>.1 THEN 21220
- 21210 PRINT "***COMMANDER AT SECTOR";A5;"-";A6;"USES ANTI-PHOTON";
- 21215 PRINT " DEVICE!":PRINT " TORPEDO NEUTRALIZED.":GOTO 21435
- 21220 FOR V=1 TO K3
- 21225 IF (A5=K4(V))AND(A6=K5(V)) THEN 21235
- 21230 NEXT V
- 21235 K=K6(V):W3=200+800*RND
- 21240 IF ABS(K)<W3 THEN W3=ABS(K)
- 21245 K6(V)=K-SGN(K)*ABS(W3)
- IF K6(V)<>0 THEN 21255
- 21250 T2$=Q$(A5,A6):GOSUB 6000:GOTO 21435
- 21255 IF Q$(A5,A6)="K" THEN PRINT "***KLINGON AT";
- 21260 IF Q$(A5,A6)="C" THEN PRINT "***COMMANDER AT";
- 21265 PRINT A5;"-";A6;
- 21270 A7=A8+2.5*(RND-.5)
- 21275 W3=ABS(-SIN(A7))
- IF ABS(COS(A7))>W3 THEN W3=ABS(COS(A7))
- 21280 X7=-SIN(A7)/W3:Y7=COS(A7)/W3
- 21285 P=INT(A5+X7+.5):Q=INT(A6+Y7+.5)
- 21290 IF (P<1)OR(P>10)OR(Q<1)OR(Q>10) THEN 21320
- 21295 IF Q$(P,Q)<>"." THEN 21320
- 21300 Q$(P,Q)=Q$(A5,A6):Q$(A5,A6)=".":PRINT "DAMAGED--"
- 21305 PRINT " DISPLACED BY BLAST TO SECTOR";P;"-";Q
- 21310 K4(V)=P:K5(V)=Q:K7(V)=SQR((S6-P)^2+(S7-Q)^2)
- 21311 K8(V)=K7(V)
- 21315 GOSUB 28000:GOTO 21435
- 21320 PRINT "DAMAGED, BUT NOT DESTROYED.":GOTO 21435
- 21325 IF Q$(A5,A6)<>"B" THEN 21365
- 21330 PRINT "***STARBASE DESTROYED...CONGRATULATIONS...YOU TURKEY!"
- 21335 IF S2(Q1,Q2)<0 THEN S2(Q1,Q2)=0
- 21340 FOR W=1 TO R3
- 21345 IF (B2(W)<>Q1)OR(B3(W)<>Q2) THEN 21355
- 21350 B2(W)=B2(R3):B3(W)=B3(R3)
- 21355 NEXT W:Q$(A5,A6)=".":R3=R3-1:B6=0:B7=0
- 21360 G(Q1,Q2)=G(Q1,Q2)-10:B1=B1+1:GOSUB 17000:GOTO 21435
- 21365 IF Q$(A5,A6)<>"*" THEN 21405
- 21370 IF RND>.15 THEN 21385
- 21375 PRINT "***STAR AT SECTOR";A5;"-";A6;"UNAFFECTED BY PHOTON BLAST"
- 21380 GOTO 21435
- 21385 X2=A5:Y2=A6:GOSUB 19000:A5=X2:A6=Y2
- 21390 IF G(Q1,Q2)=1000 THEN RETURN
- 21395 IF A2<>0 THEN RETURN
- 21400 GOTO 21435
- 21405 PRINT :PRINT "AAAAAIIIIIIIEEEEEEEAAAAAAAUUUUUUGGGGGGGHHHHHHHHHH!!!"
- 21410 PRINT " HACK! HACK! COUGH! *CHOKE!*"
- 21415 PRINT :PRINT "MR. SPOCK- 'FASCINATING!'":Q$(A5,A6)="."
- 21420 T2=0:T3=0:GOTO 21435
- 21425 NEXT L9
- 21430 PRINT :PRINT "TORPEDO MISSED!"
- 21435 NEXT Z6
- 21440 IF R1<>0 THEN RETURN
- 21445 F9=1:GOSUB 10000:RETURN
-
- 22000 REM - RAM
-
- 22001 PRINT :PRINT "*** RED ALERT!! RED ALERT!! ***":PRINT
- 22010 PRINT "*** COLLISION IMMINENT!!":PRINT
- 22020 PRINT "*** ";S5$;" RAMS ";:W7=1
- IF Q$(S6,S7)="C" THEN W7=2
- 22030 IF W7=1 THEN PRINT "KLINGON AT ";
- 22040 IF W7=2 THEN PRINT "COMMANDER AT ";
- 22050 PRINT "SECTOR";S6;"-";S7:A5=S6:A6=S7:T2$=Q$(S6,S7)
- 22060 GOSUB 6000:PRINT "***";S5$;" HEAVILY DAMAGED."
- 22070 K=INT(5+RND*20):PRINT "***SICKBAY REPORTS";K;"CASUALTIES!"
- 22080 C4=C4+K:FOR L=1 TO 12:I=RND
- 22090 J=(3.5*W7*(RND+I)+1)*D5
- 22100 IF L=6 THEN J=J/3
- 22110 D4(L)=D4(L)+T1+J:NEXT L:D4(6)=D4(6)-3
- 22120 IF D4(6)<0 THEN D4(6)=0
- 22130 S4=0
- IF R1<>0 THEN RETURN
- 22140 F9=1:GOSUB 10000:RETURN
-
- 23000 REM - SCORE
-
- 23001 P=D0-J2
- IF (P<>0)AND(R1=0) THEN 23020
- 23010 IF P<5 THEN P=5
- 23020 N=(K2+K1)/P:K=INT(500*N+.5):L=0
- 23030 IF G1<>0 THEN L=100*S8
- 23035 I=0
- 23040 IF LEFT$(S5$,1)="E" THEN M=0
- 23045 IF LEFT$(S5$,1)="F" THEN M=1
- 23050 IF LEFT$(S5$,1)="" THEN M=2
- 23060 IF A1=0 THEN I=200
- 23070 J=10*K1+50*K2+K+L-I-100*B1-100*M-35*N1-3*S1-C4
- 23080 PRINT
- IF J<>0 THEN 23100
- 23090 PRINT "AS YET, YOU HAVE NO SCORE.":RETURN
- 23100 PRINT "YOUR SCORE --":PRINT
- IF K1=0 THEN 23120
- 23110 PRINT K1;TAB(5);"ORDINARY KLINGON(S) DESTROYED";TAB(36);10*K1
- 23120 IF K2=0 THEN 23140
- 23130 PRINT K2;TAB(5);"KLINGON COMMANDER(S) DESTROYED";TAB(36);50*K2
- 23140 IF K=0 THEN 23160
- 23150 PRINT INT(N*10+.5)/10;TAB(5);"KLINGONS PER STARDATE, AVERAGE";
- 23155 PRINT TAB(36);K
- 23160 IF S1=0 THEN 23180
- 23170 PRINT S1;TAB(5);"STAR(S) DESTROYED";TAB(36);-3*S1
- 23180 IF B1=0 THEN 23200
- 23190 PRINT B1;TAB(5);"STARBASES DESTROYED";TAB(36);-100*B1
- 23200 IF N1=0 THEN 23220
- 23210 PRINT N1;TAB(5);"SOS CALL(S) TO A STARBASE";TAB(36);-35*N1
- 23220 IF C4=0 THEN 23240
- 23230 PRINT C4;TAB(5);"CASUALTIES INCURRED";TAB(36);-C4
- 23240 IF M=0 THEN 23260
- 23250 PRINT M;TAB(5);"SHIP(S) LOST OR DESTROYED";TAB(36)-100*M
- 23260 IF A1<>0 THEN 23280
- 23270 PRINT "PENALTY FOR GETTING YOURSELF KILLED";TAB(36);-200
- 23280 IF G1=0 THEN 23300
- 23290 PRINT TAB(5);"BONUS FOR WINNING ";S$(S8);" GAME";TAB(36);L
- 23300 PRINT TAB(5);"-------------------------------------"
- 23310 PRINT TAB(28);" TO TAL";TAB(36);J;"**":RETURN
-
- 24000 REM-SETUP
-
- 24001 A2=0:G1=0:GOSUB 4000:S5$="ENTERPRISE"
- 24010 I7=5000:E1=I7:I8=2500:S3=I8:S4=0:S9=S4:J1=4:L1=J1
- 24020 Q1=INT(RND*8)+1:Q2=INT(RND*8)+1:S6=INT(RND*10)+1:S7=INT(RND*10)+1:I9=10:T4=I9
- 24030 W1=5:W2=25:FOR I=1 TO 12:D4(I)=0:NEXT
- 24040 J2=100*INT(31*RND+20):D0=J2:K1=0:K2=0:N1=0:N2=0:R6=0:C4=0
- 24050 A1=1:D3=.25:FOR I=1 TO 8:FOR J=1 TO 8:S2(I,J)=0:NEXT J:NEXT I
- 24060 F1(1)=D0-.5*I5*LOG(RND):F1(5)=1.0E+30
- 24070 F1(2)=D0-1.5*(I5/R2)*LOG(RND):I6=0
- 24080 F1(3)=D0-.3*I5*LOG(RND):F1(4)=D0-.3*I5*LOG(RND)
- 24090 FOR I=1 TO 8:FOR J=1 TO 8:K=INT(RND*9+1):I6=I6+K
- 24100 G(I,J)=K:NEXT J:NEXT I:S1=0
- 24110 FOR I=1 TO I2
- 24120 X=INT(RND*6+2):Y=INT(RND*6+2)
- 24130 IF G(X,Y)>=10 THEN 24120
- 24140 IF I<2 THEN 24180
- 24150 K=I-1:FOR J=1 TO K:D1=SQR((B2(J)-X)^2+(B3(J)-Y)^2)
- 24160 IF D1<2 THEN 24120
- 24170 NEXT J
- 24180 B2(I)=X:B3(I)=Y:S2(X,Y)=-1:G(X,Y)=G(X,Y)+10:NEXT I
- 24190 B1=0:K=I1-I4:L=INT(.25*S8*(9-L2)+1)
- 24200 M=INT((1-RND^2)*L)
- IF M>K THEN M=K
- 24210 N=100*M
- 24220 X=INT(RND*8)+1:Y=INT(RND*8)+1
- IF G(X,Y)+N>999 THEN 24220
- 24230 G(X,Y)=G(X,Y)+N:K=K-M
- IF K<>0 THEN 24200
- 24240 FOR I=1 TO I4
- 24250 X=INT(RND*8)+1:Y=INT(RND*8)+1
- IF (G(X,Y)<99)AND(RND<.75) THEN 24250
- 24260 IF G(X,Y)>899 THEN 24250
- 24270 IF I=1 THEN 24300
- 24280 M=I-1:FOR J=1 TO M
- IF (C1(J)=X)AND(C2(J)=Y) THEN 24250
- 24290 NEXT J
- 24300 G(X,Y)=G(X,Y)+100:C1(I)=X:C2(I)=Y:NEXT I
- 24305 I=INT(D0):PRINT :S0=0
- 24310 T2=INT(RND*8)+1:T3=INT(RND*8)+1
- IF G(T2,T3)<100 THEN 24310
- 24320 IF S8<>1 THEN 24440
- 24330 PRINT "IT IS STARDATE";I;"...THE ORGANIAN PEACE TREATY BETWEEN"
- 24340 PRINT "THE UNITED FEDERATION OF PLANETS AND THE KLINGON EMPIRE"
- 24350 PRINT "HAS COLLAPSED AND THE FEDERATION IS BEING ATTACKED BY A"
- 24360 PRINT "DEADLY KLINGON INVASION FLEET. AS CAPTAIN OF THE STARSHIP"
- 24370 PRINT "U.S.S. ENTERPRISE, IT IS YOUR MISSION TO SEEK OUT AND"
- 24380 PRINT "DESTROY THIS INVASION FOR CE OF";I1;"BATTLE CRUISERS."
- 24390 PRINT :PRINT "YOU HAVE AN INITIAL ALLOTMENT OF";INT(I5);
- 24400 PRINT "STARDATES":PRINT " TO COMPLETE YOUR MISSION."
- 24410 PRINT "AS THE MISSION PROCEEDS, YOU MAY BE GIVEN MORE TIME."
- 24420 PRINT :PRINT "YOU WILL HAVE";I2;"SUPPORTING STARBASE(S).":PRINT
- 24430 GOTO 24515
- 24440 PRINT "STARDATE..............";I
- 24450 PRINT "NUMBER OF KLINGONS....";I1
- 24460 PRINT "NUMBER OF STARDATES...";INT(I5)
- 24470 PRINT "NUMBER OF STARBASES...";I2
- 24480 PRINT "STARBASE LOCATIONS....";
- 24490 FOR I=1 TO I2:PRINT B2(I);"-";B3(I);
- 24500 IF I<>I2 THEN PRINT ", ";
- 24510 NEXT I:PRINT :PRINT
- 24515 GOSUB 18400
- 24520 PRINT "THE ";S5$;" IS CURRENTLY IN THE ";G2$;" QUADRANT."
- 24530 GOSUB 18000:RETURN
-
- 25000 REM - SETWARP
-
- 25010 INPUT "WARP FACTOR";K
- 25020 PRINT
- 25025 IF K<1 THEN 25140
- 25026 IF K>10 THEN 25150
- 25030 J=W1:W1=K:W2=W1*W1
- 25040 IF (W1<=J)OR(W1<=6) THEN 25070
- 25050 IF W1<=8 THEN 25080
- 25060 IF W1>8 THEN 25100
- 25070 PRINT "ENSIGN CHEKOV - 'WARP FACTOR";W1;"CAPTAIN'":RETURN
- 25080 PRINT "ENGINEER SCOTT - 'AYE, BUT OUR MAXIMUM SAFE SPEED";
- 25090 PRINT " IS WARP 6.'":RETURN
- 25100 IF W1=10 THEN 25130
- 25110 PRINT "ENGINEER SCOTT-'AYE, CAPTAIN, BUT OUR ENGINES MAY NOT ";
- 25120 PRINT "TAKE IT.'":RETURN
- 25130 PRINT "ENGINEER SCOTT-'AYE, CAPTAIN, WE'LL GIVE IT A TRY.'":RETURN
- 25140 PRINT "ENSIGN CHEKOV-'WE CAN'T GO BELOW WARP 1, CAPTAIN.'":RETURN
- 25150 PRINT "ENSIGN CHEKOV-'OUR TOP SPEED IS WARP 10, CAPTAIN.'"
- 25160 RETURN
-
- 26000 REM - SHIELDS
-
- 26001 J3=0
- IF D4(8)<>0 THEN 26600
- 26010 IF S4<>0 THEN 26530
- 26500 INPUT "SHIELDS ARE DOWN. DO YOU WANT THEM UP";B$
- 26510 IF LEFT$(B$,1)="Y" THEN 26560
- 26520 RETURN
- 26530 INPUT "SHIELDS ARE UP. DO YOU WANT THEM DOWN";B$
- 26540 IF LEFT$(B$,1)="Y" THEN 26590
- 26550 RETURN
- 26560 S4=1:S9=1
- IF C5$<>"DOCKED" THEN E1=E1-50
- 26570 PRINT "SHIELDS RAISED."
- IF E1<=0 THEN 26610
- 26580 J3=1:RETURN
- 26590 S4=0:S9=1:PRINT "SHIELDS LOWERED.":J3=1:RETURN
- 26600 PRINT "SHIELDS DAMAGED AND DOWN.":RETURN
- 26610 PRINT :PRINT "SHIELDS USE UP LAST OF THE ENERGY."
- 26620 F9=4:GOSUB 10000:RETURN
-
- 27000 REM - SUPERNOVA
-
- 27001 IF X2<>0 THEN 27100
- 27010 N=INT(RND*I6+1):FOR X=1 TO 8:FOR Y=1 TO 8
- 27020 N=N-(G(X,Y)-INT(G(X,Y)/10)*10)
- IF N<=0 THEN 27040
- 27030 NEXT Y:NEXT X:RETURN
- 27040 IF (X<>Q1)OR(Y<>Q2) THEN 27150
- 27050 IF J4<>0 THEN 27150
- 27060 N=INT(RND*(G(X,Y)-INT(G(X,Y)/10)*10))+1
- 27070 FOR X3=1 TO 10:FOR Y3=1 TO 10
- IF Q$(X3,Y3)<>"*" THEN 27090
- 27080 N=N-1
- IF N=0 THEN 27100
- 27090 NEXT Y3:NEXT X3
- 27100 PRINT :PRINT "*** RED ALERT!! RED ALERT!! ***"
- 27105 X3=X2:Y3=Y2
- 27110 PRINT "*** INCIPIENT SUPERNOVA DETECTED AT SECTOR";X3;"-";Y3
- 27120 X=Q1:Y=Q2:K=(X2-S6)^2+(Y2-S7)^2
- 27130 IF K>1.5 THEN 27180
- 27140 PRINT "*** EMERGENCY AUTO-OVERRIDE JAMMED ***":A2=1:GOTO 27180
- 27150 IF D4(9)<>0 THEN 27180
- 27160 PRINT :PRINT "MESSAGE FROM STARFLEET COMMAND...STARDATE";INT(D0)
- 27170 PRINT "'SUPERNOVA IN QUADRANT";X;"-";Y;
- 27175 PRINT "....CAUTION ADVISED'"
- 27180 N=G(X,Y):R=INT(N/100):Q=0
- 27190 IF (X<>Q1)OR(Y<>Q2) THEN 27210
- 27200 K3=0:C3=0
- 27210 IF R=0 THEN 27270
- 27220 R1=R1-R
- IF R2=0 THEN 27270
- 27230 FOR L=1 TO R2
- IF (C1(L)<>X)OR(C2(L)<>Y) THEN 27260
- 27240 C1(L)=C1(R2):C2(L)=C2(R2):C1(R2)=0:C2(R2)=0
- 27250 R2=R2-1:R=R-1:Q=1
- IF R2=0 THEN F1(2)=1.0E+30
- 27260 NEXT L
- 27270 IF R3=0 THEN 27310
- 27280 FOR L=1 TO R3
- IF (B2(L)<>X)OR(B3(L)<>Y) THEN 27300
- 27290 B2(L)=B2(R3):B3(L)=B3(R3):B2(R3)=0:B3(R3)=0:R3=R3-1
- 27300 NEXT L
- 27310 IF X2=0 THEN 27350
- 27320 N=G(X,Y)-INT(G(X,Y)/100)*100
- 27330 S1=S1+(N-INT(N/10)*10):B1=B1+INT(N/10)
- 27340 K1=K1+R:K2=K2+Q
- 27350 IF (S2(X,Y)<>0)AND(D4(9)<>0) THEN S2(X,Y)=1000+G(X,Y)
- 27360 IF (D4(9)=0)OR((Q1=X)AND(Q2=Y)) THEN S2(X,Y)=1
- 27370 G(X,Y)=1000
- 27380 IF (R1<>0)OR((X=Q1)AND(Y=Q2)) THEN 27430
- 27390 PRINT :PRINT "MR. SPOCK- 'CAPTAIN, A SUPERNOVA IN QUADRANT";
- 27400 PRINT X;"-";Y;"HAS JUST DESTROYED THE LAST OF THE KLINGONS.'"
- 27420 F9=1:GOSUB 10000:RETURN
- 27430 IF A2=0 THEN RETURN
- 27440 F9=8:GOSUB 10000:RETURN
-
- 28000 REM - SORTKL
-
- 28001 IF K3<=1 THEN RETURN
- 28005 Z4=0
- 28010 FOR O=1 TO K3-1
- IF K7(O)<=K7(O+1) THEN 28080
- 28020 K=K7(O):K7(O)=K7(O+1):K7(O+1)=K
- 28030 K=K8(O):K8(O)=K8(O+1):K8(O+1)=K
- 28040 K=K4(O):K4(O)=K4(O+1):K4(O+1)=K
- 28050 K=K5(O):K5(O)=K5(O+1):K5(O+1)=K
- 28060 K=K6(O):K6(O)=K6(O+1):K6(O+1)=K
- 28070 Z4=1
- 28080 NEXT O
- 28090 IF Z4<>0 THEN 2805
- 28100 RETURN
-
- 29000 REM-SRSCAN
-
- 29001 IF D4(1)<>0 THEN 29230
- 29010 PRINT :PRINT " 1 2 3 4 5 6 7 8 9 10"
- 29020 FOR I=1 TO 10
- IF I<10 THEN PRINT " ";
- 29030 PRINT I;:FOR J=1 TO 10:PRINT Q$(I,J);" ";:NEXT J
- 29040 ON I GOTO 29050,29060,29080,29090,29140,\
- 29150,29160,29170,29200,29210
- 29050 PRINT " STARDATE ";INT(D0*10+.5)/10:GOTO 29220
- 29060 IF C5$<>"DOCKED" THEN GOSUB 17000
- 29070 PRINT " CONDITION ";C5$:GOTO 29220
- 29080 PRINT " POSITION ";Q1;"-";Q2;", ";S6;"-";S7:GOTO 29220
- 29090 PRINT " LIFE SUPPORT ";
- IF D4(5)<>0 THEN 29110
- 29100 PRINT "ACTIVE":GOTO 29220
- 29110 IF C5$<>"DOCKED" THEN 29130
- 29120 PRINT "DAMAGED, SUPPORTED BY STARBASE":GOTO 29220
- 29130 PRINT "DAMAGED, RESERVES=";INT(L1*100+.5)/100:GOTO 29220
- 29140 PRINT " WARP FACTOR ";INT(W1*10+.5)/10:GOTO 29220
- 29150 PRINT " ENERGY";TAB(POS+8);.01*INT(100*E1):GOTO 29220
- 29160 PRINT " TORPEDOS ";T4:GOTO 29220
- 29170 PRINT " SHIELDS ";:B$="DOWN,"
- IF S4<>0 THEN B$="UP,"
- 29180 IF D4(8)>0 THEN B$="DAMAGED,"
- 29190 PRINT B$;INT(100*S3/I8+.5);"%":GOTO 29220
- 29200 PRINT " KLINGONS LEFT ";R1:GOTO 29220
- 29210 PRINT " TIME LEFT ";INT(R5*100+.5)/100
- 29220 NEXT I:RETURN
- 29230 PRINT "SHORT RANGE SENSORS DAMAGED.":RETURN
-
- 30000 REM - TIMEWARP
-
- 30001 PRINT :PRINT "*** TIME WARP ENTERED ***":PRINT "YOU ARE TRAVELING ";
- 30010 IF S0<>0 THEN 30050
- 30020 T1=-.5*I5*LOG(RND)
- 30030 PRINT "FORWARD IN TIME";INT(T1*10+.5)/10;"STARDATES."
- 30040 F1(2)=F1(2)+T1:GO TO 30200
- 30050 M=D0:D0=D9(1)
- 30060 PRINT "BACKWARD IN TIME";INT((M-D0)*10+.5)/10;"STARDATES.":S0=0
- 30070 R1=D9(2):R2=D9(3):R3=D9(4):R4=D9(5):R5=D9(6)
- 30080 S1=D9(7):B1=D9(8):K1=D9(9):K2=D9(10)
- 30090 FOR I=1 TO 8:FOR J=1 TO 8:G(I,J)=D9(I-1+8*(J-1)+11):NEXT J:NEXT I
- 30100 FOR I=75 TO 84:C1(I-74)=D9(I):NEXT
- 30110 FOR I=85 TO 94:C2(I-84)=D9(I):NEXT
- 30120 FOR I=95 TO 99:B2(I-94)=D9(I):NEXT
- 30130 FOR I=100 TO 104:B3(I-99)=D9(I):NEXT :B4=D9(105):B5=D9(106)
- 30140 F1(1)=D0-.5*I5*LOG(RND)
- 30150 IF R2<>0 THEN F1(2)=D0-(I5/R2)*LOG(RND)
- 30160 F1(3)=D0-.5*I5*LOG(RND)
- 30170 FOR I=1 TO 8:FOR J=1 TO 8
- IF 1<S2(I,J) THEN S2(I,J)=1
- 30180 NEXT J:NEXT I
- 30185 PRINT
- 30190 PRINT "SPOCK HAS RECONSTRUCTED A CORRECT STAR CHART FROM MEMORY."
- 30200 GOSUB 18000:RETURN
-
- 31000 REM - TRANSFER
-
- 31001 J3=0
- 31010 IF D4(12)<>0 THEN 31120
- 31020 INPUT "NUMBER OF UNITS TO SHIELDS";Z3
- 31030 IF Z3<0 THEN RETURN
- 31040 IF E1+S3-Z3>0 THEN 31060
- 31050 PRINT "SCOTT HERE- 'WE ONLY HAVE";INT((E1+S3)*10+.5)/10;"UNITS LEFT.'"
- 31051 RETURN
- 31060 E1=E1+S3-Z3:S3=Z3:PRINT "--ENERGY TRANSFER COMPLETE--"
- 31070 PRINT "(SHIP ENERGY=";INT(E1*10+.5)/10;
- PRINT " SHIELD ENERGY=";INT(S3*10+.5)/10;")"
- 31075 J3=1
- 31080 T1=.1:P5=(K3+4*C3)/48
- IF P5<.1 THEN P5=.1
- 31090 IF P5>RND THEN GOSUB 1000
- 31100 IF A2<>0 THEN RETURN
- 31110 GOSUB 9000:RETURN
- 31120 PRINT "TRANSFER PANEL DAMAGED.":RETURN
-
- 32000 REM - VISUAL
-
- 32001 INPUT "WHICH DIRECTION";Z
- 32005 PRINT
- 32010 J3=0
- IF Z<0 THEN RETURN
- 32012 IF Z<=12 THEN 32020
- 32014 PRINT "DIRECTIONS ARE FROM 0 TO 12 ONLY":GOTO 32001
- 32020 T1=.05:P=(K3+4*C3)/48
- IF P<.05 THEN P=.05
- 32030 IF P>RND THEN GOSUB 1000
- 32040 IF A2<>0 THEN RETURN
- 32050 GOSUB 9000:J3=1
- IF A2<>0 THEN RETURN
- 32080 D5=INT((Z/12)*8+1.5)
- IF D5>8 THEN D5=1
- 32085 FOR I=1 TO 5:FOR J=1 TO 5:V$(I,J)=" ":NEXT J:NEXT I:N=0
- 32087 V$(3,3)=LEFT$(S5$,1)
- 32090 ON D5 GOTO 32100,32130,32150,32170,32190,32220,32260,32300
- 32100 I=S6-2:J=S7-2:V$(1,1)=Q2$
- IF (J>0)AND(I>0) THEN V$(1,1)=Q$(I,J)
- 32110 I=S6-1:J=S7-1:V$(2,2)=Q2$
- IF (I>0)AND(J>0) THEN V$(2,2)=Q$(I,J)
- 32120 N=N+1
- IF N=3 THEN 32350
- 32125 I=S6-2:V$(1,2)=Q2$
- IF (I>0)AND(J>0) THEN V$(1,2)=Q$(I,J)
- 32130 I=S6-2:V$(1,3)=Q2$
- IF I>0 THEN V$(1,3)=Q$(I,S7)
- 32135 I=S6-1:V$(2,3)=Q2$
- IF I>0 THEN V$(2,3)=Q$(I,S7)
- 32140 N=N+1
- IF N=3 THEN 32350
- 32145 I=S6-2:J=S7+1:V$(1,4)=Q2$
- IF (I>0)AND(J<11) THEN V$(1,4)=Q$(I,J)
- 32150 I=S6-2:J=S7+2:V$(1,5)=Q2$
- IF (I>0)AND(J<11) THEN V$(1,5)=Q$(I,J)
- 32155 I=S6-1:J=S7+1:V$(2,4)=Q2$
- IF (I>0)AND(J<11) THEN V$(2,4)=Q$(I,J)
- 32160 N=N+1
- IF N=3 THEN 32350
- 32165 J=S7+2:V$(2,5)=Q2$
- IF (I>0)AND(J<11) THEN V$(2,5)=Q$(I,J)
- 32170 J=S7+2:V$(3,5)=Q2$
- IF J<11 THEN V$(3,5)=Q$(S6,J)
- 32175 J=S7+1:V$(3,4)=Q2$
- IF J<11 THEN V$(3,4)=Q$(S6,J)
- 32180 N=N+1
- IF N=3 THEN 32350
- 32185 I=S6+1:J=S7+2:V$(4,5)=Q2$
- IF (I<11)AND(J<11) THEN V$(4,5)=Q$(I,J)
- 32190 I=S6+2:J=S7+2:V$(5,5)=Q2$
- IF (I<11)AND(J<11) THEN V$(5,5)=Q$(I,J)
- 32195 I=S6+1:J=S7+1:V$(4,4)=Q2$
- IF (I<11)AND(J<11) THEN V$(4,4)=Q$(I,J)
- 32200 N=N+1
- IF N=3 THEN 32350
- 32210 I=S6+2:V$(5,4)=Q2$
- IF (I<11)AND(J<11) THEN V$(5,4)=Q$(I,J)
- 32220 I=S6+2:V$(5,3)=Q2$
- IF I<11 THEN V$(5,3)=Q$(I,S7)
- 32230 I=S6+1:V$(4,3)=Q2$
- IF I<11 THEN V$(4,3)=Q$(I,S7)
- 32240 N=N+1
- IF N=3 THEN 32350
- 32250 I=S6+2:J=S7-1:V$(5,2)=Q2$
- IF (I<11)AND(J>0) THEN V$(5,2)=Q$(I,J)
- 32260 I=S6+2:J=S7-2:V$(5,1)=Q2$
- IF (I<11)AND(J>0) THEN V$(5,1)=Q$(I,J)
- 32270 I=S6+1:J=S7-1:V$(4,2)=Q2$
- IF (I<11)AND(J>0) THEN V$(4,2)=Q$(I,J)
- 32280 N=N+1
- IF N=3 THEN 32350
- 32290 J=S7-2:V$(4,1)=Q2$
- IF (I<11)AND(J>0) THEN V$(4,1)=Q$(I,J)
- 32300 J=S7-2:V$(3,1)=Q2$
- IF J>0 THEN V$(3,1)=Q$(S6,J)
- 32310 J=S7-1:V$(3,2)=Q2$
- IF J>0 THEN V$(3,2)=Q$(S6,J)
- 32320 N=N+1
- IF N=3 THEN 32350
- 32330 I=S6-1:J=S7-2:V$(2,1)=Q2$
- IF (I>0)AND(J>0) THEN V$(2,1)=Q$(I,J)
- 32340 GOTO 32100
- 32350 FOR I=1 TO 5
- 32360 IF (V$(I,1)=" ")AND(V$(I,3)=" ")AND(V$(I,5)=" ") THEN 32390
- 32370 PRINT " ";
- 32380 FOR J=1 TO 5:PRINT V$(I,J);" ";:NEXT J:PRINT
- 32390 NEXT I:RETURN
-
- 33000 REM - WAIT
-
- 33001 J3=0:INPUT "HOW MANY STARDATES";Z5
- 33010 IF (Z5<R5)AND(K3=0) THEN 33030
- 33020 INPUT "ARE YOU SURE";B$
- IF LEFT$(B$,1)<>"Y" THEN RETURN
- 33030 R6=1
- 33040 IF Z5<=0 THEN R6=0
- 33050 IF R6=0 THEN RETURN
- 33060 T1=Z5:Z6=Z5
- 33070 IF K3=0 THEN 33100
- 33080 T1=1+RND
- IF Z5<T1 THEN T1=Z5
- 33090 Z6=T1
- 33100 IF T1<Z5 THEN GOSUB 1000
- 33110 IF A2<>0 THEN RETURN
- 33120 GOSUB 9000:J3=1
- IF A2<>0 THEN RETURN
- 33130 Z5=Z5-Z6:GOTO 33040
-
- 34000 REM - WARP
-
- 34001 J3=0
- IF D4(6)<>0 THEN 34750
- 34010 INPUT "ENTER COURSE AND DISTANCE";D2,D1
- 34020 IF D2<0 THEN RETURN
- 34030 P=(D1+.05)*W1*W1*W1*(S4+1)
- IF P<E1 THEN 34150
- 34040 J3=0:PRINT :PRINT "ENGINEERING TO BRIDGE--"
- 34050 IF (S4=0)OR(.5*P>E1) THEN 34080
- 34060 PRINT " WE HAVEN'T THE ENERGY TO GO THAT FAR WITH";
- 34070 PRINT " THE SHIELDS UP.":RETURN
- 34080 W=INT((E1/(D1+.05))^.333333)
- IF W<=0 THEN 34130
- 34090 PRINT " WE HAVEN'T THE ENERGY. BUT WE COULD DO IT AT WARP";W
- 34100 IF S4<>0 THEN 34120
- 34110 RETURN
- 34120 PRINT û" IF YOU'LL LOWER THE SHIELDS.":RETURN
- 34130 PRINT " WE CAN'T DO IT, CAPTAIN. WE HAVEN'T GOT THE ENERGY."
- 34140 RETURN
- 3150 T1=10*D1/W2
- IF T1<.8*R5 THEN 34500
- 34160 PRINT :PRINT "MR. SPOCK - 'CAPTAIN, I COMPUTE THAT SUCH A TRIP"
- 34170 PRINT " WILL REQUIRE APPROXIMATELY";INT(1000*T1/R5+.5)/10;
- 34180 PRINT "PERCENT":PRINT " OF OUR REMAINING TIME. ARE YOU SURE ";
- 34190 INPUT "THIS IS WISE";B$
- IF LEFT$(B$,1)="Y" THEN 34500
- 34200 J3=0:RETURN
- 34500 Q4=0:W=0
- IF W1<=6 THEN 34660
- 34510 P=D1*(6-W1)^2/66.66666
- IF P>RND THEN Q4=1
- 34520 IF Q4<>0 THEN D1=RND*D1
- 34530 W=0
- IF W1<10 THEN 34550
- 34540 IF .25*D1>RND THEN W=1
- 34550 IF (Q4=0)AND(W=0) THEN 34660
- 34560 A=(15-D2)*.5235998:X1=-SIN(A):X2=COS(A)
- 34570 B8=ABS(X1)
- IF ABS(X2)>ABS(X1) THEN B8=ABS(X2)
- 34580 X1=X1/B8:Y1=Y1/B8:N=INT(10*D1*B8+.5):X=S6:Y=S7
- 34590 IF N=0 THEN 34660
- 34600 FOR L=1 TO N
- 34610 X=X+X1:Q=INT(X+.5)
- IF (Q<1)OR(Q>10) THEN 34660
- 34620 Y=Y+Y1:R=INT(Y+.5)
- IF (R<1)OR(R>10) THEN 34660
- 34630 IF Q$(Q,R)="." THEN 34650
- 34640 Q4=0:W=0
- 34650 NEXT L
- 34660 GOSUB 15000
- IF A2<>0 THEN RETURN
- 34670 Eû1=E1-D1*W1*W1*W1*(S4+1)
- IF E1>0 THEN 34690
- 34680 F9=4:GOSUB 10000:RETURN
- 34690 T1=10*D1/W2
- IF W<>0 THEN GOSUB 3000
- 34700 IF Q4=0 THEN 34740
- 34710 PRINT :PRINT "ENGINEERING TO BRIDGE--":PRINT " SCOTT HERE- ";
- 34715 PRINT "'WE'VE JUST BLOWN THE WARP ENGINES."
- 34720 PRINT " WE'LL HAVE TO SHUT 'ER DOWN HERE, CAPTAIN.'"
- 34725 D4(6)=D5*(3*RND+1)
- 34740 J3=1:RETURN
- 34750 PRINT "WARP ENGINES DAMAGED.":RETURN
-
- 35000 REM - ABANDON
-
- 35001 ON SGN(D4(10))+2 GOTO 35010,35030,35020
- 35010 PRINT "YE FAERIE QUEENE HAS NO SHUTTLE CRAFT.":RETURN
- 35020 PRINT "SHUTTLE CRAFT DAMAGED.":RETURN
- 35030 PRINT :PRINT "***ABANDON SHIP! ABANDON SHIP!"
- 35040 PRINT "***ALL HANDS ABANDON SHIP!":PRINT
- 35050 PRINT "YOU AND THE BRIDGE CREW ESCAPE IN THE GALILEO."
- 35060 PRINT "THE REMAINDER OF THE CREW BEAMS DOWN"
- 35070 PRINT "TO THE NEAREST HABITABLE PLANET."
- IF R3<>0 THEN 35090
- 35080 F9=9:GOSUB 10000:RETURN
- 35090 PRINT :PRINT "YOU ARE CAPTURED BY KLINGONS AND RELEASED TO"
- 35100 PRINT "THE FEDERATION IN A PRISONER-OF-WAR EXCHANGE."
- 35110 PRINT "STARFLEET PUTS YOU IN COMMAND OF ANOTHER SHIP,"
- 35120 PRINT "THE FAERIE QUEENE WHICH IS ANTIQUATED, BUT"
- 35130 PRINT "STILL USABLE.":N=INT(RND*R3+1):Q1=B2(N):Q2=B3(N)
- 35140 S6=5:S7=5:GOSUB 18000:Q$(S6,S7)="."
- 35145 FOR L=1 TO 3:S6=INT(3*RND-1+B6)
- 35150 IF (S6<1)OR(S7>10) THEN 35180
- 35160 S7=INT(3*RND-1+B7)
- IF (S7<1)OR(S7>10) THEN 35180
- 35170 IF Q$(S6,S7)="." THEN 35190
- 35180 NEXT L:GOTO 35140
- 35190 S5$="FAERIE QUEENE":Q$(S6,S7)=LEFT$(S5$,1):C5$="DOCKED"
- 35200 FOR L=1 TO 12:D4(L)=0:NEXT :D4(10)=-1:E1=3000:I7=E1
- 35210 S3=1500:I8=S3:T4=6:I9=T4:L1=3:J1=L1:S4=0:W1=5:W2=25
- 35220 RETURN
-
- 36000 REM - DESTRUCT
-
- 36001 IF D4(11)=0 THEN 36030
- 36010 PRINT "COMPUTER DAMAGED - CANNOT EXECUTE DESTRUCT SEQUENCE"
- 36020 RETURN
- 36030 PRINT :PRINT " ---WORKING---"
- 36040 PRINT "IDENTIFICATION-POSITIVE"
- 36050 PRINT "SELF-DESTRUCT-SEQUENCE-ACTIVATED":J=3
- 36060 FOR I=10 TO 6 STEP -1:PRINT TAB(POS+J);I:GOSUB 36210:J=J+3:NEXT
- 36070 PRINT "ENTER-YOUR-MISSION-PASSWORD-TO-CONTINUE"
- 36080 PRINT "SELF-DESTRUCT-SEQUENCE-OTHERWISE-DESTRUCT"
- 36090 PRINT "SEQUENCE-WILL-BE-ABORTED"
- 36100 INPUT B$
- IF B$<>X$ THEN 36190
- 36110 PRINT "PASSWORD-ACCEPTED":J=10
- 36120 FOR I=5 TO 1 STEP -1:PRINT TAB(POS+J);I:GOSUB 36210:J=J+3:NEXT
- 36130 PRINT :PRINT "*****ENTROPY OF ";S5$;" MAXIMIZED*****"
- 36140 PRINT
- IF K3=0 THEN 36180
- 36150 W=20*E1:FOR L=1 TO K3
- IF K6(L)*K7(L)>W THEN 36170
- 36160 A5=K4(L):A6=K5(L):T2$=Q$(A5,A6):GOSUB 6000
- 36170 NEXT L
- 36180 F9=10:GOSUB 10000:RETURN
- 36190 PRINT "PASSWORD-REJECTED"
- 36200 PRINT "CONTINUITY-EFFECTED":PRINT :RETURN
- 36210 K=12345:FOR M=1 TO 90:K=K+1:NEXT M:RETURN
- 37000 REM - STATUS
- 37001 FOR I=1 TO 10:GOTO 29040:RETURN
- 37010 END