10 REM ... STTR3.ECB 20 PRINT "&K": REM ....UTS700 STTR3.....11-30-79 30 DIM C(9,2),D(8),G(8,8),K(9,3),N(3),Z(8,8) 40 DIM A$(12),D$(132),M$(12),N$(12),Q$(80),R$(80),S$(80) 100 DEF FNC(Y)=C(Z3,1)+(C(Z3+1,1)-C(Z3,1))*(C1-INT(C1)) 110 DEF FND(D)=SQR(ABS(K(I,1)-S1)^2+ABS(K(I,2)-S2)^2) 120 DEF FNE(Y)=C(Z3,2)+(C(Z3+1,2)-C(Z3,2))*(C1-INT(C1)) 130 DEF FNR(Z9)=INT(INT(Z9)*RND(0))+((Z9-INT(Z9))*100) 200 PRINT TAB(15);" " 210 PRINT TAB(15);" " 220 PRINT TAB(15);" S T T R 3 " 230 PRINT TAB(15);" (STAR TREK) " 250 PRINT TAB(15);" " 260 PRINT TAB(15);" &J&J" 270 LET S=0: LET H8=0: LET B9=0: LET K9=0 280 LET M$=" DIRECTION =": LET N$=" DISTANCE =" 300 PRINT " Run STTR1 for detailed instructions&J" 320 LET T=FNR(20.2)*100: LET T0=T 330 LET T9=FNR(34.3) 340 LET E=(FNR(81.7))*100: LET E0=E 350 LET P=FNR(9.07): LET P0=P 360 LET Q1=FNR(8.01): LET Q2=FNR(8.01) 380 LET S1=FNR(8.01): LET S2=FNR(8.01) 410 LET T7=RND(0): REM ...Was TIS(0) or TIME(0) 420 DATA 0,-1,-1,-1,0,1,1,1,0,1,1,0,-1,-1,-1,0,1,1 430 FOR J=1 TO 9: READ C(J,1): NEXT J 440 FOR J=1 TO 9: READ C(J,2): NEXT J 450 FOR I=1 TO 8: LET D(I)=0: NEXT I 455 FOR I=1 TO 8 456 FOR J=1 TO 8: LET Z(I,J)=0: NEXT J 457 NEXT I 460 LET D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL" 470 LET D$=D$+"PHOTON TUBESDAMAGE CNTRLSHIELD CNTRLCOMPUTER " 480 REM . *** SET UP GALAXY *** 490 FOR I=1 TO 8 500 FOR J=1 TO 8 501 LET K3=0 502 LET V=FNR(10)-6 503 IF V<1 OR V>3 THEN 600 510 ON V GOTO 580,560,540 540 LET K3=FNR(9) 550 GOTO 590 560 LET K3=FNR(6) 570 GOTO 590 580 LET K3=FNR(3) 590 LET K9=K9+K3 600 LET R1=RND(0) 610 IF R1>.75 THEN LET B3=1 ELSE LET B3=0 650 LET B9=B9+B3 660 LET S3=FNR(9.01) 670 LET G(I,J)=K3*100+B3*10+S3 690 NEXT J 700 NEXT I 710 LET K7=K9 720 PRINT "YOU MUST DESTROY ";K9;" KLINGONS IN";T9;" STARDATES" 722 PRINT B9;" STARBASES. The Enterprise has" 725 PRINT E0;" UNITS OF ENERGY, AND ";P0;" PHOTON TORPEDOS" 730 IF B9<=0 THEN LET G(6,3)=414 750 LET K3=0: LET S3=0: LET B3=0: LET Q$="" 760 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 840 ELSE LET X=G(Q1,Q2)*.01 780 LET K3=INT(X) 790 LET B3=INT((X-K3)*10) 800 LET S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10 830 IF S<=500 THEN PRINT " SHIELDS DANGEROUSLY LOW" ELSE PRINT 840 FOR I=1 TO 9 850 FOR J=1 TO 3: LET K(I,J)=0: NEXT J 851 NEXT I 855 FOR I=1 TO 20: LET Q$=Q$+" ": NEXT I 860 LET R$=Q$: LET S$=Q$ 920 LET A$="": LET Z1=S1: LET Z2=S2 950 GOSUB 5580 960 FOR I=1 TO K3 970 GOSUB 5500 980 LET A$="": LET Z1=R1: LET Z2=R2 1010 GOSUB 5580 1020 LET K(I,1)=R1: LET K(I,2)=R2 1040 LET K(I,3)=INT(300*RND(0))+200 1050 NEXT I 1060 FOR I=1 TO B3 1070 GOSUB 5500 1080 LET A$=">S<": LET Z1=R1: LET Z2=R2 1110 GOSUB 5580 1120 NEXT I 1130 FOR I=1 TO S3 1140 GOSUB 5500 1150 LET A$=" * ": LET Z1=R1: LET Z2=R2 1180 GOSUB 5580 1190 NEXT I 1200 IF K3=0 THEN 1220 1210 GOSUB 4240 1220 INPUT (1,0)"NEXT COMMAND? ---=>",A 1230 IF A<0 OR A>7 THEN 1260 1240 ON A+1 GOTO 1370,1210,2330,2540,2830,3570,3680,4750 1260 PRINT " INVALID COMMAND ...Try again." 1270 PRINT "0 = MOVE": PRINT "1 = Short range scan" 1280 PRINT "2 = Long range scan": PRINT "3 = Phazers" 1290 PRINT "4 = Photons": PRINT "5 = Shields" 1300 PRINT "6 = Damage Report": PRINT "7 = Computor" 1350 PRINT : GOTO 1220 1360 REM . *** SET COURSE SECTION *** 1370 INPUT "COURSE (1-9)? ---=>",C1 1400 IF C1<1 OR C1>=9 THEN 1220 1410 INPUT "WARP FACTOR (0-8)? ---=>",W1 1430 IF W1<0 OR W1>8 THEN 1220 1440 IF D(1)>=0 OR W1<=.2 THEN 1470 1450 PRINT "WARP ENGINES ARE DAMAGED,MAXIMUM SPEED =.2 "; 1460 GOTO 1370 1470 IF K3<=0 THEN 1520 1480 GOSUB 3900 1500 IF S<0 THEN 4140 ELSE 1570 1520 IF E>0 THEN 1570 1530 IF S<1 THEN 4050 1540 PRINT "YOU HAVE ";E;" UNITS OF ENERGY" 1550 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS,WHICH HAVE ";S;" UNIT 1560 GOTO 1370 1570 FOR I=1 TO 8 1580 IF D(I)>=0 THEN 1620 ELSE LET D(I)=D(I)+1 1600 LET R1=I 1610 IF D(I)=0 THEN EXIT 1740 1620 NEXT I 1630 IF RND(0)>.2 THEN 1770 ELSE LET R1=FNR(8.01) 1650 IF RND(0)>=.5 THEN 1710 ELSE LET D(R1)=D(R1)-FNR(5.01) 1670 PRINT "DAMAGE CONTROL REPORTS "; 1680 GOSUB 5680 1690 PRINT A$;" IS DAMAGED" 1700 GOTO 1770 1710 LET D(R1)=D(R1)+FNR(5.01) 1720 IF D(R1)>0 THEN PRINT ELSE 1710 1740 PRINT " DAMAGE CONTROL RERPORTS "; 1750 GOSUB 5680 1760 PRINT A$;" STATE OF REPAIR IMPROVED" 1770 LET N=INT(W1*8) 1780 LET A$=" ": LET Z1=S1: LET Z2=S2 1810 GOSUB 5580 1840 LET X=S1: LET Y=S2 1860 LET Z3=INT(C1) 1870 LET X1=FNC(Y): LET X2=FNE(Y) 1890 FOR I=1 TO N 1900 LET S1=S1+X1: LET S2=S2+X2 1910 LET S2=S2+X2 1920 IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 2150 1930 LET S8=S1*24+S2*3-26 1940 IF S8<71 AND S8>0 THEN LET P$=Q$(S8,S8+2) 1950 IF S8<143 AND S8>72 THEN LET P$=R$(S8-72,S8-70) 1960 IF S8<191 AND S8>144 THEN LET P$=R$(S8-144,S8-142) 2000 IF P$=" " THEN 2050 2005 PRINT 2005;P$;LEN(P$) 2010 PRINT " WARP ENGINES SHUTDOWN AT SECTOR ";S1;",";S2;" BAD NAVIGATION'" 2020 LET S1=S1-X1: LET S2=S2-X2 2040 EXIT 2060 2050 NEXT I 2060 LET A$="": LET Z1=S1: LET Z2=S2 2090 GOSUB 5580 2100 LET E=E-N+5 2110 IF W1<1 THEN 2130 ELSE LET T=T+1 2125 LET T9=T9-1 2130 IF T9>0 THEN 6390 ELSE 4100 2150 LET X=Q1*8+X+X1*N: LET Y=Q2*8+Y+X2*N 2170 LET Q1=INT(X/8): LET Q2=INT(Y/8) 2190 LET S1=INT(X-Q1*8): LET S2=INT(Y-Q2*8) 2210 IF S1<>0 THEN 2240 ELSE LET S1=8 2220 LET Q1=Q1-1 2240 IF S2<>0 THEN 2270 ELSE LET S2=8 2250 LET Q2=Q2-1 2270 LET T=T+1 2280 LET T9=T9-1 2290 LET E=E-N+5 2300 IF T9>0 THEN 750 ELSE 1400 2310 REM . *** LONG RANGE SENSOR SCAN SECTION *** 2330 IF D(3)<0 THEN PRINT "LONG RANGE SENSORS ARE INOPERABLE" ELSE 2370 2360 GOTO 1220 2370 PRINT " LONG RANGE SENSOR SCAN FOR QUADRANT ";Q1;",";Q2 2380 PRINT " ----------------" 2390 FOR I=Q1-1 TO Q1+1 2400 LET N(1)=0: LET N(2)=0: LET N(3)=0 2410 FOR J=Q2-1 TO Q2+1 2420 IF I<1 OR I>8 OR J<1 OR J>8 THEN 2460 2430 LET N(J-Q2+2)=G(I,J) 2440 IF D(8)>=0 THEN LET Z(I,J)=G(I,J) 2460 NEXT J 2470 PRINT " :";N(1);":";TAB(10);N(2);":";TAB(15);N(3);TAB(19);":" 2480 PRINT " ----------------" 2490 NEXT I 2500 GOTO 1220 2510 REM . *** PHASOR CONTROL *** 2540 IF K3<=0 THEN 3780 2550 IF D(4)<0 THEN PRINT "PHASOR CONTROL IS DISABLED" ELSE 2580 2570 GOTO 1220 2580 IF D(8)<0 THEN PRINT "COMPUTER FAILURE HAMPERS ACCURACY" ELSE 2600 2600 PRINT "PHASORS LOCKED ON TARGET. ENERGY AVAILABLE= ";E 2610 INPUT "NUMBER OF UNITS TO FIRE? ",X 2630 IF X<=0 THEN 1220 2640 IF E-X<0 THEN 2580 2650 LET E=E-X 2660 GOSUB 3900 2670 IF D(8)<0 THEN LET X=X*RND(0) 2690 FOR I=1 TO 9 2700 IF K(I,3)<=0 OR K3=0 THEN 2790 2710 LET H=INT(X/K3/FND(0))*(2*RND(0)) 2720 LET H=INT(H): LET K(I,3)=K(I,3)-H 2730 IF K(I,3)<=0 THEN 2770 2735 PRINT H;" UNITS HIT ON KLINGON AT SECTOR ";K(I,1);","; 2740 PRINT K(I,2);" ( ";K(I,3);" LEFT)" 2770 IF K(I,3)<=0 THEN GOSUB 3800 2780 IF K9<=0 THEN 4170 2790 NEXT I 2800 IF E<0 THEN 4140 ELSE 6390 2820 REM . *** PHOTON TORPEDO SECTION *** 2830 IF D(5)<0 THEN PRINT "PHOTON TUBES NOT OPERATIONAL" ELSE 2860 2850 GOTO 1220 2860 IF P<=0 THEN PRINT "ALL PHOTON TORPEDOS EXPENDED" ELSE 2890 2880 GOTO 1220 2890 INPUT "TORPEDO COURSE(1-9)? ---=> ",C1 2920 IF C1<1 OR C1>=9 THEN 1220 2930 LET Z3=INT(C1) 2940 LET X1=FNC(Y): LET X2=FNE(Y) 2960 LET X=S1: LET Y=S2 2980 LET P=P-1 3000 LET X=X+X1: LET Y=Y+X2 3020 IF X<1 OR X>=9 OR Y<1 OR Y>=9 THEN 3520 3050 LET A$=" ": LET Z1=X: LET Z2=Y 3080 GOSUB 5750 3090 IF Z3<>0 THEN 3000 3110 LET A$="": LET Z1=X: LET Z2=Y 3140 GOSUB 5750 3150 IF Z3=0 THEN 3320 3160 PRINT "<<<===--- KLINGON DESTROYED ---===>>>" 3165 LET E=E+1000 3170 LET K3=K3-1 3180 LET K9=K9-1 3190 IF K9<=0 THEN 4170 3200 FOR I=1 TO 9 3210 IF INT(X)=K(I,1) AND INT(Y)=K(I,2) THEN EXIT 3300 3230 NEXT I 3240 FOR I=1 TO 9 3250 IF K(I,3)>0 THEN 3300 3280 NEXT I 3290 GOTO 3460 3300 LET K(I,3)=0 3310 GOTO 3460 3320 LET A$=" * ": LET Z1=X: LET Z2=Y 3350 GOSUB 5750 3360 IF Z3=1 THEN PRINT "YOU CAN'T DESTROY STARS!" ELSE 3390 3380 GOTO 3520 3390 LET A$=">S<": LET Z1=X: LET Z2=Y 3420 GOSUB 5750 3430 IF Z3=0 THEN 3000 3440 PRINT ">>>===--- STAR BASE DESTROYED ---===<<<" 3450 LET B3=B3-1 3460 LET A$=" ": LET Z1=X: LET Z2=Y 3490 GOSUB 5580 3500 LET G(Q1,Q2)=(K3*100)+(B3*10)+S3 3510 GOTO 3530 3520 PRINT ">=- TORPEDO MISSED -=<" 3530 GOSUB 3900 3540 IF E<0 THEN 4140 ELSE 6390 3560 REM . >>>===--- SHIELD CONTROL SECTION ---===<<< 3570 IF D(7)<0 THEN PRINT "SHIELD CONTROL IS INOPERABLE" ELSE 3600 3590 GOTO 1220 3600 PRINT "ENERGY AVAIBLE ";E+S;" NUMBER OF UNITS TO SHIELDS? "; 3610 INPUT X 3620 IF X<=0 THEN 1220 3630 IF E+S-X<=0 THEN 3600 ELSE LET E=E+S-X 3650 LET S=X 3660 GOTO 1220 3670 REM .>>>===--- DAMAGE CONTROL SECTION ---===<<<" 3680 IF D(6)<0 THEN PRINT "DAMAGE CONTROL REPORT IS NOT AVAILABLE" ELSE 3710 3700 GOTO 1220 3710 PRINT "DEVICE","STATE OF REPAIR" 3720 FOR R1=1 TO 8 3730 GOSUB 5680 3740 PRINT A$,D(R1) 3750 NEXT R1 3770 GOTO 1220 3780 PRINT "SHORT RANGE SENSOR SCAN REPORTS NO KLINGONS IN THIS QUADRANT" 3790 GOTO 1220 3800 PRINT " KLINGON AT SECTOR ";K(I,1);K(I,2);" DESTROYED -=< " 3820 LET K3=K3-1 3830 LET K9=K9-1 3840 LET A$=" ": LET Z1=K(I,1): LET Z2=K(I,2) 3870 GOSUB 5580 3880 LET G(Q1,Q2)=(K3*100)+(B3*10)+S3 3890 RETURN 3900 IF C$<>"DOCKED" THEN 3930 3910 PRINT "STAR BASE SHIELDS PROTECT THE ENTERPRISE*" 3920 RETURN 3930 IF K3<=0 THEN 4040 ELSE LET H=0 3950 FOR I=1 TO 9 3960 IF K(I,3)>0 THEN LET H=H+INT(K(I,3)/FND(0))*FNR(2.01) 3990 NEXT I 4000 LET H=INT(H): LET S=S-H 4010 IF S<0 THEN 4140 4020 PRINT H;" UNITS HIT ON ENTERPRISE (";S;" LEFT)" 4040 RETURN 4050 PRINT "THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE ALL" 4060 PRINT "IMPENDING ATTACK YOU WILL BE DEMOTED TO THE RANK OF PRIVATE" 4070 IF K3<=0 THEN 4150 4080 GOSUB 3900 4085 IF S < 0 THEN GOTO 4140 4090 GOTO 4070 4100 PRINT ">>>===--- IT IS STARDATE ";T 4110 PRINT "THE FEDERATION HAS BEEN CONQUERED" 4120 PRINT "DIDN'T COMPLETE ITS MISSION IN TIME!!!" 4130 GOTO 4150 4140 PRINT "THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE" 4145 PRINT TAB(15);"***** C O N Q U E R E D *****&J" 4150 PRINT "THERE ARE STLL ";K9;" KLINGON BATTLE CRUISERS!!!" 4160 GOTO 6570 4170 PRINT "THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN&J&J" 4180 PRINT TAB(15);"##*## D E S T R O Y E D ##*##&J&J" 4190 PRINT "YOUR EFFICIENCY RATING IS ";((K7/(T-T0))*1000) 4210 PRINT "YOUR ACTUAL TIME OF MISSION IS ";(RND(0)-T7);" STARDATES." 4220 GOTO 6570 4230 REM . >>>===--- SHORT RANGE SENSOR SCAN ---===<<< 4240 FOR I=S1-1 TO S1+1 4250 FOR J=S2-1 TO S2+1 4260 IF I<1 OR I>8 OR J<1 OR J>8 THEN 4320 4270 LET A$=">S<": LET Z1=I: LET Z2=J 4300 GOSUB 5750 4310 IF Z3=1 THEN EXIT 4360 4320 NEXT J 4330 NEXT I 4350 GOTO 4440 4360 LET C$="DOCKED" 4380 LET E=10000 4390 LET P=10 4400 IF S<>0 THEN PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES" ELSE 4510 4420 LET S=0 4430 GOTO 4510 4440 IF K3=0 THEN 4460 ELSE LET C$=" RED" 4450 IF K3=0 THEN 4510 4460 IF E>E0*.1 THEN LET C$=" GREEN" ELSE LET C$="YELLOW" 4510 IF D(2)<0 THEN PRINT "SHORT RANGE SENSORS OUT OF ORDER" ELSE 4540 4530 GOTO 4640 4540 PRINT " 1 2 3 4 5 6 7 8" 4550 PRINT " 1 ";Q$(1,24);" 1" 4560 PRINT " 2 ";Q$(25,48);" 2 STARDATE: ";T 4570 PRINT " 3 ";Q$(49,72);" 3 CONDITION: ";C$ 4580 PRINT " 4 ";R$(1,24);" 4 QUADRANT: ";Q1;" ,";Q2 4590 PRINT " 5 ";R$(25,48);" 5 SECTOR: ";S1;" ,";S2 4600 PRINT " 6 ";R$(49,72);" 6 ENERGY: ";E 4610 PRINT " 7 ";S$(1,24);" 7 PHOTON TORPEDOES: ";P 4620 PRINT " 8 ";S$(25,48);" 8 SHIELDS: ";S 4630 PRINT " 1 2 3 4 5 6 7 8" 4640 RETURN 4740 REM .*** COMPUTER CONTROL SECTION *** 4750 IF D(8)<0 THEN PRINT "COMPUTER DISABLED" ELSE 4780 4770 GOTO 1220 4780 INPUT (1,0)"COMPUTER ACTIVE AND AWAITING COMMAND ---=>",A 4795 IF A<0 OR A>3 THEN 4810 4800 ON A+1 GOTO 4860,4950,5000,4941 4810 PRINT " INVALID FUNCTION ... try again" 4820 PRINT "0 = MAP of Galaxy.": PRINT "1 = Game status." 4830 PRINT "2 = Torpedo courses.": PRINT "3 = Course Calculator.&J" 4850 GOTO 4780 4860 PRINT " COMPUTER RECORD OF GALAXY FOR QUADRANT ";Q1;Q2 4880 PRINT " 1 2 3 4 5 6 7 8" 4890 PRINT " ----- ----- ----- ----- ----- ----- ----- -----" 4900 FOR I=1 TO 8 4910 PRINT I;" ";Z(I,1);TAB(10);Z(I,2);TAB(16);Z(I,3); 4915 PRINT TAB(22);Z(I,4);TAB(28);Z(I,5);TAB(34); 4920 PRINT Z(I,6);TAB(40);Z(I,7);TAB(46);Z(I,8);TAB(50);I 4930 NEXT I 4935 PRINT " ----- ----- ----- ----- ----- ----- ----- -----" 4937 PRINT " 1 2 3 4 5 6 7 8" 4940 GOTO 1220 4941 LET H8=1 4942 PRINT " YOU ARE IN QUADRANT(";Q1;Q2;") SECTOR(";S1;S2;")" 4944 PRINT "SHIP AND TARGET COORDINATES ARE?" 4945 INPUT "(Input 4 numbers) ---=>",C1,A,W1,X 4946 LET I9=1: GOTO 5020 4950 PRINT "&JSTATUS REPORT&J" 4960 PRINT "KLINGONS LEFT =";K9 4970 PRINT "STARDATES LEFT =";T9 4980 PRINT "STARBASES LEFT =";B9 4990 PRINT : GOTO 1220 5000 LET H8=0: LET I9=9 5020 FOR I=1 TO I9 5025 IF H8=1 THEN 5130 5030 IF K(I,3)<=0 THEN 5380 ELSE LET C1=S1 5050 LET A=S2 5060 LET W1=K(I,1) 5070 LET X=K(I,2) 5130 LET X=X-A 5140 LET A=C1-W1 5141 IF A<>0 THEN 5144 5142 IF X>0 THEN PRINT M$;"1 "; ELSE PRINT M$;"5 "; 5143 GOTO 5360 5144 IF X<>0 THEN 5150 5145 IF A>0 THEN PRINT M$;"3 "; ELSE PRINT M$;"7 "; 5146 GOTO 5360 5150 IF X<0 THEN 5191 5160 IF A<0 THEN LET C1=7 ELSE LET C1=1 5190 GOTO 5197 5191 IF A<0 THEN LET C1=5 ELSE LET C1=3 5197 IF A*X<0 THEN 5320 5200 IF ABS(A)<=ABS(X) THEN 5230 5210 PRINT M$;C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)); 5220 GOTO 5360 5230 PRINT M$;C1+(ABS(A)/ABS(X)); 5240 GOTO 5360 5320 IF ABS(A)>=ABS(X) THEN 5350 5330 PRINT M$;C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)); 5340 GOTO 5360 5350 PRINT M$;C1+(ABS(X)/ABS(A)); 5360 PRINT TAB(27);N$;(SQR(X*X+A*A));" OR ";(SQR(X*X+A*A))/8 5380 NEXT I 5390 GOTO 1220 5420 REM . *** SUB FOR KLINGON RANDOM MOVES *** 5500 LET A$=" " 5505 LET R1=FNR(8.01) 5510 LET R2=FNR(8.01) 5530 LET Z1=R1: LET Z2=R2 5550 GOSUB 5750 5560 IF Z3=0 THEN 5505 5570 RETURN 5580 REM . *** INSERTION FOR STRING ARRAY FOR QUADRANT *** 5590 LET S8=(Z1*24)+(Z2*3)-26 5600 IF S8>70 THEN 5630 ELSE LET Q$(S8,S8+2)=A$ 5620 GOTO 5670 5630 IF S8>142 THEN 5660 ELSE LET R$(S8-72,S8-70)=A$ 5637 GOTO 5670 5660 LET S$(S8-144,S8-142)=A$ 5670 RETURN 5680 REM . *** PRINT DEVICE FOR STRING ARRAY *** 5690 LET S8=R1*12-11 5705 LET A$=D$(S8,R1*12) 5740 RETURN 5750 REM . *** STRING COMPARISON IN QUADRANT ARRAY *** 5760 LET S8=Z1*24+Z2*3-26 5780 IF S8<71 AND S8>0 THEN LET P$=Q$(S8,S8+2) 5820 IF S8<143 AND S8>72 THEN LET P$=R$(S8-72,S8-70) 5860 IF S8<191 AND S8>144 THEN LET P$=S$(S8-144,S8-142) 5865 IF P$=A$ THEN LET Z3=1 ELSE LET Z3=0 5880 RETURN 5885 REM . *** MOVE THE KLINGONS AROUND *** 6390 LET A$=" " 6395 FOR I=1 TO 9 6400 IF K(I,1)<=0 OR K(I,2)<=0 THEN 6450 ELSE LET Z1=K(I,1) 6430 LET Z2=K(I,2) 6440 GOSUB 5580 6450 NEXT I 6460 FOR I=1 TO 9 6470 IF K(I,3)<=0 THEN 6550 ELSE GOSUB 5500 6510 LET A$="": LET Z1=R1: LET Z2=R2 6520 GOSUB 5580 6530 LET K(I,1)=R1: LET K(I,2)=R2 6550 NEXT I 6560 GOTO 1200 6570 END