' JJJJ ?\>' L-=l>  ԠéԠˠ#~?  xDIR ERA TYPESAVEREN USER h!yΛO#< Ty#O 321y_͸2y2ͽ:˜1͘ЕA͌>>͌9ؕЕ2^ :¥.!_~#fow]!v"!ߗçREAD ERRORçNO FILE^:ϗ#͘*~ ""͌#>?͌͘ݕ =_.:;<> Oo$>!͛Y2*O"ʉ@G:ʐ:wÖx2p0ʹ#*©6?ëw˜0ï#6 ¹.0#*ٖ6?ۖwȖ0ߖ#6 #6" Ô !2:2a{_:ʖ:>Ľ˔ʖ:=2̛–!B!6#5ڔʖ:Ľ!ͬ•ʧݕÂݕ )!F#xʺ~0wëw!" !~6ͽ:ý(!\X COPYRIGHT (C) 1979, DIGITAL RESEARCH _͌> ͒> Ò> Ò͘~#͌ì _2<Ô2͛˔ÔÔÔ͛ߔ: ::>:(y2E!|"*wɍ`JX^>EE??++ ԩ  [\ ǭ ?  JL ``LLL $Lq<`ΧԠĠڸčԠԠ͠Ԡ؍2>o:= gw8H<8H=` }Hx / hJ Leh<> > @A @A>i =<>+ LeÍh@(L>*// -П( ( $8` %  ZNx`. }x$50x.$50xL JJJJ`Hjf5 }h $50x`  Ȍ` Hx  -(hL(h8֩`Lx (`H݌hHhHh݌>?F؅G(jf5(  ;  R( FGj 0x j $xxH` ( Rh RL.xxH h  !"#$%&'()*+,-./0123456789:;<=>?x&& 8 , P ; ' / \ ; & ; x)*++`FGG8`0($ p,&" cI꽌ɪVɭ&Y & &Y &   꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`V0 ^ *^ *>`+*xS&x'8*3IxiU ,>J>V J>V `8'x0| &HhHh V Y V '&Y V x ꪽV ' `Hh` !Λ ~ 3#0 Wx x G ~ # 3x~#B!Y~ɯ2͛:=!ý:=!:ý^T!Λ~  6?#ˆ:`O> K{̘͘ЕA͒>:͒Ԙ͢>:͒͢xK > K > ͒x  ٘٘͢•ØÆ^ BRͧ9!5‚#~Y‚#"T͛<ÆALL (Y/N)?^ TДʧ͘!6!~ڇ w4!Y~ʆ͌•†t=ʆٗf ^ T͛ 2o&)|+!ؕ͛ԙ͛ڔ<ͧ2թ>2өT*CGͻ:ẅ́n>2ש;O ^DM;}H>"*C :ݩ:שddslO s#r:E͊:թ==»y==»*Ww#*"џ͸*:ĩG#š"ڡџ͸:!᩾Ҧw4!iw:թҠZ!E~=26ͤ w ~>2ҩ!E5T*C!"C"C!w# F! w͌x2ҩ͢*C ~<wʃG:ũ!ҩʎì 4~ʶ¬:ө<ʶ$ʶïZͻx>2թ>2өͻ:!᩾Z2:Eẅ́͊џͲҠ> *C ^OßơT *C~wD -'  -@ͦ~^*C Ox! N!Fwyxʋ>ڋ>*Cw~#+w#w+ɯ2E22i^ *C :ݩ~ۤw~͔͔# # :ԩ:ũ/GyO>2ԩ!ةq*C"٩͡ʔ*٩JҔ^:ةOyʃ?|x | s-|N-# S:2E!ԩ~Яw>T D^6kơ-äPYyѣ 5*Ʃ{zBK5Ң:A#~$=2Ek͌ ):BO!yoxg*:BO}!N#F "*ȩ#*s#r^ ~!J! J*:驅o$*C~i6iw**{#zr+s{ozg**̩͕** ġ,w͜͸ڡͲ!!N#F$**O!~#O: \S*C :ݩqn& ^#V>O^"*}:é*)=":ĩO:㩡o"*C *C!ͮ~2~2ͦ:ũ2ͮ:թޠO:㩁w:w |g}o*# 2E>! ^#V w#P:BO|^#V#"##"##"##"Щ!O*!O*Ʃ|!ݩ6ʝ6>*w#w*w#w'û*! J*""!N#F*^#V*~#foyx*{_zW+*x: 2 p&x~+é7ɝ2 H! >w_: ! 5ͤNkͱ¦ͱxʊ#Nx: ! 2 ͤ! 5™#wO~x½p Hy<< ʑ :!qMDӝ# O͐  :E B 2>: b# : y! 4 5~yy5 6yҐ^H@Oy H H: –ͬ  #Hɝ: !  Hù H H $O͐ӝ: 2 *CN# =qf^!~2͛>`~2ݛ2\!͛!B!~> >#0~O#Cx2͘Օ1)ͽÂf zͧÆBAD LOADCOMf^:Λ ! Â$$$ SUBՕÆNO SPACE^ :Ty!͛ݛB*O=?_s#"^sG!~Ypsp2͛m͛ÆÆf ͧÆFILE EXISTS _:Λ É:Λ Ě:ʉ=2)ͽÉ֛ T!@Дk!ؕ͛}|q):B"ڡ*)*)Q;*"E:֩;:A2AQÓQÜQҧ*C}/_|/*W}_*"}o|g":ީʑ*C6:੷ʑw:ߩ2֩E**E}DQ>2թC0T"I !>"H>2J: !͢:d:d!s~۪B#߬1!P!Jo~,foɷp:BB Apple ][ CP/M 44K Ver. 2.20 (C) 1980 Microsoft >>EE??++B#߬1!P!Jo~,foɷp:B: Apple ]~6(*} *: y(3:s:2G<2x/a2:oa":z2{![: <2:>sɯ2>!>2!;:*     1>2>2*"?2:08 !"Y"BT"->2:8Y"/:8Y"F~!xq!;`~0,~!M;!x~>Ū.~8[q>: 2y2!!{o!:=8 ~y!3w.y2Cɯ2>!w#w#wOa."y .:g"*"!~((5:# :* : $| 8g,"2!"_!oN!((+! ~O#O:ݫx >22:*(*D*:wk*(:$_"~28 ?@wx( !;!Ԭony 2$8!2E!y>>?22!ɯog"$2E!.B...X&*}(8.|8&"$պ`~(,qy2E[22G:Ū 2:O*:)!O#~#'~y/:02?"2O: K*:*(0**:8'(*:08* *: 8(*7!w˹#~(=5:!( +_ywɷ+ͱ*:ϫ]lc_O{- OMG!~_ :( 6>83! ~è̪PCfuÇKmVÉÎÓã`i:JZjʯz֯ / !~ `66= !; !{g1:Q!;͢22>2!"2!"͎>2PIP COM: SALVO BAS8 ORBIT BASMUGWUMP BAS LIFE2 BASTOWERS BAS 6789TARGET BAS345STARTREKBAS !"#$%&'()ͦ>ͦ!q:_  !p+q.*   !q*&!p+q*2!p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q* COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$:$: $͈Ͳ!N6' :!Cwͯ !6:^͢c!6{:/>!/H{ͯ :<2Š ::=HҮͯ !6:Ҿ:2 !6::/H͈;!6:> !/>STARTREKBAS*+TREKINSTBAS3,-./012RUSROU BAS:MASTRMNDBAS+ABCDEFQUBIK BAS8GHIJKLM$DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1 :2L> ̈́M9 ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILEHHͯ :^!w:<2:0}:@E}:!S!W6: z!]6:cm!c6:_z!_6l ::,: HHҰͯ : 2ó:E:1:2v!q!*8!*6: >(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)221@:2!o6+6+6!6#6!6#6:G*o .!N6:^*M^!K6!6!6+6' :$::=2K  :ʤ\:ҷ\x'Ͳ:!\͢  :͈'! !p+q* !q*& *M *M !p+q*!!p+q*"!p+q*$!6  !kp+q*j> >ڪ Þ !qp+q/ *pDM9: :M2r:N!r !:r *r& N!r4 !6::=O!L NE!4 E E:/.*&L 6$L9k9.Xͯ *KM^020 :020:121'ͳ':²ͯ !G6!"!"7 *M^n/ :a/:H!6:ͯ !&6! ^#V͎ * :w*#" = = = = = ͯ  *M !6q  !6q  !6q  *& !6à  !6 à  !60à  *& !6  !6  !6  *& . 1 4 7 : = F P [ f q  r+s+p+q*~$7*>*>H&>*#"*#"> 2:R͎:!6!6=2:ʙ!6:“H9Ž>!6-e!6ͻ2=2ʺ-é:>>"ͻ2:!!5ͻ2ͬ!\ͯ m!62m!62m!62m!62m'2:2:TҒ:2!6*ME:2::Ҳ:<22ý: 2:} >ͯ :i:2:d*M:[ ͔: :ͳ.!ws+p+q+p+q:w=2wN *s*u w*s#"s*u#"u' !"*M^7 !x6:!xھ **DM͆ 2yʭ :yʗ ͯ *"*6:2x÷ *"!x4d !"/ !j}=2| !"*KM^'_ !z6:|!z1 *:[ ͱ!N5!6:%:<2*6 * 6å!q!6> !d*&I :]>!4A>:<2O* :w:?†!6!q!6?!:ҠgÐ!q*&*~!6:22: :]Hں:A2O>: 2ͯ *M8):[ͱ!N5!6ñ:5!6#6>!ڰ!6:<2O>/:!O!T *M͡H~K:¡!6[–ͱ!N5:2:2!4=:[¼ͱ4:!6:.2O8: :* ͇g :2!q: " *M n :c4 *M n :2!c:Q !c:2: !:cw>!n !5 Y : { !6!q:!lwҙ  â :0O !q:O| :O| !6:]2l:o'2o:n'2n:m'2m*mMͣ *nMͣ *oMͣ :]-:>>!p+q:,!6*DM9:<!6:z 2W!6D*&L :w:<2Ov*:>=20O> ڒ:0:AO>Ҥ::A }}Hͬ!wͻO`idͻV[2O>2:!X!6:!*M:>!(:=2%> >>!F!5+N! ~2!4<2T>>!b}*bMͭz:b2!b6:<2é>!`ҥ*`MͭҞ!`6!6> :é:(!q:!wO! ~2*& :w>!:!4!6>:N<2N! "}*}DM͆ ' ͯ *"!z4 :e !"͆ !z6:|!z '? 2*H#"H!{6:{ր!Ң *{& :{4 2!{4m *":ڹ ͯ !z4I '2!"!q: !4>!S :S! :2*M÷:S:QHI:N<22: H@"2Í202O> c!6Í202O> ڍ*&O*& !sc*&P :w:·>!ұͯ :22:_!6=!6>'!E!4!p+q*0 !/H:_2:!q:A/>Z!/H8: 2::=O>m:W!Q} Hmd>9>!6:2*M!E ^#V͎ڗO **~2*#"m2m͖ 2m!6m!6m!6 m2m:   *}2D" * * *&"!q:UY: Y:ҩ: ʩ:_2ʘ:€!6<:<2!ژ!6 >!]Ҥ; !6:Q::H: !6*M : !6!q:a/>z!2*">!b!ͯ >!`0ͯ !q:E:24J!46*}a!44EJ *KM^'́:‚ͯ !36'n::0:f9OY#9.3'ͳ.:020' 'ͳ'7 6' NEXT Z 1780 PRINT "CRUISER" 1790 PRINT F(6);G(6) 1800 PRINT F(7);G(7) 1810 PRINT F(8);G(8) 1820 PRINT "DESTROYER" 1830 PRINT F(9);G(9) 1840 PRINT F(10);G(10) 1850 PRINT "DESTROYER" 1860 PRINT F(11);G(11) 1870 PRINT F(12);G(12) 1880 GOTO 1 1090 NEXT W 1100 FOR X=1 TO 10 1110 FOR Y=1 TO 10 1120 B(X,Y)=0 1130 NEXT Y 1140 NEXT X 1150 FOR X=1 TO 12 1160 F(X)=0 1170 G(X)=0 1180 NEXT X 1190 FOR X=1 TO 10 1200 FOR Y=1 TO 10 1210 A(X,Y)=0 1220 NEXT Y 1230 NEXT X 1240 FOR K=4 TO 1 STE' !'6!36' :1/!aE*#">z?C9IͲÁ.!6> !ڇ*&' ~2 ʀ: y.*M!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈* "BATTLESHIP" 1520 FOR X=1 TO 5 1530 INPUT Y,Z 1540 B(Y,Z)=3 1550 NEXT X 1560 PRINT "CRUISER" 1570 FOR X=1 TO 3 1580 INPUT Y,Z 1590 B(Y,Z)=2 1600 NEXT X 1610 PRINT "DESTROYER" 1620 FOR X=1 TO 2 1630 INPUT Y,Z 1640 B(Y,Z)=1 1650 NEXT X 166!j>A+!s!"@͓1!"<**"͓n "Dn"":!Q2҂:X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:HX+V2*FNB(K)<1 THEN 1260 1340 U6=U6+1 1350 IF U6>25 THEN 1190 1360 FOR Z=0 TO FNB(K) 1370 F(Z+FNA(K))=X+V2*Z 1380 G(Z+FNA(K))=Y+V*Z 1390 NEXT Z 1400 U8=FNA(K) 1405 IF U8>U8+FNB(K) THEN 1460 1410 FOR Z2= U8 TO U8+FNB(K) 1415 IF U8<2 THEN 1450 1420P -1 1250 U6=0 1260 GOSUB 2910 1270 DEF FNA(K)=(5-K)*3-2*INT(K/4)+SGN(K-1)-1 1280 DEF FNB(K)=K+INT(K/4)-SGN(K-1) 1290 IF V+V2+V*V2=0 THEN 1260 1300 IF Y+V*FNB(K)>10 THEN 1260 1310 IF Y+V*FNB(K)<1 THEN 1260 1320 IF X+V2*FNB(K)>10 THEN 1260 1330 IF DM!  ::=H-\:N2O_og_{ozg^#V))) _{ozg^#V) d^#V|g}o n_{ozgO{ozgi`N#Fogo&og H ©=¨0 PRINT "DESTROYER" 1670 FOR X=1 TO 2 1680 INPUT Y,Z 1690 B(Y,Z)=.5 1700 NEXT X 1710 PRINT "DO YOU WANT TO START"; 1720 INPUT J$ 1730 IF J$<>"WHERE ARE YOUR SHIPS?" THEN 1890 1740 PRINT "BATTLESHIP" 1750 FOR Z=1 TO 5 1760 PRINT F(Z);G(Z) 17701000 PRINT TAB(33);"SALVO" 1010 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 1020 PRINT:PRINT:PRINT 1030 REM 1040 DIM A(10,10),B(10,10),C(7),D(7),E(12),F(12),G(12),H(12),K(10,10) 1050 Z8=0 1060 FOR W=1 TO 12 1070 E(W)=-1 1080 H(W)=-1 :H:H"!6!4:_jYO jM*"S*" 3@bl*M1͓!""7 *M^͆ \͔!":͎H*#"ͧÝ/ :>͛9ͯ .*#":_! FOR Z3=1 TO U8-1 1430 IF SQR((F(Z3)-F(Z2))^2 + (G(Z3)-G(Z2))^2) < 3.59 THEN 1260 1440 NEXT Z3 1450 NEXT Z2 1460 FOR Z=0 TO FNB(K) 1470 A(F(Z+U8),G(Z+U8))=.5+SGN(K-1)*(K-1.5) 1480 NEXT Z 1490 NEXT K 1500 PRINT "ENTER COORDINATES FOR..." 1510 PRINT710 1890 C=0 1900 PRINT "DO YOU WANT TO SEE MY SHOTS"; 1910 INPUT K$ 1920 PRINT 1930 IF J$<>"YES" THEN 2620 1940 REM*******************START 1950 IF J$<>"YES" THEN 1990 1960 C=C+1 1970 PRINT 1980 PRINT "TURN";C 1990 A=0 2000 FOR W=.5 TO 3 STEP NT(H(Q)+.5)+1+INT(INT(H(Q)+.5)/3) THEN 3470 3670 FOR M2=1 TO 12 3680 IF H(M2)<>H(Q) THEN 3710 3690 E(M2)=-1 3700 H(M2)=-1 3710 NEXT M2 3720 GOTO 3470 3730 NEXT Q 3740 PRINT "PROGRAM ABORT:" 3750 FOR Q=1 TO 12 3760 PRINT "E(";Q;") =";E(Q) 3770 PR 2960 FOR W=1 TO 12 2970 IF H(W)>0 THEN 3800 2980 NEXT W 2990 REM*******************RANDOM 3000 W=0 3010 R3=0 3020 GOSUB 2910 3030 RESTORE 3040 R2=0 3050 R3=R3+1 3060 IF R3>100 THEN 3010 3070 IF X>10 THEN 3110 3080 IF X>0 THEN 3120 3090 X=1+I 2270 PRINT "I HAVE WON." 2280 STOP 2290 FOR W=1 TO A 2300 INPUT X,Y 2310 IF X<>INT(X) THEN 2370 2320 IF X>10 THEN 2370 2330 IF X<1 THEN 2370 2340 IF Y<>INT(Y) THEN 2370 2350 IF Y>10 THEN 2370 2360 IF Y>=1 THEN 2390 2370 PRINT "ILLEGAL, ENTER AG520 3450 IF B(F(W),G(W))=1 THEN 3560 3460 IF B(F(W),G(W))=.5 THEN 3540 3470 B(F(W),G(W))=10+C 3480 NEXT W 3490 GOTO 1950 3500 PRINT "I HIT YOUR BATTLESHIP" 3510 GOTO 3570 3520 PRINT "I HIT YOUR CRUISER" 3530 GOTO 3570 3540 PRINT "I HIT YOUR DESTRA(X,Y)=W THEN 2750 2720 NEXT Y 2730 NEXT X 2740 GOTO 2760 2750 A=A+INT(W+.5) 2760 NEXT W 2770 P3=0 2780 FOR X=1 TO 10 2790 FOR Y=1 TO 10 2800 IF A(X,Y)>10 THEN 2820 2810 P3=P3+1 2820 NEXT Y 2830 NEXT X 2840 PRINT "I HAVE";A;"SHOTS." 2850 IF P.5 2010 FOR X=1 TO 10 2020 FOR Y=1 TO 10 2030 IF B(X,Y)=W THEN 2070 2040 NEXT Y 2050 NEXT X 2060 GOTO 2080 2070 A=A+INT(W+.5) 2080 NEXT W 2090 FOR W=1 TO 7 2100 C(W)=0 2110 D(W)=0 2120 F(W)=0 2130 G(W)=0 2140 NEXT W 2150 P3=0 2160 FOR X=1 TN 3030 3220 READ X1,Y1 3230 R2=R2+1 3240 DATA 1,1,-1,1,1,-3,1,1,0,2,-1,1 3250 X=X+X1 3260 Y=Y+Y1 3270 IF X>10 THEN 3210 3280 IF X<1 THEN 3210 3290 IF Y>10 THEN 3210 3300 IF Y<1 THEN 3210 3310 IF B(X,Y)>10 THEN 3210 3320 FOR Q9=1 TO W 3330 IF F(NT(RND(1)*2.5) 3100 GOTO 3120 3110 X=10-INT(RND(1)*2.5) 3120 IF Y>10 THEN 3160 3130 IF Y>0 THEN 3270 3140 Y=1+INT(RND(1)*2.5) 3150 GOTO 3270 3160 Y=10-INT(RND(1)*2.5) 3170 GOTO 3270 3180 F(W)=X 3190 G(W)=Y 3200 IF W=A THEN 3380 3210 IF R2=6 THEAIN." 2380 GOTO 2300 2390 IF A(X,Y)>10 THEN 2440 2400 C(W)=X 2410 D(W)=Y 2420 NEXT W 2430 GOTO 2460 2440 PRINT "YOU SHOT THERE BEFORE ON TURN";A(X,Y)-10 2450 GOTO 2300 2460 FOR W=1 TO A 2470 IF A(C(W),D(W))=3 THEN 2540 2480 IF A(C(W),D(W))=2 THEOYER" 3550 GOTO 3570 3560 PRINT "I HIT YOUR DESTROYER" 3570 FOR Q=1 TO 12 3580 IF E(Q)<>-1 THEN 3730 3590 E(Q)=10+C 3600 H(Q)=B(F(W),G(W)) 3610 M3=0 3620 FOR M2=1 TO 12 3630 IF H(M2)<>H(Q) THEN 3650 3640 M3=M3+1 3650 NEXT M2 3660 IF M3<>I3>A THEN 2880 2860 PRINT "I HAVE MORE SHOTS THAN BLANK SQUARES." 2870 GOTO 2270 2880 IF A<>0 THEN 2960 2890 PRINT "YOU HAVE WON." 2900 STOP 2910 X=INT(RND(1)*10+1) 2920 Y=INT(RND(1)*10+1) 2930 V=INT(3*RND(1)-1) 2940 V2=INT(3*RND(1)-1) 2950 RETURNO 10 2170 FOR Y=1 TO 10 2180 IF A(X,Y)>10 THEN 2200 2190 P3=P3+1 2200 NEXT Y 2210 NEXT X 2220 PRINT "YOU HAVE";A;"SHOTS." 2230 IF P3>=A THEN 2260 2240 PRINT "YOU HAVE MORE SHOTS THAN THERE ARE BLANK SQUARES." 2250 GOTO 2890 2260 IF A<>0 THEN 2290Q9)<>X THEN 3350 3340 IF G(Q9)=Y THEN 3210 3350 NEXT Q9 3360 W=W+1 3370 GOTO 3180 3380 IF K$<>"YES" THEN 3420 3390 FOR Z5=1 TO A 3400 PRINT F(Z5);G(Z5) 3410 NEXT Z5 3420 FOR W=1 TO A 3430 IF B(F(W),G(W))=3 THEN 3500 3440 IF B(F(W),G(W))=2 THEN 3DESTROYER." 2590 GOTO 2510 2600 PRINT "YOU HIT MY DESTROYER." 2610 GOTO 2510 2620 A=0 2630 IF J$="YES" THEN 2670 2640 C=C+1 2650 PRINT 2660 PRINT "TURN";C 2670 A=0 2680 FOR W=.5 TO 3 STEP .5 2690 FOR X=1 TO 10 2700 FOR Y=1 TO 10 2710 IF N 2560 2490 IF A(C(W),D(W))=1 THEN 2580 2500 IF A(C(W),D(W))=.5 THEN 2600 2510 A(C(W),D(W))=10+C 2520 NEXT W 2530 GOTO 2620 2540 PRINT "YOU HIT MY BATTLESHIP." 2550 GOTO 2510 2560 PRINT "YOU HIT MY CRUISER." 2570 GOTO 2510 2580 PRINT "YOU HIT MY INT "H(";Q;") =";H(Q) 3780 NEXT Q 3790 STOP 3800 REM************************USINGEARRAY 3810 FOR R=1 TO 10 3820 FOR S=1 TO 10 3830 K(R,S)=0 3840 NEXT S 3850 NEXT R 3860 FOR U=1 TO 12 3870 IF E(U)<10 THEN 4020 3880 FOR R=1 TO 10 3890 FOR S=1 TO S ALTITUDE" 210 PRINT "AND ORBITAL RATE WILL REMAIN CONSTANT." 220 PRINT 230 PRINT "GOOD LUCK. THE FEDERATION IS COUNTING ON YOU." 270 A=INT(360*RND(1)) 280 D=INT(200*RND(1)+200) 290 R=INT(20*RND(1)+10) 300 H=0 310 IF H=7 THEN 490 320 H=H+1 325OU VISUALIZE YOUR PLIGHT." 116 PRINT 117 PRINT 168 PRINT " 90" 169 PRINT " ^" 170 PRINT " 0000000000000" 171 PRINT " 0000000000000000000" 172 PRINT " 131 IF R>A THEN 4140 4132 IF R=S THEN 4210 4140 IF K(R,S)R THEN 4190 4170 IF G(M)=S THEN 4210 4180 NEXT M 4190 F(Q9)=R 4200 G(Q9)=S 4210 NEXT S 4220 NEXT R 4230 GOTO 3380 4240 END  186 PRINT " 000000 000000" 187 PRINT " 0000000000000000000" 188 PRINT " 0000000000000" 189 PRINT " !" 190 PRINT " 270" 192 PRINT 195 PRINT "XTY." 70 PRINT 75 PRINT "YOUR PLANET HAS ENOUGH POWER TO FIRE ONE BOMB AN HOUR." 80 PRINT 85 PRINT "AT THE BEGINNING OF EACH HOUR YOU WILL BE ASKED TO GIVE AN" 90 PRINT "ANGLE (BETWEEN 0 AND 360) AND A DISTANCE IN UNITS OF" 95 PRINT "100 MILES (BETWEE10 3900 IF B(R,S)<10 THEN 3930 3910 K(R,S)=-10000000# 3920 GOTO 4000 3930 FOR M=SGN(1-R) TO SGN(10-R) 3940 FOR N=SGN(1-S) TO SGN(10-S) 3950 IF N+M+N*M=0 THEN 3980 3960 IF B(R+M,S+N)<>E(U) THEN 3980 3970 K(R,S)=K(R,S)+E(U)-S*INT(H(U)+.5) 3980 NEXT T " 0000 XXXXXXXXXXXXXXXXX 0000" 178 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000" 179 PRINT "180<== 00000 XXXXXXXXXXXXXXXXXXX 00000 ==>0" 180 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000" 181 PRINT " 000000000 000000" 173 PRINT " 00000 00000" 174 PRINT " 00000 XXXXXXXXXXX 00000" 175 PRINT " 00000 XXXXXXXXXXXXX 00000" 176 PRINT " 0000 XXXXXXXXXXXXXXX 0000" 177 PRIN2 PRINT TAB(33);"ORBIT" 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 6 PRINT:PRINT:PRINT 10 PRINT "SOMEWHERE ABOVE YOUR PLANET IS A ROMULAN SHIP." 15 PRINT 20 PRINT "THE SHIP IS IN A CONSTANT POLAR ORBIT. ITS" 25 PRINT "DISTANCE FROM - YOUR PLANET" 196 PRINT "0 - THE ORBIT OF THE ROMULAN SHIP" 197 PRINT 198 PRINT "ON THE ABOVE DIAGRAM, THE ROMULAN SHIP IS CIRCLING" 199 PRINT "COUNTERCLOCKWISE AROUND YOUR PLANET. DON'T FORGET" 200 PRINT "WITHOUT SUFFICIENT POWER THE ROMULAN SHIP'N 100 AND 300), AFTER WHICH YOUR BOMB'S" 100 PRINT "DISTANCE FROM THE ENEMY SHIP WILL BE GIVEN." 105 PRINT 110 PRINT "AN EXPLOSION WITHIN 5,000 MILES OF THE ROMULAN SHIP" 111 PRINT "WILL DESTROYY IT." 114 PRINT 115 PRINT "BELOW IS A DIAGRAM TO HELP YN 3990 NEXT M 4000 NEXT S 4010 NEXT R 4020 NEXT U 4030 FOR R=1 TO A 4040 F(R)=R 4050 G(R)=R 4060 NEXT R 4070 FOR R=1 TO 10 4080 FOR S=1 TO 10 4090 Q9=1 4100 FOR M=1 TO A 4110 IF K(F(M),G(M))>=K(F(Q9),G(Q9)) THEN 4130 4120 Q9=M 4130 NEXT M 40 XXXXXXXXXXXXXXXXX 0000" 182 PRINT " 0000 XXXXXXXXXXXXXXX 0000" 183 PRINT " 00000 XXXXXXXXXXXXX 00000" 184 PRINT " 00000 XXXXXXXXXXX 00000" 185 PRINT " 00000 00000" LE TO SEE THEM, BUT WITH A SPECIAL" 50 PRINT "INSTRUMENT YOU CAN TELL HOW NEAR THEIR SHIP YOUR" 55 PRINT "PHOTON BOMB EXPLODED. YOU HAVE SEVEN HOURS UNTIL THEY" 60 PRINT "HAVE BUILT UP SUFFICIENT POWER IN ORDER TO ESCAPE" 65 PRINT "YOUR PLANET'S GRAVI THE CENTER OF YOUR PLANET IS FROM" 30 PRINT "10,000 TO 30,000 MILES AND AT ITS PRESENT VELOCITY CAN" 31 PRINT "CIRCLE YOUR PLANET ONCE EVERY 12 TO 36 HOURS." 35 PRINT 40 PRINT "UNFORTUNATELY THEY ARE USING A CLOAKING DEVICE SO" 45 PRINT "YOU ARE UNAB PRINT 326 PRINT 330 PRINT "HOUR";H;", AT WHAT ANGLE DO YOU WISH TO SEND" 335 PRINT "YOUR PHOTON BOMB"; 340 INPUT A1 350 PRINT "HOW FAR OUT DO YOU WISH TO DETONATE IT"; 360 INPUT D1 365 PRINT 366 PRINT 370 A=A+R 380 IF A<360 THEN 400 390 A=A-3601: IF N(J,K)>999 THEN B=10 220 FOR O1= 1 TO 15 STEP 2 230 N(J+A(O1),K+A(O1+1))=N(J+A(O1),K+A(O1+1))+B 231 NEXT O1 239 RETURN 300 IF N(J,K)<3 THEN 399 305 FOR O1=1 TO 18 310 IF N(J,K)=K(O1) THEN 350 315 NEXT O1 320 GOTO 399 350 IF O1>9 THEN 360 3OR I=1 TO 4 550 IF P(I,1)=-1 THEN 570 560 PRINT "MUGWUMP";I;"IS AT (";P(I,1);",";P(I,2);")" 570 NEXT I 580 PRINT 600 PRINT "THAT WAS FUN! LET'S PLAY AGAIN......." 610 PRINT "FOUR MORE MUGWUMPS ARE NOW IN HIDING." 630 GOTO 240 1000 FOR J=1 TO 2 10OD BYE." 999 END SHIP HAS GONE INTO ORBIT." 510 PRINT "DO YOU WISH TO TRY TO DESTROY IT"; 520 INPUT C$ 530 IF C$="YES" THEN 270 540 PRINT "GO K(M): NEXT M 13 DATA -1,0,1,0,0,-1,0,1,-1,-1,1,-1,-1,1,1,1 14 FOR O1= 1 TO 16: READ A(O1): NEXT O1 20 GOTO 500 50 FOR J=1 TO 5 51 FOR K=1 TO 5 55 IF N(J,K)>99 THEN GOSUB 200 60 NEXT K 65 NEXT J 90 K=0: M2=0: M3=0 99 FOR J=0 TO 6: PRINT 100 FOR M,N 310 FOR I=1 TO 4 320 IF P(I,1)=-1 THEN 400 330 IF P(I,1)<>M THEN 380 340 IF P(I,2)<>N THEN 380 350 P(I,1)=-1 360 PRINT "YOU HAVE FOUND MUGWUMP";I 370 GOTO 400 380 D=SQR((P(I,1)-M)^2+(P(I,2)-N)^2) 390 PRINT "YOU ARE";(INT(D*10))/10;"UNITS FROM 400 T=ABS(A-A1) 410 IF T<180 THEN 430 420 T=360-T 430 C=SQR(D*D+D1*D1-2*D*D1*COS(T*3.14159/180)) 440 PRINT "YOUR PHOTON BOMB EXPLODED";C;"*10^2 MILES FROM THE" 445 PRINT "ROMULAN SHIP." 450 IF C<=50 THEN 470 460 GOTO 310 470 PRINT "YOU HAVE SUCCE10 FOR I=1 TO 4 1020 P(I,J)=INT(10*RND(1)) 1030 NEXT I 1040 NEXT J 1050 RETURN 1099 END "THAT WAS FUN! LET'S PLAY AGAIN......." 610 PRINT "FOUR MORE MUGWUMPS ARE NOW IN HIDING." 630 GOTO 240 1000 FOR J=1 TO 2 101 PRINT TAB(33);"MUGWUMP" 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT:PRINT:PRINT 4 REM COURTESY PEOPLE'S COMPUTER COMPANY 10 DIM P(4,2) 20 PRINT "THE OBJECT OF THIS GAME IS TO FIND FOUR MUGWUMPS" 30 PRINT "HIDDEN ON A 10K=0 TO 6 101 IF J<>0 THEN IF J<>6 THEN 105 102 IF K=6 THEN PRINT 0;: GOTO 125 103 PRINT K;: GOTO 120 105 IF K<>0 THEN IF K<>6 THEN 110 106 IF J=6 THEN PRINT 0: GOTO 126 107 PRINT J;: GOTO 120 110 GOSUB 300 120 NEXT K 125 NEXT J 126 RETURN 200 B=MUGWUMP";I 400 NEXT I 410 FOR J=1 TO 4 420 IF P(J,1)<>-1 THEN 470 430 NEXT J 440 PRINT 450 PRINT "YOU GOT THEM ALL IN";T;"TURNS!" 460 GOTO 580 470 IF T<10 THEN 260 480 PRINT 490 PRINT "SORRY, THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING" 540 FSFULLY COMPLETED YOUR MISSION." 480 GOTO 500 490 PRINT "YOU HAVE ALLOWED THE ROMULANS TO ESCAPE." 500 PRINT "ANOTHER ROMULAN SHIP HAS GONE INTO ORBIT." 510 PRINT "DO YOU WISH TO TRY TO DESTROY IT"; 520 INPUT C$ 530 IF C$="YES" THEN 270 540 PRINT "GO2 PRINT TAB(33);"LIFE2" 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 6 PRINT:PRINT:PRINT 7 DIM N(6,6),K(18),A(16),X(2),Y(2) 8 DATA 3,102,103,120,130,121,112,111,12 9 DATA 21,30,1020,1030,1011,1021,1003,1002,1012 10 FOR M=1 TO 18: READMEBASE." 80 PRINT 90 PRINT "YOU GET 10 TRIES. AFTER EACH TRY, I WILL TELL" 100 PRINT "YOU HOW FAR YOU ARE FROM EACH MUGWUMP." 110 PRINT 240 GOSUB 1000 250 T=0 260 T=T+1 270 PRINT 275 PRINT 290 PRINT "TURN NO.";T;"WHAT IS YOUR GUESS"; 300 INPUT BY 10 GRID. HOMEBASE IS POSITION 0,0" 40 PRINT "ANY GUESS YOU MAKE MUST BE TWO NUMBERS WITH EACH" 50 PRINT "NUMBER BETWEEN 0 AND 9, INCLUSIVE. FIRST NUMBER" 60 PRINT "IS DISTANCE TO RIGHT OF HOMEBASE AND SECOND NUMBER" 70 PRINT "IS DISTANCE ABOVE HO51 N(J,K)=100: M2=M2+1: PRINT " * "; 355 RETURN 360 N(J,K)=1000: M3=M3+1: PRINT " # "; 365 RETURN 399 N(J,K)=0: PRINT " ";: RETURN 500 PRINT TAB(10);"U.B. LIFE GAME" 505 M2=0: M3=0 510 FOR J=1 TO 5 511 FOR K=1 TO 5 515 N(J,K)=0 516 NEXT K 517 DAYS. THERE";X0$ 1270 PRINT" ";B9;"STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP" 1280 PRINT:PRINT "ARE YOU READY TO ACCEPT COMMAND"; 1300 INPUT I5$:IF I5$<>"YES" THEN 1280 1320 Z4=Q1:Z5=Q2:K3=0:B3=0:S3=0:G5=0:D4=.5*RND(1):Z(Q1,Q2)=G(Q1,Q2) / /" 224 PRINT" ,---' '-------/ /--," 225 PRINT" '----------------'":PRINT 226 PRINT" THE USS ENTERPRISE --- NCC-1701" 227 PRINT:PRINT:PRINT:PRINT:PRINT 260 CLEAR 600 270 Z$=" ),Y(2))=1000 596 GOTO 560 700 PRINT "X,Y":PRINT"XXXXXX";CHR$(13);"$$$$$$";CHR$(13);"&&&&&&"; 701 PRINT CHR$(13);: INPUT Y(B),X(B) 705 IF X(B)<=5 THEN IF X(B)>0 THEN 708 706 GOTO 750 708 IF Y(B)<=5 THEN IF Y(B)>0 THEN 715 710 GOTO 750 715 IF N(X(B),96 THEN B3=1:B9=B9+1 1040 G(I,J)=K3*100+B3*10+FNR(1):NEXT J:NEXT I:IF K9>T9 THEN T9=K9+1 1100 IF B9<>0 THEN 1200 1150 IF G(Q1,Q2)<200 THEN G(Q1,Q2)=G(Q1,Q2)+100:K9=K9+1 1160 B9=1:G(Q1,Q2)=G(Q1,Q2)+10:Q1=FNR(1):Q2=FNR(1) 1200 K7=K9:IF B9<>1 THEN X$="S"NEXT J 519 FOR B=1 TO 2: P1=3: IF B=2 THEN P1=30 520 PRINT "PLAYER";B;" - 3 LIVE PIECES." 535 FOR K1=1 TO 3: GOSUB 700 540 N(X(B),Y(B))=P1: NEXT K1 542 NEXT B 559 GOSUB 90 560 PRINT: GOSUB 50 570 IF M2=0 THEN IF M3=0 THEN 574 571 IF M3=0 THEN B=1:NR(R)=INT(RND(R)*7.98+1.01) 490 Q1=FNR(1):Q2=FNR(1):S1=FNR(1):S2=FNR(1) 530 FOR I=1 TO 9:C(I,1)=0:C(I,2)=0:NEXT I 540 C(3,1)=-1:C(2,1)=-1:C(4,1)=-1:C(4,2)=-1:C(5,2)=-1:C(6,2)=-1 600 C(1,2)=1:C(2,2)=1:C(6,1)=1:C(7,1)=1:C(8,1)=1:C(8,2)=1:C(9,2)=1 670 FO " 330 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8) 370 T=INT(RND(1)*20+20)*100:T0=T:T9=25+INT(RND(1)*10):D0=0:E=3000:E0=E 440 P=10:P0=P:S9=200:S=0:B9=0:K9=0:X$="":X0$=" IS " 470 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2) 475 DEF FY(B))<>0 THEN 750 720 IF B=1 THEN RETURN 725 IF X(1)=X(2) THEN IF Y(1)=Y(2) THEN 740 730 RETURN 740 PRINT "SAME COORD. SET TO 0" 741 N(X(B)+1,Y(B)+1)=0: B=99: RETURN 750 PRINT "ILLEGAL COORDS. RETYPE": GOTO 700 999 END :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;"10 REM **** 220 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 221 PRINT" ,------*------," 222 PRINT" ,------------- '--- ------'" 223 PRINT" '-------- --' GOTO 575 572 IF M2=0 THEN B=2: GOTO 575 573 GOTO 580 574 PRINT: PRINT "A DRAW":STOP 575 PRINT: PRINT "PLAYER";B;"IS THE WINNER": STOP 580 FOR B=1 TO 2: PRINT: PRINT "PLAYER";B;: GOSUB 700 581 IF B=99 THEN 560 582 NEXT B 586 N(X(1),Y(1))=100: N(X(2R I=1 TO 8:D(I)=0:NEXT I 710 A1$="NAVSRSLRSPHATORSHEDAMCOMXXX" 820 FOR I=1 TO 8:FOR J=1 TO 8:K3=0:Z(I,J)=0:R1=RND(1) 850 IF R1>.98 THEN K3=3:K9=K9+3:GOTO 980 860 IF R1>.95 THEN K3=2:K9=K9+2:GOTO 980 870 IF R1>.8 THEN K3=1:K9=K9+1 980 B3=0:IF RND(1)>. 1390 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 1600 1430 GOSUB 9030:PRINT:IF T0<>T THEN 1490 1460 PRINT"YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED" 1470 PRINT"IN THE GALACTIC QUADRANT, '";G2$;"'.":GOTO 1500 1490 PRINT"NOW ENTERING ";G2$;" QUADRANT . . S1=INT(S1-X1):S2=INT(S2-X2):PRINT"WARP ENGINES SHUT DOWN AT "; 3350 PRINT"SECTOR";S1;",";S2;"DUE TO BAD NAVAGATION":GOTO 3370 3360 NEXT I:S1=INT(S1):S2=INT(S2) 3370 A$="<*>":Z1=INT(S1):Z2=INT(S2):GOSUB 8670:GOSUB 3910:T8=1 3430 IF W1<1 THEN T8=.1*INT(11990 2470 PRINT"WARP ENGINES ARE DAMAGED. MAXIUM SPEED = WARP 0.2":GOTO 1990 2490 N=INT(W1*8+.5):IF E-N>=0 THEN 2590 2500 PRINT"ENGINEERING REPORTS 'INSUFFICIENT ENERGY AVAILABLE" 2510 PRINT" FOR MANEUVERING AT WARP";W1;"!'" 2 B3<1 THEN 1910 1880 GOSUB 8590:A$=">!<":Z1=R1:B4=R1:Z2=R2:B5=R2:GOSUB 8670 1910 FOR I=1 TO S3:GOSUB 8590:A$=" * ":Z1=R1:Z2=R2:GOSUB 8670:NEXT I 1980 GOSUB 6430 1990 IF S+E>10 THEN IF E>10 OR D(7)=0 THEN 2060 2020 PRINT:PRINT"** FATAL ERROR ** YOU'VL REPORT: "; 2960 GOSUB 8790:PRINT G2$;" DAMAGED":PRINT:GOTO 3070 3000 D(R1)=D(R1)+RND(1)*3+1:PRINT"DAMAGE CONTROL REPORT: "; 3030 GOSUB 8790:PRINT G2$;" STATE OF REPAIR IMPROVED":PRINT 3070 A$=" ":Z1=INT(S1):Z2=INT(S2):GOSUB 8670 3110 X1=C(C1,1)+N LIBRARY-COMPUTER)" 2260 PRINT" XXX (TO RESIGN YOUR COMMAND)":PRINT:GOTO 1990 2300 INPUT "COURSE (0-9)";C1:IF C1=9 THEN C1=1 2310 IF C1>=1 AND C1<9 THEN 2350 2330 PRINT" LT. SULU REPORTS, 'INCORRECT COURSE DATA, SIR!'":GOTO 1990 2350 X$="8":IF D(." 1500 PRINT:K3=INT(G(Q1,Q2)*.01):B3=INT(G(Q1,Q2)*.1)-10*K3 1540 S3=G(Q1,Q2)-100*K3-10*B3:IF K3=0 THEN 1590 1560 PRINT"COMBAT AREA CONDITION RED":IF S>200 THEN 1590 1580 PRINT" SHIELDS DANGEROUSLY LOW" 1590 FOR I=1 TO 3:K(I,1)=0:K(I,2)=0:NEXT K(I,2):GOSUB 8670:GOSUB 8590 2660 K(I,1)=Z1:K(I,2)=Z2:A$="+K+":GOSUB 8670 2700 NEXT I:GOSUB 6000:D1=0:D6=W1:IF W1>=1 THEN D6=1 2770 FOR I=1 TO 8:IF D(I)>=0 THEN 2880 2790 D(I)=D(I)+D6:IF D(I)>-.1 AND D(I)<0 THEN D(I)=-.1:GOTO 2880 2800 IF D(I)<0 THEN 530 IF S=9 OR S2<1 OR S2>=9 THEN 3500 3240 S8=INT(S1)*24+INT(S2)*3-26:IF MID$(Q$,S8,2)=" "THEN 3360 3320 1)<0 THEN X$="0.2" 2360 PRINT"WARP FACTOR (0-";X$;")";:INPUT W1:IF D(1)<0 AND W1>.2 THEN 2470 2380 IF W1>0 AND W1<=8 THEN 2490 2390 IF W1=0 THEN 1990 2420 PRINT" CHIEF ENGINEER SCOTT REPORTS 'THE ENGINES WON'T TAKE"; 2430 PRINT" WARP ";W1;"!'":GOTO I 1600 FOR I=1 TO 3:K(I,3)=0:NEXT I:Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17) 1680 A$="<*>":Z1=S1:Z2=S2:GOSUB 8670:IF K3<1 THEN 1820 1720 FOR I=1 TO K3:GOSUB 8590:A$="+K+":Z1=R1:Z2=R2 1780 GOSUB 8670:K(I,1)=R1:K(I,2)=R2:K(I,3)=S9*(.5+RND(1)):NEXT I 1820 IF2880 2810 IF D1<>1 THEN D1=1:PRINT"DAMAGE CONTROL REPORT: "; 2840 PRINT TAB(8);:R1=I:GOSUB 8790:PRINT G2$;" REPAIR COMPLETED." 2880 NEXT I:IF RND(1)>.2 THEN 3070 2910 R1=FNR(1):IF RND(1)>=.6 THEN 3000 2930 D(R1)=D(R1)-(RND(1)*5+1):PRINT"DAMAGE CONTRO0 PRINT" LRS (FOR LONG RANGE SENSOR SCAN)" 2210 PRINT" PHA (TO FIRE PHASERS)" 2220 PRINT" TOR (TO FIRE PHOTON TORPEDOES)" 2230 PRINT" SHE (TO RAISE OR LOWER SHIELDS)" 2240 PRINT" DAM (FOR DAMAGE CONTROL REPORTS)" 2250 PRINT" COM (TO CALL OFOR I=1 TO 9:IF LEFT$(A$,3)<>MID$(A1$,3*I-2,3) THEN 2160 2140 ON I GOTO 2300,1980,4000,4260,4700,5530,5690,7290,6270 2160 NEXT I:PRINT"ENTER ONE OF THE FOLLOWING:" 2180 PRINT" NAV (TO SET COURSE)" 2190 PRINT" SRS (FOR SHORT RANGE SENSOR SCAN)" 2200*W1) 3450 T=T+T8:IF T>T0+T9 THEN 6220 3480 GOTO 1980 3500 X=8*Q1+X+N*X1:Y=8*Q2+Y+N*X2:Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8) 3550 S2=INT(Y-Q2*8):IF S1=0 THEN Q1=Q1-1:S1=8 3590 IF S2=0 THEN Q2=Q2-1:S2=8 3620 X5=0:IF Q1<1 THEN X5=1:Q1=1:S1=1 3670 IF ND REVIEWING YOUR RECORD TO CONSIDER" 5410 PRINT"COURT MARTIAL!":D0=0 5430 Z1=X:Z2=Y:A$=" ":GOSUB 8670 5470 G(Q1,Q2)=K3*100+B3*10+S3:Z(Q1,Q2)=G(Q1,Q2):GOSUB 6000:GOTO 1990 5490 PRINT"TORPEDO MISSED":GOSUB 6000:GOTO 1990 5530 IF D(7)<0 THEN PRINT "SHINING)":GOTO 4670 4580 K3=K3-1:K9=K9-1:Z1=K(I,1):Z2=K(I,2):A$=" ":GOSUB 8670 4650 K(I,3)=0:G(Q1,Q2)=G(Q1,Q2)-100:Z(Q1,Q2)=G(Q1,Q2):IF K9<=0 THEN 6370 4670 NEXT I:GOSUB 6000:GOTO 1990 4700 IF P<=0 THEN PRINT"ALL PHOTON TORPEDOES EXPENDED":GOTO 1990 4+1:GOSUB 3910:GOTO 1320 3910 E=E-N-10:IF E>=0 THEN RETURN 3930 PRINT"SHIELD CONTROL SUPPLIES ENERGY TO COMPLETE THE MANEUVER." 3940 S=S+E:E=0:IFS<=0 THEN S=0 3980 RETURN 4000 IF D(3)<0 THEN PRINT"LONG RANGE SENSORS ARE INOPERABLE":GOTO 1990 4030 PRI 5180 NEXT I:I=3 5190 K(I,3)=0:GOTO 5430 5210 A$=" * ":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 5280 5260 PRINT"STAR AT";X3;",";Y3;"ABSORBED TORPEDO ENERGY.":GOSUB 6000:GOTO 1990 5280 A$=">!<":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 4760 5330 PRINT"*** STARBASE D4370 INPUT"NUMBER OF UNITS TO FIRE";X:IFX<=0 THEN 1990 4400 IF E-X<0 THEN 4360 4410 E=E-X:IF D(7)<0 THEN X=X*RND(1) 4450 H1=INT(X/K3):FOR I=1 TO 3:IF K(I,3)<=0 THEN 4670 4480 H=INT((H1/FND(0))*(RND(1)+2)):IFH>.15*K(I,3)THEN 4530 4500 PRINT"SENSORS SHOQ1>8 THEN X5=1:Q1=8:S1=8 3710 IF Q2<1 THEN X5=1:Q2=1:S2=1 3750 IF Q2>8 THEN X5=1:Q2=8:S2=8 3790 IF X5=0 THEN 3860 3800 PRINT"LT. UHURA REPORTS MESSAGE FROM STARFLEET COMMAND:" 3810 PRINT" 'PERMISSION TO ATTEMPT CROSSING OF GALACTIC PERIMETER" 3820 P=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):E=E-2:P=P-1 4860 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):X=S1:Y=S2 4910 PRINT"TORPEDO TRACK:" 4920 X=X+X1:Y=Y+X2:X3=INT(X+.5):Y3=INT(Y+.5) 4960 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 5490 5000 PRINT" 730 IF D(5)<0 THEN PRINT"PHOTON TUBES ARE NOT OPERATIONAL":GOTO 1990 4760 INPUT"PHOTON TORPEDO COURSE (1-9)";C1:IF C1=9 THEN C1=1 4780 IF C1>=1 AND C1<9 THEN 4850 4790 PRINT"ENSIGN CHEKOV REPORTS, 'INCORRECT COURSE DATA, SIR!'" 4800 GOTO 1990 4850 X1NT"LONG RANGE SCAN FOR QUADRANT";Q1;",";Q2 4040 O1$="-------------------":PRINT O1$ 4060 FOR I=Q1-1 TO Q1+1:N(1)=-1:N(2)=-2:N(3)=-3:FOR J=Q2-1 TO Q2+1 4120 IF I>0 AND I<9 AND J>0 AND J<9 THEN N(J-Q2+2)=G(I,J):Z(I,J)=G(I,J) 4180 NEXT J:FOR L=1 TO 3:PRINESTROYED ***":B3=B3-1:B9=B9-1 5360 IF B9>0 OR K9>T-T0-T9 THEN 5400 5370 PRINT"THAT DOES IT, CAPTAIN!! YOU ARE HEREBY RELIEVED OF COMMAND" 5380 PRINT"AND SENTENCED TO 99 STARDATES AT HARD LABOR ON CYGNUS 12!!" 5390 GOTO 6270 5400 PRINT"STARFLEET COMMAW NO DAMAGE TO ENEMY AT ";K(I,1);",";K(I,2):GOTO 4670 4530 K(I,3)=K(I,3)-H:PRINT H;"UNIT HIT ON KLINGON AT SECTOR";K(I,1);","; 4550 PRINT K(I,2):IF K(I,3)<=0 THEN PRINT"*** KLINGON DESTROYED ***":GOTO 4580 4560 PRINT" (SENSORS SHOW";K(I,3);"UNITS REMARINT" IS HEREBY *DENIED*. SHUT DOWN YOUR ENGINES.'" 3830 PRINT"CHIEF ENGINEER SCOTT REPORTS 'WARP ENGINES SHUT DOWN" 3840 PRINT" AT SECTOR";S1;",";S2;"OF QUADRANT";Q1;",";Q2;".'" 3850 IF T>T0+T9 THEN 6220 3860 IF 8*Q1+Q2=8*Q4+Q5 THEN 3370 3870 T=T ";X3;",";Y3:A$=" ":Z1=X:Z2=Y:GOSUB 8830 5050 IF Z3<>0 THEN 4920 5060 A$="+K+":Z1=X:Z2=Y:GOSUB 8830:IF Z3=0 THEN 5210 5110 PRINT"*** KLINGON DESTROYED ***":K3=K3-1:K9=K9-1:IFK9<=0 THEN 6370 5150 FOR I=1 TO 3:IF X3=K(I,1) AND Y3=K(I,2) THEN 5190ORTS 'SENSORS SHOW NO ENEMY SHIPS" 4280 PRINT" IN THIS QUADRANT'":GOTO 1990 4330 IF D(8)<0 THEN PRINT"COMPUTER FAILURE HAMPERS ACCURACY" 4350 PRINT"PHASERS LOCKED ON TARGET; "; 4360 PRINT"ENERGY AVAILABLE =";E;"UNITS" T": ";:IF N(L)<0 THEN PRINT"*** ";:GOTO 4230 4210 PRINT RIGHT$(STR$(N(L)+1000),3);" "; 4230 NEXT L:PRINT":":PRINT O1$:NEXT I:GOTO 1990 4260 IF D(4)<0 THEN PRINT"PHASERS INOPERATIVE":GOTO 1990 4265 IF K3>0 THEN 4330 4270 PRINT"SCIENCE OFFICER SPOCK REPIELD CONTROL INOPERABLE":GOTO 1990 5560 PRINT "ENERGY AVAILABLE =";E+S;:INPUT "NUMBER OF UNITS TO SHIELDS";X 5580 IF X<0 OR S=X THEN PRINT"":GOTO 1990 5590 IF X<=E+S THEN 5630 5600 PRINT"SHIELD CONTROL REPORTS 'THIS IS NOT THE FEDERIC RECORD" 7372 PRINT" 1 = STATUS REPORT" 7374 PRINT" 2 = PHOTON TORPEDO DATA" 7376 PRINT" 3 = STARBASE NAV DATA" 7378 PRINT" 4 = DIRECTION/DISTANCE CALCULATOR" 7380 PRINT" 5 = GALAXY 'REGION NAME' MAP":PRINT:GOTO 7320 7400 H8=0:G5=1:PRINT"DESTROYED.":PRINT 6400 PRINT"YOUR EFFICIENCY RATING IS";1000*(K7/(T-T0))^2:GOTO 6290 6430 FOR I=S1-1 TO S1+1:FOR J=S2-1 TO S2+1 6450 IF INT(I+.5)<1 OR INT(I+.5)>8 OR INT(J+.5)<1 OR INT(J+.5)>8 THEN 6540 6490 A$=">!<":Z1=I:Z2=J:GOSUB 8830:IF Z3=1 THEN 6:";.01*INT(100*D3);"STARDATES" 5840 INPUT"WILL YOU AUTHORIZE THE REPAIR ORDER (Y/N)";A$ 5860 IF A$<>"Y" THEN 1990 5870 FOR I=1 TO 8:IF D(I)<0 THEN D(I)=0 5890 NEXT I:T=T+D3+.1 5910 PRINT:PRINT"DEVICE STATE OF REPAIR":FOR R1=1 TO 8 5920 GO PHOTON TORPEDOES ";INT(P):GOTO 7260 7120 PRINT" TOTAL ENERGY ";INT(E+S):GOTO 7260 7180 PRINT" SHIELDS ";INT(S):GOTO 7260 7240 PRINT" KLINGONS REMAINING";INT(K9) 7260 NEXT I:PRINT O1$:RETURN 7290 IF D(8)<0 THEATION "; 6250 PRINT"WILL BE CONQUERED":GOTO 6220 6270 PRINT "THERE WERE";K9;"KLINGON BATTLE CRUISERS LEFT AT" 6280 PRINT"THE END OF YOUR MISSION." 6290 PRINT:PRINT:IF B9=0 THEN 6360 6310 PRINT"THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER" 63ATION TREASURY.'" 5610 PRINT"":GOTO 1990 5630 E=E+S-X:S=X:PRINT"DEFLECTOR CONTROL ROOM REPORT:" 5660 PRINT" 'SHIELDS NOW AT";INT(S);"UNITS PER YOUR COMMAND.'":GOTO 1990 5690 IF D(6)>=0 THEN 5910 5700 PRINT"DAMAGE CONTROL REPORT NOINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":PRINT:RETURN 6770 O1$="---------------------------------":PRINT O1$:FOR I=1 TO 8 6820 FOR J=(I-1)*24+1 TO (I-1)*24+22 STEP 3:PRINT " ";MID$(Q$,J,3);:NEXT J 6830 ON I GOTO 6850,6900,6960,7020,7070,7120,7180,580 6540 NEXT J:NEXT I:D0=0:GOTO 6650 6580 D0=1:C$="DOCKED":E=E0:P=P0 6620 PRINT"SHIELDS DROPPED FOR DOCKING PURPOSES":S=0:GOTO 6720 6650 IF K3>0 THEN C$="*RED*":GOTO 6720 6660 C$="GREEN":IF E=0 THEN 6770 6730 PRSUB 8790:PRINT G2$;LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*.01 5950 NEXT R1:PRINT:IF D0<>0 THEN 5720 5980 GOTO 1990 6000 IF K3<=0 THEN RETURN 6010 IF D0<>0 THEN PRINT "STARBASE SHIELDS PROTECT THE ENTERPRISE":RETURN 6040 FOR I=1 TO 3:IF K(I,3)<=0 THEN 6N PRINT "COMPUTER DISABLED":GOTO 1990 7320 INPUT"COMPUTER ACTIVE AND AWAITING COMMAND";A:IF A<0 THEN 1990 7350 PRINT:H8=1:ON A+1 GOTO 7540,7900,8070,8500,8150,7400 7360 PRINT"FUNCTIONS AVAILABLE FROM LIBRARY-COMPUTER:" 7370 PRINT" 0 = CUMULATIVE GALT20 PRINT"FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER," 6330 INPUT"LET HIM STEP FORWARD AND ENTER 'AYE'";A$:IF A$="AYE"THEN 10 6360 END 6370 PRINT"CONGRULATION, CAPTAIN! THE LAST KLINGON BATTLE CRUISER" 6380 PRINT"MENACING THE FEDERATION HAS BEEN T AVAILABLE":IF D0=0 THEN 1990 5720 D3=0:FOR I=1 TO 8:IF D(I)<0 THEN D3=D3+.1 5760 NEXT I:IF D3=0 THEN 1990 5780 PRINT:D3=D3+D4:IF D3>=1 THEN D3=.9 5810 PRINT"TECHNICIANS STANDING BY TO EFFECT REPAIRS TO YOUR SHIP;" 5820 PRINT"ESTIMATED TIME TO REPAIR7240 6850 PRINT" STARDATE ";INT(T*10)*.1:GOTO 7260 6900 PRINT" CONDITION ";C$:GOTO 7260 6960 PRINT" QUADRANT ";Q1;",";Q2:GOTO 7260 7020 PRINT" SECTOR ";S1;",";S2:GOTO 7260 7070 PRINT" =.02 THEN 6200 6140 R1=FNR(1):D(R1)=D(R1)-H/S-.5*RND(1):GOSUB 8790 6170 PRINT"DAMAGE CONTROL REPORTS '";G2$;" DAMAGED BY THE HIT'" 6200 NEXT I:RETURN 6220 PRINT"IT IS STARDATE";T:GOTO 6270 6240 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THE FEDER200 6060 H=INT((K(I,3)/FND(1))*(2+RND(1))):S=S-H:K(I,3)=K(I,3)/(3+RND(0)) 6080 PRINT H;"UNIT HIT ON ENTERPRISE FROM SECTOR";K(I,1);",";K(I,2) 6090 IF S<=0 THEN 6240 6100 PRINT" ":IFH<20 THEN 6200 6120 IF RND(1)>.6ORH/S< THE GALAXY":GOTO 7550 7540 REM 7542 REM 7543 PRINT:PRINT" "; 7544 PRINT"COMPUTER RECORD OF GALAXY FOR QUADRANT";Q1;",";Q2 7546 PRINT 7550 PRINT" 1 2 3 4 5 6 7 8" 7560 O1$=" ----- -$=G2$+" III":RETURN 9260 G2$=G2$+" IV":RETURN 9999 END  RETURN 9230 G2$=G2$+" I":RETURN 9240 G2$=G2$+" II":RETURN 9250 G2EN ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260 9220 RETURN 9230 G2$=G2$+" I":RETURN 9240 G2$=G2$+" II":RETURN 9250 G2 1990 8590 R1=FNR(1):R2=FNR(1):A$=" ":Z1=R1:Z2=R2:GOSUB 8830:IF Z3=0 THEN 8590 8600 RETURN 8670 S8=INT(Z2-.5)*3+INT(Z1-.5)*24+1 8675 IF LEN(A$)<>3 THEN PRINT"ERROR":STOP 8680 IF S8=1 THEN Q$=A$+RIGHT$(Q$,189):RETURN 8690 IF S8=190 THEN Q$=LEFT$(Q$,0 PRINT"MISSION MUST BE COMPLETED IN";.1*INT((T0+T9-T)*10);"STARDATES" 7970 X$="S":IF B9<2 THEN X$="":IF B9<1 THEN 8010 7980 PRINT"THE FEDERATION IS MAINTAINING";B9;"STARBASE";X$;" IN THE GALAXY" 7990 GOTO 5690 8010 PRINT"YOUR STUPIDITY HAS LEFT YOU ONTAIR":GOTO 9210 9100 G2$="SAGITTARIUS":GOTO 9210 9110 G2$="POLLUX":GOTO 9210 9120 ON Z4 GOTO 9130,9140,9150,9160,9170,9180,9190,9200 9130 G2$="SIRIUS":GOTO 9210 9140 G2$="DENEB":GOTO 9210 9150 G2$="CAPELLA":GOTO 9210 9160 G2$="BETELGEUSE":GOTO 9210 ";C1+(ABS(A)/ABS(X)):GOTO 8460 8350 IF A>0 THEN C1=3:GOTO 8420 8360 IF X<>0 THEN C1=5:GOTO 8290 8410 C1=7 8420 IF ABS(A)>=ABS(X) THEN 8450 8430 PRINT "DIRECTION =";C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)):GOTO 8460 8450 PRINT"DIRECTION =";C1+(ABS(X)/ABS(---- ----- ----- ----- ----- ----- -----" 7570 PRINT O1$:FOR I=1 TO 8:PRINT I;:IF H8=0 THEN 7740 7630 FOR J=1 TO 8:PRINT " ";:IF Z(I,J)=0 THEN PRINT "***";:GOTO 7720 7700 PRINT RIGHT$(STR$(Z(I,J)+1000),3); 7720 NEXT J:GOTO 7850 7740 Z4=I:Z5=1:GOSUB OL":RETURN 8800 G2$="PHOTON TUBES":RETURN 8802 G2$="DAMAGE CONTROL":RETURN 8804 G2$="SHIELD CONTROL":RETURN 8806 G2$="LIBRARY-COMPUTER":RETURN 8830 Z1=INT(Z1+.5):Z2=INT(Z2+.5):S8=(Z2-1)*3+(Z1-1)*24+1:Z3=0 8890 IF MID$(Q$,S8,3)<>A$ THEN RETURN 8900 Z189)+A$:RETURN 8700 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,190-S8):RETURN 8790 ON R1 GOTO 8792,8794,8796,8798,8800,8802,8804,8806 8792 G2$="WARP ENGINES":RETURN 8794 G2$="SHORT RANGE SENSORS":RETURN 8796 G2$="LONG RANGE SENSORS":RETURN 8798 G2$="PHASER CONTR YOUR ON IN" 8020 PRINT" THE GALAXY -- YOU HAVE NO STARBASES LEFT!":GOTO 5690 8070 IF K3<=0 THEN 4270 8080 X$="":IF K3>1 THEN X$="S" 8090 PRINT"FROM ENTERPRISE TO KLINGON BATTLE CRUSER";X$ 8100 H8=0:FOR I=1 TO 3:IF K(I,3)<=0 THEN 8480 8110 W1=K(I,1) 9170 G2$="ALDEBARAN":GOTO 9210 9180 G2$="REGULUS":GOTO 9210 9190 G2$="ARCTURUS":GOTO 9210 9200 G2$="SPICA" 9210 IF G5<>1 THEN ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260 9220 RETURN 9230 G2$=G2$+" I":RETURN 9240 G2$=G2$+" II":RETURN 9250 G2A)) 8460 PRINT "DISTANCE =";SQR(X^2+A^2):IF H8=1 THEN 1990 8480 NEXT I:GOTO 1990 8500 IF B3<>0 THEN PRINT"FROM ENTERPRISE TO STARBASE:":W1=B4:X=B5:GOT8120 8510 PRINT"MR. SPOCK REPORTS, 'SENSORS SHOW NO STARBASES IN THIS"; 8520 PRINT" QUADRANT.'":GOTO9030:J0=INT(15-.5*LEN(G2$)):PRINT TAB(J0);G2$; 7800 Z5=5:GOSUB 9030:J0=INT(39-.5*LEN(G2$)):PRINT TAB(J0);G2$; 7850 PRINT:PRINT O1$:NEXT I:PRINT:GOTO 1990 7900 PRINT " STATUS REPORT:":X$="":IF K9>1 THEN X$="S" 7940 PRINT"KLINGON";X$;" LEFT: ";K9 7963=1:RETURN 9030 IF Z5<=4 THEN ON Z4 GOTO 9040,9050,9060,9070,9080,9090,9100,9110 9035 GOTO 9120 9040 G2$="ANTARES":GOTO 9210 9050 G2$="RIGEL":GOTO 9210 9060 G2$="PROCYON":GOTO 9210 9070 G2$="VEGA":GOTO 9210 9080 G2$="CANOPUS":GOTO 9210 9090 G2$="AL 8220 X=X-A:A=C1-W1:IF X<0 THEN 8350 8250 IF A<0 THEN 8410 8260 IF X>0 THEN 8280 8270 IF A=0 THEN C1=5:GOTO 8290 8280 C1=1 8290 IF ABS(A)<=ABS(X) THEN 8330 8310 PRINT"DIRECTION =";C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)):GOTO 8460 8330 PRINT"DIRECTION =:X=K(I,2) 8120 C1=S1:A=S2:GOTO 8220 8150 PRINT"DIRECTION/DISTANCE CALCULATOR:" 8160 PRINT"YOU ARE AT QUADRANT ";Q1;",";Q2;" SECTOR ";S1;",";S2 8170 PRINT"PLEASE ENTER":INPUT" INITIAL COORDINATES (X,Y)";C1,A 8200 INPUT" FINAL COORDINATES (X,Y)";W1,X 10 REM INSTRUCTIONS FOR "SUPER STARTREK" MAR 5, 1978 20 FOR I=1 TO 12:PRINT:NEXT I 21 PRINT TAB(10);"*************************************" 22 PRINT TAB(10);"* *" 23 PRINT TAB(10);"* T" ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY " 740 PRINT" ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO" 750 PRINT" DEPLETE THEIR SHIELD POWER. (REMEMBER, KLINGONS HAVE" 760 PRINT" PHASERS TOO!)" 770 PRINT 780 PRINT"\ ..." 450 PRINT" . . ." 460 PRINT" VALUES MAY APPROACH 9.0, WHICH 6 7 8" 470 PRINT" ITSELF IS EQUIVALENT TO 1.0" 480 PRINT" COURSETRUCTIONS FOR 'SUPER STAR TREK'" 100 PRINT 110 PRINT"1. WHEN YOU SEE \COMMAND ?\ PRINTED, ENTER ONE OF THE LEGAL" 120 PRINT" COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)." 130 PRINT"2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHCONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE" 660 PRINT" OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)" 670 PRINT" THE SCAN IS CODED IN THE FORM \###\, WHERE TH UNITS DIGIT" 680 PRINT" IS THE NUMBER OF STARS, THE TENS DIGIT IS ON OF" 340 PRINT"PLANETS." 360 PRINT 370 PRINT" YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS CAPTAIN" 380 PRINT"OF THE STARSHIP ENTERPRISE:" 385 PRINT 390 PRINT"\NAV\ COMMAND = WARP ENGINE CONTROL --" 400 PRINT" COURSE IS IN A CIRCULA*" 30 PRINT TAB(10);"* * * SUPER STAR TREK * * *" 31 PRINT TAB(10);"* *" 32 PRINT TAB(10);"* *" 35 PRINT TAB(10);"*************************************" 36 FOR I=1 TO 8:PRIN SCAN" 550 PRINT" SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT." 555 PRINT 560 PRINT" SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:" 570 PRINT" <*> = YOUR STARSHIP'S POSITION" 580 PRINT" +K+ = KLINGON BATTLE CRUISER" 590 PRINT" " 490 PRINT" ONE WARP FACTOR IS THE SIZE OF " 500 PRINT" ONE QUADTANT. THEREFORE, TO GET" 510 PRINT" FROM QUADRANT 6,5 TO 5,5, YOU WOULD" 520 PRINT" USE COURSE 3, WARP FACTOR 1." 530 PRINT 540 PRINT"\SRS\ COMMAND = SHORT RANGE SENSORORT" 140 PRINT" LIST OF THE LEGAL COMMANDS PRINTED OUT." 150 PRINT"3. SOME COMMANDS REQUIRE YOU TO ENTER DATA (FOR EXAMPLE, THE" 160 PRINT" 'NAV' COMMAND COMES BACK WITH 'COURSE (1-9) ?'.) IF YOU" 170 PRINT" TYPE IN ILLEGAL DATA (LIKE NEGTHE NUMBER OF" 690 PRINT" STARBASES, AND THE HUNDRESDS DIGIT IS THE NUMBER OF" 700 PRINT" KLINGONS." 705 PRINT 706 PRINT" EXAMPLE - 207 = 2 KLINGONS, NO STARBASES, & 7 STARS." 710 PRINT 720 PRINT"\PHA\ COMMAND = PHASER CONTROL." 730 PRINR NUMERICAL 4 3 2" 410 PRINT" VECTOR ARRANGEMENT AS SHOWN . . ." 420 PRINT" INTEGER AND REAL VALUES MAY BE ..." 430 PRINT" USED. (THUS COURSE 1.5 IS HALF- 5 ---*--- 1" 440 PRINT" WAY BETWEEN 1 AND 2 T:NEXT I 40 INPUT "DO YOU NEED INSTRUCTIONS (Y/N)";K$:IF K$="N" THEN 2000 44 PRINT 50 PRINT "NOTE: YOU MUST BE RUNNING 40K CP/M TO RUN STARTREK." 55 PRINT " THIS MEANS THAT BASIC MUST HAVE ABOUT 18K OF FREE MEMORY." 60 PRINT:PRINT 90 PRINT" INS >!< = FEDERATION STARBASE (REFUEL/REPAIR/RE-ARM HERE!)" 600 PRINT" * = STAR" 605 PRINT 610 PRINT" A CONDENSED 'STATUS REPORT' WILL ALSO BE PRESENTED." 620 PRINT 640 PRINT"\LRS\ COMMAND = LONG RANGE SENSOR SCAN" 650 PRINT" SHOWS ASSIGNED A STARTING POINT SOMEWHERE IN THE" 310 PRINT"GALAXY TO BEGIN A TOUR OF DUTY AS COMMANDER OF THE STARSHIP" 320 PRINT"\ENTERPRISE\; YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF" 330 PRINT"KLINGON WARWHIPS WHICH ARE MENACING THE UNITED FEDERATIATIVE NUMBERS), THAT COMMAND" 180 PRINT" WILL BE ABORTED" 190 PRINT 270 PRINT" THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID," 280 PRINT"AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID." 290 PRINT 300 PRINT" YOU WILL BETOR\ COMMAND = PHOTON TORPEDO CONTROL" 790 PRINT" TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL" 800 PRINT" IF YOU HIT THE KLINGON VESSEL, HE IS DESTROYED AND" 810 PRINT" CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO"1)*2*P: Q=INT(A*R1): W=INT(B*R1) 260 PRINT "RADIANS FROM X AXIS =";A;" FROM Z AXIS =";B 280 P1=100000!*RND(1)+RND(1): X=SIN(B)*COS(A)*P1: Y=SIN(B)*SIN(A)*P1 290 Z=COS(B)*P1 340 PRINT "TARGET SIGHTED: APPROX COORDINATES X=";X;" Y=";Y;" Z=";Z 345 R= PRINT "...CHAINING TO STARTREK..." 2020 LOAD "STARTREK.BAS",R 9999 END ERRED TO IN THE GAME." 2000 PRINT:PRINT:PRINT 2010TS THE NAMES OF THE SIXTEEN MAJOR " 1150 PRINT" GALACTIC REGIONS REFERRED TO IN THE GAME." 2000 PRINT:PRINT:PRINT 2010 THAT THE STATUS DISPLAY TOTAL ENERGY INCLUDES SHIELD ENERGY" 900 PRINT 910 PRINT"\DAM\ COMMAND = DAMMAGE CONTROL REPORT" 920 PRINT" GIVES THE STATE OF REPAIR OF ALL DEVICES. WHERE A NEGATIVE" 930 PRINT" 'STATE OF REPAIR' SHOWS THAT THE DEVICCURATE A SHOT YOU" 130 PRINT "ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD" 140 PRINT "THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION" 150 PRINT "OF THE TARGET IN THREE DIMENSIONAL RECTANGULAR COORDINATES," 160 PRINT "THE APPROXIMATE NUMBET" THIS OPTION GIVES DIRECTION AND DISTANCE TO ANY " 1090 PRINT" STARBASE WITHIN YOUR QUADRANT" 1100 PRINT" OPTION 4 = DIRECTION/DISTANCE CALCULATOR" 1110 PRINT" THIS OPTION ALLOWS YOU TO ENTER COORDINATES FOR" 1120 PRINT" 820 PRINT" HIS PHASER FIRE. IN EITHER CASE, YOU ARE ALSO SUBJECT TO " 825 PRINT" THE PHASER FIRE OF ALL OTHER KLINGONS IN THE QUADRANT." 830 PRINT 835 PRINT" THE LIBRARY-COMPUTER (\COM\ COMMAND) HAS AN OPTION TO " 840 PRINT" COMPUTE E IS TEMPORARILY" 940 PRINT" DAMAGED." 950 PRINT 960 PRINT"\COM\ COMMAND = LIBRARY-COMPUTER" 970 PRINT" THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:" 980 PRINT" OPTION 0 = CUMULATIVE GALACTIC RECORD" 990 PRINT" THIS OPTION SHOWES COMR OF DEGREES FROM THE X AND Z" 170 PRINT "AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET." 180 PRINT "YOU WILL THEN PROCEEED TO SHOOT AT THE TARGET UNTIL IT IS" 190 PRINT "DESTROYED!": PRINT: PRINT "GOOD LUCK!!": PRINT: PRINT 220 A=RND(1)*2*P: B=RND( DIRECTION/DISTANCE CALCULATIONS" 1130 PRINT" OPTION 5 = CALACTIC /REGION NAME/ MAP" 1140 PRINT" THIS OPTION PRINTS THE NAMES OF THE SIXTEEN MAJOR " 1150 PRINT" GALACTIC REGIONS REFERRED TO IN THE GAME." 2000 PRINT:PRINT:PRINT 2010TORPEDO TRAJECTORY FOR YOU (OPTION 2)" 850 PRINT 860 PRINT"\SHE\ COMMAND = SHIELD CONTROL" 870 PRINT" DEFINES THE NUMBER OF ENERGY UNITS TO BE ASSIGNED TO THE" 880 PRINT" SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE" 890 PRINT" 10 PRINT TAB(33);"TARGET" 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT: PRINT: PRINT 100 R=1: R1=57.296: P=3.14159 110 PRINT "YOU ARE THE WEAPONS OFFICER ON THE STARSHIP ENTERPRISE" 120 PRINT "AND THIS IS A TEST TO SEE HOW ACNING IN THE GAME." 1040 PRINT" OPTION 2 = PHOTON TORPEDO DATA" 1050 PRINT" WHICH GIVES DIRECTIONS AND DISTANCE FROM THE ENTERPRISE" 1060 PRINT" TO ALL KLINGONS IN YOUR QUADRANT" 1070 PRINT" OPTION 3 = STARBASE NAV DATA" 1080 PRINPUTER MEMORY OF THE RESULTS OF ALL" 1000 PRINT" PREVIOUS SHORT AND LONG RANGE SENSOR SCANS" 1010 PRINT" OPTION 1 = STATUS REPORT" 1020 PRINT" THIS OPTION SHOWS THE NUMBER OF KLINGONS, STARDATES," 1030 PRINT" AND STARBASES REMAIR+1: IF R>5 THEN 390 350 ON R GOTO 355,360,365,370,375 355 P3=INT(P1*.05)*20: GOTO 390 360 P3=INT(P1*.1)*10: GOTO 390 365 P3=INT(P1*.5)*2: GOTO 390 370 P3=INT(P1): GOTO 390 375 P3=P1 390 PRINT " ESTIMATED DISTANCE=";P3 400 PRINT "INPUT ANGLE DE. GO BOTHER SOMEONE ELSE."" STOP 580 REM *** CHECK IF REQUESTED DISK IS BELOW ANOTHER 590 FOR R=1 TO 7 600 FOR C=1 TO 3 610 IF T(R,C)=D THEN 640 620 NEXT C: NEXT R 640 FOR Q=R TO 1 STEP -1 645 IF T(Q,C)=0 THEN 660 650 IF T(Q,C)2 THEN 310 290 PRINT "SORRY, BUT I CAN'T DO THAT JOB FOR YOU.": GOTO 215 310 PRINT "ALL RIGHT, WISE GUY, IF YOU CAN'T PLAY THE GAME RIGHT, I'LL" 320 PRINT "ET";-X2;"KILOMETERS." 740 IF Y2<0 THEN 770 750 PRINT "SHOT TO LEFT OF TARGET";Y2;"KILOMETERS.": GOTO 780 770 PRINT "SHOT TO RIGHT OF TARGET";-Y2;"KILOMETERS." 780 IF Z2<0 THEN 810 790 PRINT "SHOT ABOVE TARGET";Z2;"KILOMETERS.": GOTO 820 810 PRINT "SH DISK WOULD YOU LIKE TO MOVE";:E=0 500 INPUT D 510 IF (D-3)*(D-5)*(D-7)*(D-9)*(D-11)*(D-13)*(D-15)=0 THEN 580 520 PRINT "ILLEGAL ENTRY... YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15." 530 E=E+1: IF E>1 THEN 560 550 GOTO 500 560 PRINT "STOP WASTING MY TIME10 PRINT TAB(33);"TOWERS" 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 90 PRINT 100 REM*** INITIALIZE 110 DIM T(7,3) 120 E=0 130 FOR D=1 TO 7 140 FOR N=1 TO 3 150 T(D,N)=0 160 NEXT N 170 NEXT D 180 PRINT "TIN(B1)*SIN(A1): Z1=P2*COS(B1) 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2) 520 IF D>20 THEN 670 530 PRINT: PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL": PRINT 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS";D;"KILOMETERS" 570 PRINT: PRINT "MISSIO NEXT, AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH" 365 PRINT "2 DISKS, THEIR CODE NAMES WOULD BE 13 AND 15. WITH 3 DISKS" 370 PRINT "THE CODE NAMES WOULD BE 11, 13 AND 15, ETC. THE NEEDLES" 375 PRINT "ARE NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE OT BELOW TARGET";-Z2;"KILOMETERS." 820 PRINT "APPROX POSITION OF EXPLOSION: X=";X1;" Y=";Y1;" Z=";Z1 830 PRINT " DISTANCE FROM TARGET =";D: PRINT: PRINT: PRINT: GOTO345 999 END OF EXPLOSION: X=";X1;" Y=";Y1;" Z=";Z1 830 PRINT " DISTT Q 670 GOTO 700 680 PRINT "THAT DISK IS BELOW ANOTHER ONE. MAKE ANOTHER CHOICE." 690 GOTO 480 700 E=0 705 INPUT "PLACE DISK ON WHICH NEEDLE";N 730 IF (N-1)*(N-2)*(N-3)=0 THEN 800 735 E=E+1 740 IF E>1 THEN 780 750 PRINT "I'LL ASSUME YOU HIT THE W=1 THEN 720 670 IF J=2 THEN 790 680 IF J=3 THEN 930 690 NEXT I 700 NEXTJ 710 GOTO 1300 720 IF L(I)<>4 THEN 690 730 PRINT "YOU WIN AS FOLLOWS"; 740 FOR J=1 TO 4 750 LET M=M(I,J) 760 GOSUB 1570 770 NEXT J 780 GOTO 1490 790 IF L(I)<>15 THEN 690 L TRIGGER." 22 PRINT "TYPE '2' TO GIVE UP." 23 PRINT "GO"; 25 N=0 30 INPUT I 31 IF I<>2 THEN 35 32 PRINT " CHICKEN!!!!!" 33 GOTO 72 35 N=N+1 40 IF RND(1)>.833333 THEN 70 45 IF N>10 THEN 80 50 PRINT "- CLICK -" 60 PRINT: GOTO 30 70 PRINT " 7: FOR W=1 TO 3 900 IF T(V,W)=D THEN 930 910 NEXT W: NEXT V 925 REM *** LOCATE EMPTY SPACE ON NEEDLE N 930 FOR U=1 TO 7 940 IF T(U,N)<>0 THEN 970 950 NEXT U 960 U=7: GOTO 980 965 REM *** MOVE DISK AND SET OLD LOCATION TO 0 970 U=U-1 980 T(U,N)=T TYPE 'YES' OR 'NO'."; 490 GOTO 450 500 PRINT " " 510 PRINT "YOUR MOVE"; 520 INPUTJ1 521 IF J1=1 THEN 2770 522 IF J1<>0THEN525 523 GOSUB 2550 524 GOTO500 525 IFJ1<111THEN2750 526 IFJ1>444THEN2750 530 GOSUB 2500 540 LETK1=INT(J1/100) 550 LET J20 FOR V=1 TO T(K,J) 1300 PRINT "*"; 1310 NEXT V 1320 GOTO 1340 1330 PRINT TAB(Z);"*"; 1340 Z=Z+21 1350 NEXT J 1360 PRINT 1370 NEXT K 1380 RETURN 1390 PRINT: PRINT "THANKS FOR THE GAME!": PRINT: END Z);"*"; 1340 Z=Z+21 1350 NEXT J 1360 PRINT RONG KEY THIS TIME. BUT WATCH IT," 760 PRINT "I ONLY ALLOW ONE MISTAKE.": GOTO 705 780 PRINT "I TRIED TO WARN YOU, BUT YOU WOULDN'T LISTEN." 790 PRINT "BYE BYE, BIG SHOT.": STOP 800 FOR R=1 TO 7 810 IF T(R,N)<>0 THEN 840 820 NEXT R 830 GOTO 880 83MACHINE'S MOVES WITH AN (M), AND" 310 PRINT "UNUSED SQUARES WITH A ( )." 311 PRINT 312 PRINT "TO STOP THE PROGRAM RUN, TYPE 1 AS YOUR MOVE." 315 DIM X(64),L(76),M(76,4),Y(16) 320 FOR I = 1 TO 16 330 READ Y(I) 340 NEXT I 350 FOR I=1 TO 76 360 FOR J BANG!!!!! YOU'RE DEAD!" 71 PRINT "CONDOLENCES WILL BE SENT TO YOUR RELATIVES." 72 PRINT:PRINT:PRINT 75 PRINT "...NEXT VICTIM...":GOTO 20 80 PRINT "YOU WIN!!!!!" 85 PRINT "LET SOMEONE ELSE BLOW HIS BRAINS OUT." 90 GOTO 10 99 END (V,W): T(V,W)=0 995 REM *** PRINT OUT CURRENT STATUS 1000 GOSUB 1230 1018 REM *** CHECK IF DONE 1020 M=M+1 1030 FOR R=1 TO 7: FOR C=1 TO 2 1050 IF T(R,C)<>0 THEN 1090 1060 NEXT C: NEXT R 1080 GOTO 1120 1090 IF M<=128 THEN 480 1100 PRINT "SORRY, B=(J1-K1*100) 560 LET K2=INT(J2/10) 570 LET K3= J1 - K1*100 -K2*10 580 LET M=16*K1+4*K2+K3-20 590 IF X(M)=0 THEN 620 600 PRINT "THAT SQUARE IS USED, TRY AGAIN" 610 GOTO 500 620 LET X(M)=1 630 GOSUB 1640 640 FOR J=1 TO 3 650 FOR I=1 TO 76 660 IF J1 PRINT TAB(28);"RUSSIAN ROULETTE" 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3 PRINT:PRINT:PRINT 5 PRINT "THIS IS A GAME OF >>>>>>>>>>RUSSIAN ROULETTE." 10 PRINT:PRINT "HERE IS A REVOLVER." 20 PRINT "TYPE '1' TO SPIN CHAMBER AND PUL5 REM *** CHECK IF DISK TO BE PLACED ON A LARGER ONE 840 IF D2^S-1 THEN 1140 1130 PRINT "CONGRATULATIONS!!" 1140 PRINT "YOU HAVE PERFORMED THE TASK IN";M;"MOVES." 1150 PRINT: PRINT "TRY AGAIN (YES OR NO)";: INPUT A$ 1160 I800 FOR J=1 TO 4 810 LET M=M(I,J) 820 IF X(M)<>0 THEN 860 830 LET X(M)=5 840 PRINT "MACHINE MOVES TO"; 850 GOSUB 1570 860 NEXT J 870 PRINT ", AND WINS AS FOLLOWS" 880 FOR J=1 TO 4 890 LET M=M(I,J) 900 GOSUB 1570 910 NEXT J 920 GOTO 1490 930 IFHEN 2290 2270 PRINT "LET'S SEE YOU GET OUT OF THIS: MACHINE MOVES TO"; 2280 GOTO 2300 2290 PRINT "YOU FOX. JUST IN THE NICK OF TIME, MACHINE MOVES TO"; 2300 LET M=M(I,J) 2310 GOSUB 1570 2320 GOTO 500 2330 NEXT J 2340 PRINT "MACHINE CONCEDES THIS 1860 FOR J=1 TO 4 1870 LET P=P+X(M(I,J)) 1880 NEXT J 1890 NEXT I 1900 IF P<4 THEN 1940 1910 IF P<5 THEN 1970 1920 IF P<9 THEN 1940 1930 IF P<10 THEN 1970 1940 NEXT K 1950 GOSUB 2500 1960 GOTO 1200 1970 LET S=1/8 1980 FOR I=4*K-3 TO 4*K 1990 GOIF L(I)=1/2 THEN 2360 1170 IF L(I)=1+3/8 THEN 2360 1180 NEXT I 1190 GOTO 1830 1200 LET Z = 1 1210 IF X(Y(Z))=0 THEN 1250 1220 LET Z=Z+1 1230 IF Z<>17 THEN 1210 1240 GOTO 1720 1250 LET M=Y(Z) 1260 LET X(M)=5 1270 PRINT "MACHINE MOVES TO"; 1280 G6,40,44,48,52,56,60,64 2160 DATA1,6,11,16,17,22,27,32,33,38,43,48,49,54,59,64 2170 DATA 13,10,7,4,29,26,23,20,45,42,39,36,61,58,55,52 2180 DATA1,21,41,61,2,22,42,62,3,23,43,63,4,24,44,64, 2190 DATA 49,37,25,13,50,38,26,14,51,39,27,15,52,40,28,16 2200 16-(K2-1)*4 1610 LET M=K1*100+K2*10+K3 1620 PRINT M; 1630 RETURN 1640 FOR S=1 TO 76 1650 LET J1 = M(S,1) 1660 LET J2=M(S,2) 1670 LET J3=M(S,3) 1680 LET J4=M(S,4) 1690 LET L(S)=X(J1)+X(J2)+X(J3)+X(J4) 1700 NEXT S 1710 RETURN 1720 FOR I=1 TO 64 L(I)<>3 THEN 690 940 PRINT "NICE TRY MACHINE MOVES TO"; 950 FOR J=1 TO 4 960 LET M=M(I,J) 970 IF X(M)<>0 THEN 1010 980 LET X(M)=5 990 GOSUB 1570 1000 GOTO 500 1010 NEXT J 1020 GOTO 1300 1030 FOR I = 1 TO 76 1040 LET L(I)=X(M(I,1))+X(M(I,2))+X(2,43,44,45,46,47,48,49,50,51,52,53,54,55,56 2070 DATA 57,58,59,60,61,62,63,64, 2080 DATA1,17,33,49,5,21,37,53,9,25,41,57,13,29,45,61 2090 DATA 2,18,34,50,6,22,38,54,10,26,42,58,14,30,46,62 2100 DATA 3,19,35,51,7,23,39,55,11,27,43,59,15,31,47,63, 2110 TO 2370 2000 NEXT I 2010 LET S=0 2020 GOTO 1980 2030 DATA 1,49,52,4,13,61,64,16,22,39,23,38,26,42,27,43 2040 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 2050 DATA 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 2060 DATA 39,40,41,4OSUB 1570 1290 GOTO 500 1300 LET X=X 1310 FOR I=1 TO 76 1320 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1330 LET L=L(I) 1340 IF L<10 THEN 1410 1350 IF L>=11 THEN 1410 1360 IF L>10 THEN 2230 1370 FOR J=1 TO 4 1380 IF X(M(I,J))<>0 THEN 1400 DATA 1,18,35,52,5,22,39,56,9,26,43,60,13,30,47,64 2210 DATA 49,34,19,4,53,38,23,8,57,42,27,12,61,46,31,16 2220 DATA 1,22,43,64,16,27,38,49,4,23,42,61,13,26,39,52 2230 FOR J=1 TO 4 2240 IF X(M(I,J))<>1/8 THEN 2330 2250 LET X(M(I,J))=5 2260 IF L(I)<5 T1730 IF X(I)<>0 THEN 1800 1740 LET X(I)=5 1750 LET M=I 1760 PRINT "MACHINE LIKES"; 1770 GOSUB 1570 1780 PRINT " " 1790 GOTO 500 1800 NEXT I 1810 PRINT "THE GAME IS A DRAW" 1820 GOTO 1490 1830 FOR K=1 TO 18 1840 LET P=0 1850 FOR I=4*K-3 TO 4*K M(I,3))+X(M(I,4)) 1050 LET L = L(I) 1060 IF L <2 THEN 1130 1070 IF L>=3 THEN 1130 1080 IF L>2 THEN 2230 1090 FOR J = 1 TO 4 1100 IF X(M(I,J))<>0 THEN 1120 1110 LET X(M(I,J))=1/8 1120 NEXT J 1130 NEXT I 1140 GOSUB 1640 1150 FOR I = 1 TO 76 1160 DATA 4,20,36,52,8,24,40,56,12,28,44,60,16,32,48,64, 2120 DATA 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 2130 DATA 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62, 2140 DATA 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 2150 DATA4,8,12,16,20,24,28,32,30 INPUT X$ 1520 IF X$="YES" THEN 400 1530 IF X$="NO" THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 1550 GOTO 1510 1560 STOP 1570 LET K1=INT((M-1)/16)+1 1580 LET J2=M-16*(K1-1) 1590 LET K2=INT((J2-1)/4)+1 1600 LET K3=M-(K1-1)*GAME." 2350 GOTO 1490 2360 LET S=1/8 2370 IF I-INT(I/4)*4>1 THEN 2400 2380 LET A=1 2390 GOTO 2410 2400 LET A=2 2410 FOR J=A TO 5-A STEP 5-2*A 2420 IF X(M(I,J))=S THEN 2450 2430 NEXT J 2440 GOTO 2000 2450 LET X(M(I,J))=5 2460 LET M=M(I,J) 2470 1010 FOR X=1 TO P 1020 GOSUB 3500 1030 IF I(X)=0 THEN 1070 1035 GOSUB 6500 1040 GOSUB 4000 1050 GOSUB 4500 1060 IF B1<>B OR W1<>W THEN I(X)=0 1070 NEXT X 1080 NEXT M 1090 PRINT "I USED UP ALL MY MOVES!" 1100 PRINT "I GUESS MY CPU IS JUST HAVING XT Y 470 PRINT "'"; MID$(X$,X,1); "' IS UNRECOGNIZED.":GOTO 380 480 G$(X)=MID$(X$,X,1) 490 NEXT X 500 REM NOW WE CONVERT Q(1-P9) INTO A$(1-P9) [ACTUAL GUESS] 510 GOSUB 4000 520 REM AND GET NUMBER OF BLACKS AND WHITES 530 GOSUB 4500 540 IF B 2710 PRINT 2720 PRINT 2730 NEXTI 2740 RETURN 2750 PRINT"INCORRECT MOVE, RETYPE IT--"; 2760 GOTO520 2770 END 2660 2655 PRINT"(Y) "; 2660 IF X(Q)<>1/8THEN2670 2665 PRINT"( ) "; 2670 NEXTK 2680 PRINT 2690 PRINT 2700 NEXTJ G TO P 800 IF I(X)=1 THEN 880 810 NEXT X 820 FOR X=1 TO G 830 IF I(X)=1 THEN 880 840 NEXT X 850 PRINT "YOU DUMMY, YOU HAVE GIVEN ME INCONSISTENT INFORMATION." 860 PRINT "LET'S TRY AGAIN, AND THIS TIME, BE MORE CAREFUL." 870 GOTO 660 880 G=X 890 RT 280 PRINT "ROUND NUMBER ";R;"----" 290 PRINT 300 PRINT "GUESS MY COMBINATION." 310 REM GET A COMBINATION 320 A=INT(P*RND(1)+1) 330 GOSUB 3000 340 FOR X=1 TO A 350 GOSUB 3500 360 NEXT X 370 FOR M=1 TO 10 380 PRINT "MOVE # ";M;" GUESS ";:INPRINT "MACHINE TAKES"; 2480 GOSUB 1570 2490 GOTO 500 2500 FOR I=1 TO 64 2510 IF X(I)<>1/8 THEN 2530 2520 LET X(I)=0 2530 NEXT I 2540 RETURN 2550 FORI=1TO4 2560 FORJ=1TO4 2562 FORI1=1TOJ 2564 PRINT" "; 2566 NEXTI1 2570 FORK=1TO4 2600 LET Q=1YOU GET!":GOTO 640 622 GOSUB 4000 623 PRINT "THE ACTUAL COMBINATION WAS: "; 624 FOR X=1 TO P9 625 PRINT A$(X); 626 NEXT X 627 PRINT 630 PRINT "YOU GUESSED IT IN ";M;" MOVES!" 640 H=H+M 650 GOSUB 5000 660 REM 670 REM NOW COMPUTER GUESSES 680=P9 THEN 630 550 REM TELL HUMAN RESULTS 560 PRINT "YOU HAVE ";B;" BLACKS AND ";W;" WHITES." 570 REM SAVE ALL THIS STUFF FOR BOARD PRINTOUT LATER 580 S$(M)=X$ 590 S(M,1)=B 600 S(M,2)=W 610 NEXT M 620 PRINT "YOU RAN OUT OF MOVES! THAT'S ALL 2 PRINT TAB(30);"MASTERMIND" 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 6 PRINT: PRINT: PRINT 10 REM 20 REM MASTERMIND II 30 REM STEVE NORTH 40 REM CREATIVE COMPUTING 50 REM PO BOX 789-M MORRISTOWN NEW JERSEY 07960 EM NOW WE CONVERT GUESS #G INTO G$ 900 FOR X=1 TO G 910 GOSUB 3500 920 NEXT X 930 GOSUB 6000 940 PRINT "MY GUESS IS: "; 950 FOR X=1 TO P9 960 PRINT H$(X); 970 NEXT X 980 INPUT " BLACKS, WHITES ";B1,W1 990 IF B1=P9 THEN 1120 1000 GOSUB 3000 PUT X$ 390 IF X$="BOARD" THEN 2000 400 IF X$="QUIT" THEN 2500 410 IF LEN(X$)<>P9 THEN PRINT "BAD NUMBER OF POSITIONS.":GOTO 380 420 REM UNPACK X$ INTO G$(1-P9) 430 FOR X=1 TO P9 440 FOR Y=1 TO C9 450 IF MID$(X$,X,1)=MID$(L$,Y,1) THEN 480 460 NE6*I+4*J+K-20 2610 IFX(Q)<>OTHEN2630 2620 PRINT"( ) "; 2630 IFX(Q)<>5THEN2650 2640 PRINT"(M) "; 2650 IFX(Q)<>1THEN2660 2655 PRINT"(Y) "; 2660 IF X(Q)<>1/8THEN2670 2665 PRINT"( ) "; 2670 NEXTK 2680 PRINT 2690 PRINT 2700 NEXTJ REM 690 FOR X=1 TO P 700 I(X)=1 710 NEXT X 720 PRINT "NOW I GUESS. THINK OF A COMBINATION." 730 INPUT "HIT RETURN WHEN READY ";X$ 740 FOR M=1 TO 10 750 GOSUB 3000 760 REM FIND A GUESS 770 G=INT(P*RND(1)+1) 780 IF I(G)=1 THEN 890 790 FOR X=,2),S$(10),A$(P9),G$(P9),I(P),H$(P9) 160 L$="BWRGOYPT" 170 PRINT 180 PRINT 190 PRINT "COLOR LETTER" 200 PRINT "===== ======" 210 FOR X=1 TO C9 220 READ X$ 230 PRINT X$;TAB(13);MID$(L$,X,1) 240 NEXT X 250 PRINT 260 FOR R=1 TO R9 270 PRIN 60 REM 70 REM 80 INPUT "NUMBER OF COLORS";C9 90 IF C9>8 THEN PRINT "NO MORE THAN 8, PLEASE!":GOTO 80 100 INPUT "NUMBER OF POSITIONS";P9 110 INPUT "NUMBER OF ROUNDS";R9 120 P=C9^P9 130 PRINT "TOTAL POSSIBILITIES =";P 140 H=0:C=0 150 DIM Q(P9),S(10AN OFF DAY." 1110 GOTO 1130 1120 PRINT "I GOT IT IN ";M;" MOVES!" 1130 C=C+M 1140 GOSUB 5000 1150 NEXT R 1160 PRINT "GAME OVER" 1170 PRINT "FINAL SCORE:" 1180 GOSUB 5040 1190 STOP 2000 REM 2010 REM BOARD PRINTOUT ROUTINE 2020 REM 2025 PMACHINE'S MOVES WITH AN (M), AND" 310 PRINT "UNUSED SQUARES WITH A ( )." 311 PRINT 312 PRINT "TO STOP THE PROGRAM RUN, TYPE 1 AS YOUR MOVE." 315 DIM X(64),L(76),M(76,4),Y(16) 320 FOR I = 1 TO 16 330 READ Y(I) 340 NEXT I 350 FOR I=1 TO 76 360 FOR JPLE,TAN 9998 REM ...WE'RE SORRY BUT IT'S TIME TO GO... 9999 END S)=H$(S) 6550 NEXT S 6560 RETURN 8000 REM PROGRAM DATA FOR COLOR NAMES 8010 DATA BLACK,WHITE,RED,GREEN,ORANGE,YELLOW,PUR 3060 RETURN 3500 REM 3510 REM INCREMENT Q(1-P9) 3520 REM 3522 IF Q(1)>0 THEN 3530 3524 REM IF ZERO, THIS IS OUR FIRST INCREMENT: MAKE ALL ONES 3526 FOR S=1 TO P9 3527 Q(S)=1 3528 NEXT S 3529 RETURN 3530 Q=1 3540 Q(Q)=Q(Q)+1 3550 IF Q(Q)A$(S) THEN 4620 4570 B=B+1 4580 G$(S)=CHR$(F) 4590 A$(S)=CHR$(F+1) 4600 F=F+2 4610 GOTO 4660 4620 FOR T=1 TO P9 4630 IF G$(S)<>A$(T) THEN = 1 TO 4 370 READ M(I,J) 380 NEXT J 390 NEXT I 400 FOR I = 1 TO 64 410 LET X (I) =0 420 NEXT I 430 LET Z=1 440 PRINT "DO YOU WANT TO MOVE FIRST"; 450 INPUT S$ 460 IF S$="NO" THEN 630 470 IF S$="YES" THEN 500 480 PRINT "INCORRECT ANSWER. PLEASTA 39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56 2070 DATA 57,58,59,60,61,62,63,64, 2080 DATA1,17,33,49,5,21,37,53,9,25,41,57,13,29,45,61 2090 DATA 2,18,34,50,6,22,38,54,10,26,42,58,14,30,46,62 2100 DATA 3,19,35,51,7,23,39,55,11,27,43,59,15,31,0 THEN 1400 1390 LET X(M(I,J))=1/8 1400 NEXT J 1410 NEXT I 1420 GOSUB 1640 1430 FOR I=1 TO 76 1440 IF L(I)=.5 THEN 2360 1450 IF L(I)=5+3/8 THEN 2360 1460 NEXT I 1470 GOSUB 2500 1480 GOTO 1030 1490 PRINT " " 1500 PRINT "DO YOU WANT TO TRY ANOTHE76 660 IF J=1 THEN 720 670 IF J=2 THEN 790 680 IF J=3 THEN 930 690 NEXT I 700 NEXT J 710 GOTO 1300 720 IF L(I)<>4 THEN 690 730 PRINT "YOU WIN AS FOLLOWS"; 740 FOR J=1 TO 4 750 LET M=M(I,J) 760 GOSUB 1570 770 NEXT J 780 GOTO 1490 790 IF L(I)<>*K-3 TO 4*K 1860 FOR J=1 TO 4 1870 LET P=P+X(M(I,J)) 1880 NEXT J 1890 NEXT I 1900 IF P<4 THEN 1940 1910 IF P<5 THEN 1970 1920 IF P<9 THEN 1940 1930 IF P<10 THEN 1970 1940 NEXT K 1950 GOSUB 2500 1960 GOTO 1200 1970 LET S=1/8 1980 FOR I=4*K-3 TO TO 76 1160 IF L(I)=1/2 THEN 2360 1170 IF L(I)=1+3/8 THEN 2360 1180 NEXT I 1190 GOTO 1830 1200 LET Z = 1 1210 IF X(Y(Z))=0 THEN 1250 1220 LET Z=Z+1 1230 IF Z<>17 THEN 1210 1240 GOTO 1720 1250 LET M=Y(Z) 1260 LET X(M)=5 1270 PRINT "MACHINE MOVESE TYPE 'YES' OR 'NO'."; 490 GOTO 450 500 PRINT " " 510 PRINT "YOUR MOVE"; 520 INPUT J1 521 IF J1=1 THEN 2770 522 IF J1<>0 THEN 525 523 GOSUB 2550 524 GOTO 500 525 IF J1<111 THEN 2750 526 IF J1>444 THEN 2750 530 GOSUB 2500 540 LET K1=INT(J1/100) K3=M-(K1-1)*16-(K2-1)*4 1610 LET M=K1*100+K2*10+K3 1620 PRINT M; 1630 RETURN 1640 FOR S=1 TO 76 1650 LET J1 = M(S,1) 1660 LET J2=M(S,2) 1670 LET J3=M(S,3) 1680 LET J4=M(S,4) 1690 LET L(S)=X(J1)+X(J2)+X(J3)+X(J4) 1700 NEXT S 1710 RETURN 1720 FOR GAME"; 1510 INPUT X$ 1520 IF X$="YES" THEN 400 1530 IF X$="NO" THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 1550 GOTO 1510 1560 STOP 1570 LET K1=INT((M-1)/16)+1 1580 LET J2=M-16*(K1-1) 1590 LET K2=INT((J2-1)/4)+1 1600 LET15 THEN 690 800 FOR J=1 TO 4 810 LET M=M(I,J) 820 IF X(M)<>0 THEN 860 830 LET X(M)=5 840 PRINT "MACHINE MOVES TO"; 850 GOSUB 1570 860 NEXT J 870 PRINT ", AND WINS AS FOLLOWS" 880 FOR J=1 TO 4 890 LET M=M(I,J) 900 GOSUB 1570 910 NEXT J 920 GOTO 4*K 1990 GOTO 2370 2000 NEXT I 2010 LET S=0 2020 GOTO 1980 2030 DATA 1,49,52,4,13,61,64,16,22,39,23,38,26,42,27,43 2040 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 2050 DATA 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 2060 DA TO"; 1280 GOSUB 1570 1290 GOTO 500 1300 LET X=X 1310 FOR I=1 TO 76 1320 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1330 LET L=L(I) 1340 IF L<10 THEN 1410 1350 IF L>=11 THEN 1410 1360 IF L>10 THEN 2230 1370 FOR J=1 TO 4 1380 IF X(M(I,J))<> 550 LET J2=(J1-K1*100) 560 LET K2=INT(J2/10) 570 LET K3= J1 - K1*100 -K2*10 580 LET M=16*K1+4*K2+K3-20 590 IF X(M)=0 THEN 620 600 PRINT "THAT SQUARE IS USED, TRY AGAIN" 610 GOTO 500 620 LET X(M)=1 630 GOSUB 1640 640 FOR J=1 TO 3 650 FOR I=1 TO R I=1 TO 64 1730 IF X(I)<>0 THEN 1800 1740 LET X(I)=5 1750 LET M=I 1760 PRINT "MACHINE LIKES"; 1770 GOSUB 1570 1780 PRINT " " 1790 GOTO 500 1800 NEXT I 1810 PRINT "THE GAME IS A DRAW" 1820 GOTO 1490 1830 FOR K=1 TO 18 1840 LET P=0 1850 FOR I=4+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1050 LET L = L(I) 1060 IF L <2 THEN 1130 1070 IF L>=3 THEN 1130 1080 IF L>2 THEN 2230 1090 FOR J = 1 TO 4 1100 IF X(M(I,J))<>0 THEN 1120 1110 LET X(M(I,J))=1/8 1120 NEXT J 1130 NEXT I 1140 GOSUB 1640 1150 FOR I = 1 1490 930 IF L(I)<>3 THEN 690 940 PRINT "NICE TRY MACHINE MOVES TO"; 950 FOR J=1 TO 4 960 LET M=M(I,J) 970 IF X(M)<>0 THEN 1010 980 LET X(M)=5 990 GOSUB 1570 1000 GOTO 500 1010 NEXT J 1020 GOTO 1300 1030 FOR I = 1 TO 76 1040 LET L(I)=X(M(I,1))47,63, 2110 DATA 4,20,36,52,8,24,40,56,12,28,44,60,16,32,48,64, 2120 DATA 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 2130 DATA 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62, 2140 DATA 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 2150 DATA4,8,12,16,0 IF L(I)<5 THEN 2290 2270 PRINT "LET'S SEE YOU GET OUT OF THIS: MACHINE MOVES TO"; 2280 GOTO 2300 2290 PRINT "YOU FOX. JUST IN THE NICK OF TIME, MACHINE MOVES TO"; 2300 LET M=M(I,J) 2310 GOSUB 1570 2320 GOTO 500 2330 NEXT J 2340 PRINT "MACHINE CEXT K 2680 PRINT 2690 PRINT 2700 NEXT J 2710 PRINT 2720 PRINT 2730 NEXT I 2740 RETURN 2750 PRINT"INCORRECT MOVE, RETYPE IT--"; 2760 GOTO520 2770 END 00 NEXT J 2710 PRINT 2720 PRINT 2730 NEXT I 2740 RETURN 2750 PRINT"INCORRECT MOVE, RETYPE20,24,28,32,36,40,44,48,52,56,60,64 2160 DATA1,6,11,16,17,22,27,32,33,38,43,48,49,54,59,64 2170 DATA 13,10,7,4,29,26,23,20,45,42,39,36,61,58,55,52 2180 DATA1,21,41,61,2,22,42,62,3,23,43,63,4,24,44,64, 2190 DATA 49,37,25,13,50,38,26,14,51,39,27,15,52,40ONCEDES THIS GAME." 2350 GOTO 1490 2360 LET S=1/8 2370 IF I-INT(I/4)*4>1 THEN 2400 2380 LET A=1 2390 GOTO 2410 2400 LET A=2 2410 FOR J=A TO 5-A STEP 5-2*A 2420 IF X(M(I,J))=S THEN 2450 2430 NEXT J 2440 GOTO 2000 2450 LET X(M(I,J))=5 2460 LET M=,28,16 2200 DATA 1,18,35,52,5,22,39,56,9,26,43,60,13,30,47,64 2210 DATA 49,34,19,4,53,38,23,8,57,42,27,12,61,46,31,16 2220 DATA 1,22,43,64,16,27,38,49,4,23,42,61,13,26,39,52 2230 FOR J=1 TO 4 2240 IF X(M(I,J))<>1/8 THEN 2330 2250 LET X(M(I,J))=5 226 FOR K=1 TO 4 2600 LET Q=16*I+4*J+K-20 2610 IF X(Q)<>O THEN 2630 2620 PRINT "( ) "; 2630 IF X(Q)<>5 THEN 2650 2640 PRINT "(M) "; 2650 IF X(Q)<>1 THEN 2660 2655 PRINT "(Y) "; 2660 IF X(Q)<>1/8 THEN 2670 2665 PRINT"( ) "; 2670 NM(I,J) 2470 PRINT "MACHINE TAKES"; 2480 GOSUB 1570 2490 GOTO 500 2500 FOR I=1 TO 64 2510 IF X(I)<>1/8 THEN 2530 2520 LET X(I)=0 2530 NEXT I 2540 RETURN 2550 FOR I=1 TO 4 2560 FOR J=1 TO 4 2562 FOR I1=1 TO J 2564 PRINT " "; 2566 NEXT I1 2570