100 RANDOMIZE 110 READ E,K,R,Z,H1,H2 111 L=2 120 DATA 100,140,500,0,0,0 130 PRINT "STATUS: ENERGY=";E;" RANGE=";R 140 PRINT "KLINGON IS "; 150 IF K2 THEN 280 270 LET S=-S 280 IF 15*SGN(S)+5*S+P+F>E GOTO 1840 290 IF S>10 GOTO 1760 300 IF F>50 THEN 1740 310 IF T=2 THEN 330 320 IF S<0 GOTO 1800 330 PRINT "FIRING SEQUENCE"; 340 INPUT W 350 IF K-8 THEN 530 400 LET L=-8 410 GOTO 530 420 LET L=-(ABS(S)+1) 430 GOTO 530 440 IF S<5 THEN 470 450 LET L=ABS(S) 460 GOTO 480 470 LET L=ABS(S)+1 480 IF L<8 THEN 500 490 LET L=8 500 IF ABS(S)>1.5 THEN 530 510 LET L=5-S 520 LET T1=RND(0) 530 LET R=R-10*S+10*L 540 IF R>0 THEN 570 550 LET R=-R 560 PRINT "SHIPS CROSS PATHS, ENTERPRISE "; 561 IF S < 0 THEN PRINT "TURNS IN RETREAT" 562 IF S > 0 THEN PRINT "TURNS IN PURSUIT" 563 IF S = 0 THEN PRINT "SITS THERE LIKE A DUMMY" 570 PRINT 580 IF W=0 GOTO 700 590 PRINT "ENTERPRISE SHOOTS."; 600 IF W>1 GOTO 1060 610 LET H=(25+.1*R+ABS(L))*RND(0) 620 IF H<20 THEN 650 630 PRINT " A MISS!" 640 GOTO 700 650 PRINT " A HIT!" 660 LET H1=H1+1 670 IF H1<2.5 GOTO 700 680 LET K=K-(P-.2*SQR(R))*(1+.2*H1)/7 690 IF K<=0 GOTO 1260 700 PRINT 710 IF T<>3 GOTO 830 720 IF W=0 THEN 760 730 PRINT "YOU DIDN'T ACT DEAD" 740 PRINT 750 GOTO 830 760 LET D9=RND (0) 770 IF S<>0 THEN 730 780 IF D9<.35 GOTO 130 790 PRINT 800 PRINT "THE KLINGONS ARE A SUSPICIOUS RACE" 810 PRINT 820 GOTO 830 830 PRINT "KLINGONS SHOOT."; 840 IF RND(0)>.15 THEN 860 850 GOSUB 1480 860 LET H=(25+.1*R+ABS(S))*RND(0) 870 IF H<20 THEN 920 880 PRINT " A MISS!" 890 PRINT 900 IF E<=0 GOTO 1310 910 GOTO 130 920 PRINT " A HIT!" 930 LET H2=H2+1 940 LET P1=.5*K-.1*R-F 950 IF P1>0 GOTO 1000 960 PRINT 970 PRINT "SHIELDS HELD! NO DAMAGE!" 980 PRINT 990 GOTO 130 1000 LET E=E-INT(P1) 1010 IF E<=0 GOTO 1310 1020 PRINT 1030 PRINT "ENGINEERING REPORTS A ";INT(P1);"STROM LOSS" 1040 PRINT 1050 GOTO 130 1060 LET Z=Z+1 1070 IF Z<5 GOTO 1120 1080 PRINT "NO MORE TORPEDOES!"; 1090 IF W=2 GOTO 700 1100 PRINT " PROCEEDING WITH PHASERS!" 1110 GOTO 610 1120 PRINT " PHOTON TORPEDO ATTACK. "; 1130 LET H=(25+.1*R+ABS(L))*RND(0) 1140 IF H<25 THEN 1170 1150 PRINT "A MISS!" 1160 GOTO 1220 1170 PRINT "A HIT!" 1180 LET H1=H1+1 1190 IF H1<2.5 GOTO 1220 1200 LET K=K-(50-.2*SQR(R))*(1+.2*H1)/7 1210 IF K<=0 GOTO 1260 1220 PRINT 1230 IF W=2 GOTO 830 1240 PRINT "NOW, PHASER ATTACK."; 1250 GOTO 610 1260 PRINT 1270 PRINT "KLINGON SHIP IS DESTROYED!" 1280 PRINT "JOB WELL DONE, KIRK!" 1290 PRINT "STAR FLEET SENDS ITS CONGRATULATIONS!" 1300 STOP 1310 PRINT 1320 PRINT "ENTERPRISE IS DESTROYED!" 1330 PRINT "A CAPTAIN KIRK YOU'RE NOT" 1340 PRINT 1350 PRINT "BETTER LUCK NEXT TIME" 1360 STOP 1370 PRINT 1380 PRINT "SIR: WE HAVE TAKEN ";H2;"HITS" 1390 PRINT "THE KLINGON HAS TAKEN ";H1;"HITS" 1400 PRINT "SENSORS ESTIMATE ENEMY HAS";INT(K+10*RND(0)-10*RND(0)); 1410 PRINT "ENERGY KLINGS LEFT." 1420 IF Z<=4 THEN 1440 1430 LET Z=4 1440 IF Z<3 THEN PRINT "WE HAVE ";4-Z;" TORPEDO SALVOS LEFT" 1441 IF Z=3 THEN PRINT "WE HAVE ",4-Z;" TORPEDO SALVO LEFT" 1442 IF Z=4 THEN PRINT "WE HAVE NO TORPEDO SALVOS LEFT" 1450 PRINT "KLINGON'S LAST SPEED WAS WARP";ABS(L) 1460 PRINT 1470 GOTO 210 1480 PRINT 1490 PRINT "LOOK OUT! QUANTUM BOMB ATTACK! "; 1500 LET H=(25+.1*R+ABS(S))*RND(0) 1510 IF H<25 THEN 1540 1520 PRINT "A MISS!" 1530 GOTO 1660 1540 PRINT "A HIT!" 1550 LET H2=H2+1 1560 LET P1=55-.1*R-F 1570 IF P1>0 THEN 1610 1580 PRINT 1590 PRINT "SHIELDS HELD! NO DAMAGE!" 1600 GOTO 1660 1610 LET E=E-INT(P1) 1620 IF E>0 THEN 1640 1630 RETURN 1640 PRINT 1650 PRINT "ENGINEERING REPORTS A ";INT(P1);"STROM LOSS." 1660 PRINT 1670 PRINT "NOW, THE DISRUPTER BEAM ATTACK!"; 1680 RETURN 1690 PRINT 1700 PRINT "THE KLINGON HAS JUST CROSSED INTO THE NEUTRAL ZONE!" 1710 PRINT "YOU CANNOT FOLLOW INTO THE ZONE" 1720 PRINT 1730 STOP 1740 PRINT "SHIELD MAX IS 50 STROMS." 1750 GOTO 240 1760 PRINT 1770 PRINT "CAN'T GO THAT FAST" 1780 PRINT 1790 GOTO 240 1800 PRINT 1810 PRINT "NO NEGATIVE SPEEDS, PLEASE" 1820 PRINT 1830 GOTO 240 1840 PRINT "ENERGY RESERVE NOT LARGE ENOUGH" 1850 PRINT "TRY AGAIN" 1860 PRINT 1870 GOTO 240 1880 END