10 REM STRWR.ECB 15 REM ....WRITTEN BY ROBB (MITHRANDIR) BORLAND 10/4/77 20 REM == MECC "STRWAR1" === REWORKED 03-20-78 25 DIM Z$(60): PRINT "&K&J": REM .... RANDOMIZE 30 PRINT TAB(22);"..=*=.." 40 PRINT TAB(18);".-=* *=-." 50 PRINT TAB(16);"-=/ \=-" 60 PRINT TAB(15);"+*( S T R W A R )*+" 70 PRINT TAB(16);"-=\ /=-" 80 PRINT TAB(18);"'-=* *=-'" 90 PRINT TAB(22);"''=*=''" 100 PRINT TAB(8);"THIS PROGRAM WILL SIMULATE AN ATTEMPT TO" 110 PRINT " DESTROY THE INFAMOUS 'STARWARS' DEATH STAR." 120 PRINT 130 PRINT " DO YOU NEED INSTRUCTIONS? "; 140 GOSUB 3810 150 IF A9=0 THEN 1200 160 PRINT 200 PRINT TAB(7);"YOU MUST MANUVER DOWN A TRENCH 500,000 FEET" 210 PRINT " LONG, 200 FEET WIDE, AND 200 FEET DEEP TO A POINT" 220 DATA " 10,000 FEET FROM THE END OF THE TRENCH AND DEAD" 230 DATA " IN THE CENTER OF IT. AT THIS TIME, YOUR ON-BOARD" 240 DATA " COMPUTER WILL AUTOMATICALLY FIRE 2 PROTON MISSILES AT" 250 DATA " A SMALL THERMAL EXHAUST PORT AT THE END OF THE TRENCH." 260 DATA " YOU MUST DO ALL OF THIS AND AT THE SAME TIME" 270 DATA " NOT GET YOUR BUTT BLOWN OFF BY DARTH VADER, WHO IS" 280 DATA " CHASING YOU. *** DO YOU STILL WANT TO TRY IT???" 285 GOSUB 3450 290 GOSUB 3800 300 IF A9=0 THEN 3900 310 PRINT " GOOD. HERE ARE A FEW MORE DETAILS." 320 PRINT 330 PRINT " MAXIMUM FIGHTER SPEED --- 5,000 FEET PER SECOND" 340 PRINT " MINIMUM FIGHTER SPEED --- 1,000 FEET PER SECOND" 350 PRINT " LENGTH OF TRENCH --- 500,000 FEET." 360 PRINT " WIDTH OF TRENCH --- 200 FEET." 370 PRINT " DEPTH OF TRENCH --- 200 FEET." 380 PRINT " AUTOMATIC FIRING RANGE --- 10,000 FEET." 390 PRINT " EXHAUST PORT DIAMETER --- 6 FEET." 400 GOSUB 3850 410 PRINT TAB(7);"THE TRENCH IS SET UP ON A CO-ORDINATE SYSTEM" 420 DATA " WITH THE ORIGIN (0,0,0) AT THE CENTER OF THE EXHAUST PORT." 430 DATA " YOU WILL START AT THE FAR END OF THE TRENCH" 440 DATA " AT POSITION (0,0,500000). YOU COULD FLY STRAIGHT" 450 DATA " DOWN THE CENTER OF THE TRENCH, EXCEPT THAT 5 SECONDS" 460 DATA " AFTER YOU START, AND FOR EVERY 10 SECONDS AFTERWARD," 470 DATA " A TURRET-MOUNTED TURBO-LASER WILL FIRE STRAIGHT DOWN THE" 480 DATA " MIDDLE OF THE TRENCH, DESTROYING EVERYTHING IN IT'S PATH!" 485 GOSUB 3450 490 GOSUB 3850 500 DATA " SINCE YOU WILL BE ASKED EVERY 10 SECONDS IF" 510 DATA " YOU WISH TO CHANGE COURSE AND/OR SPEED, THEN YOU" 520 DATA " MUST GET AWAY FROM THE CENTER OF THE TRENCH ON YOUR" 530 DATA " FIRST MANUVER OR ELSE BE DESTROYED." 540 DATA " IF YOU ARE AWAY FROM THE CENTER, THERE IS ONE" 550 DATA " CHANCE IN FORTY FOR EACH TEN SECOND INTERVAL THAT" 560 DATA " YOU WILL BE DESTROYED BY RANDOM TURBO-LASER FIRE." 565 GOSUB 3450 570 GOSUB 3850 600 DATA " SINCE IT WILL TAKE YOU A MINIMUM OF 100 SECONDS TO" 610 DATA " FLY THE LENGTH OF THE TRENCH, THEN YOU HAVE AT LEAST" 620 DATA " ONE CHANCE IN FOUR THAT YOU WILL BE DESTROYED THAT WAY." 630 DATA " ALSO, IF DARTH VADER GETS A SHOT OFF AT YOU AND" 640 DATA " YOU DID NOT TRY TO AVOID HIM, YOU HAVE ONLY ONE " 650 DATA " CHANCE IN FOUR OF SURVIVING. THEREFORE, IT BEHOOVES" 660 DATA " YOU TO STAY AWAY FROM HIM WHENEVER POSSIBLE. " 665 GOSUB 3450 670 GOSUB 3850 700 PRINT " THE FIRST NUMBER OF THE CO-ORDINATE SYSTEM REFERS" 710 PRINT " TO YOUR POSITION BETWEEN THE WALLS OF THE TRENCH. " 720 PRINT " THE LEFT WALL HAS A VALUE OF -100, THE CENTER IS " 730 PRINT " 0, AND THE RIGHT WALL IS 100." 740 PRINT " TRY NOT TO HIT THE WALLS." 750 GOSUB 3850 760 DATA " THE SECOND NUMBER REFERS TO YOUR DEPTH IN THE" 770 DATA " TRENCH. THE BOTTOM HAS A VALUE OF -100, THE CENTER " 780 DATA " IS 0, AND THE TOP IS 100. YOU CAN FLY OUT OF THE TOP " 790 DATA " OF THE TRENCH, BUT IF YOU DO, YOUR CHANCES OF BEING " 800 DATA " HIT BY TURBO-LASER FIRE WILL INCREASE TO ONE CHANCE " 810 DATA " IN FIVE FOR EACH 10 SECOND INTERVAL THAT YOU ARE OUT " 820 DATA " OF THE TRENCH. ALSO, TRY NOT TO HIT THE BOTTOM. " 825 GOSUB 3450 830 GOSUB 3850 840 PRINT " THE THIRD NUMBER REFERS TO THE DISTANCE REMAINING" 850 PRINT " BETWEEN YOU AND THE APPROACHING END OF THE TRENCH. " 860 PRINT " WHEN THAT DISTANCE EQUALS 10,000, YOUR MISSILES " 870 PRINT " WILL AUTOMATICALLY FIRE." 880 GOSUB 3850 890 PRINT " THE FIRST NUMBER OF THE COURSE CO-ORDINATES REFERS " 900 PRINT " TO THE HORIZONTAL POSITION YOU WILL HAVE WHEN YOU " 910 PRINT " REACH THE AUTOMATIC FIRING RANGE (A.F.R.) IF YOU " 920 PRINT " MAINTAIN THAT COURSE. " 930 PRINT 940 PRINT " THE SECOND COURSE CO-ORDINATE REFERS TO THE VERTICAL " 950 PRINT " POSITION YOU WILL HAVE WHEN YOU REACH THE A.F.R. IF " 960 PRINT " YOU MAINTAIN THAT COURSE. KEEP THIS IN MIND " 970 PRINT " WHEN YOU ARE ASKED TO MAKE COURSE CORRECTIONS. " 980 GOSUB 3850 990 PRINT " SINCE YOUR WINGSPAN IS 30 FEET, THEN THE MAXIMUM " 1000 PRINT " VALUES THAT YOUR WIDTH CO-ORDINATE CAN HAVE IS " 1010 DATA " + OR - 85. ALSO, SINCE YOUR FIGHTER IS TEN " 1020 DATA " FEET DEEP, YOUR LOWEST DEPTH CO-ORDINATE IS -90. " 1030 DATA " EXCEED THESE AND YOU ARE A GONER. ALSO, YOU MUST " 1040 DATA " PULL UP AT THE END OF THE TRENCH IN ORDER TO MISS " 1050 DATA " THE END WALL AND A GUN EMPLACEMENT ON TOP OF THE WALL. " 1060 DATA " IF YOU MANAGE TO HIT EITHER OF THEM, YOU WILL NOT BE " 1070 DATA " TOLD IF YOUR MISSILES WERE ON TARGET OR NOT. " 1075 GOSUB 3450 1080 PRINT 1090 PRINT " ARE YOU READY? "; 1100 GOSUB 3810 1120 IF A9=0 THEN 3900 1190 PRINT 1200 PRINT " GOOD. HERE WE GO." 1210 PRINT 1220 LET P=500000 1225 LET P9=.1: REM ... ==== DIFFICULTY LEVEL: ORIGINAL WAS .001 1230 LET H1=0 1240 LET V1=0 1250 LET H2=0 1260 LET V2=0 1270 LET V6=0 1280 LET T=0 1290 LET U=1 1300 PRINT TAB(10);"VITAL STATS" 1310 PRINT TAB(9);"*************" 1320 PRINT 1330 PRINT TAB(5);"POSITION---(";H1;",";V1;",";P;" )" 1340 PRINT " COURSE---(";H2;",";V2;" )" 1350 PRINT " SPEED---";V6;" FT. PER SEC." 1360 PRINT " ELAPSED TIME---";T;" SECONDS" 1370 IF P>60000 THEN 1410 1380 PRINT 1390 IF P>35000 THEN 2260 1400 IF P<35000 THEN 2550 1410 PRINT 1420 PRINT " INPUT NEW COURSE.---=>"; 1430 INPUT H2,V2 1440 IF ABS(H2)<85 THEN 1510 1450 PRINT " ON THIS COURSE, YOU WILL EVENTUALLY IMPACT ON THE" 1460 IF H2<85 THEN PRINT " RIGHT WALL OF THE TRENCH." 1470 IF H2>-85 THEN PRINT " LEFT WALL OF THE TRENCH." 1510 IF V2>-90 THEN 1540 1520 PRINT " ON THIS COURSE, YOU WILL EVENTUALLY IMPACT ON THE" 1530 PRINT " FLOOR OF THE TRENCH." 1540 PRINT 1550 INPUT " INPUT NEW SPEED. ---=>",V6 1570 PRINT 1580 IF V6<1000 THEN PRINT " SPEED TOO LOW. TRY AGAIN." 1590 IF V6<1000 THEN 1540 1620 IF V6>5000 THEN PRINT " SPEED TOO HIGH. TRY AGAIN." 1630 IF V6>5000 THEN 1540 1640 LET H=ABS(H2-H1) 1650 LET V=ABS(V2-V1) 1660 LET R=SQR((H*H)+(V*V)) 1670 LET T1=R/(P-10000) 1680 LET T2=T1*(0.0174533): REM ... === CONVERSION TO RADIANS 1690 LET V8=TAN(T2): REM ... === WAS V9=V6*COS(ATN(T1)) 1700 LET V9=V6*COS(V8) 1710 LET D=V9*10 1720 LET H3=H*D/(P-10000) 1730 LET V3=V*D/(P-10000) 1740 IF H2

0 THEN 1830 1770 LET Y1=H1+H3 1780 IF Y1<>0 THEN 1830 1790 IF V1<>0 THEN 1830 1800 LET Z1=V1+V3 1810 IF Z1<>0 THEN 1830 1820 GOTO 3410 1830 LET H1=INT(100*(H1+H3))/100 1840 LET V1=INT(100*(V1+V3))/100 1850 LET P=P-D 1860 IF H1<-85 THEN 3180 1870 IF H1>85 THEN 3210 1880 IF V1<-90 THEN 3240 1890 IF V1>100 THEN 2000 1900 IF P<60000 THEN 2230 1910 GOTO 1960 1920 LET H3=H3*(-1) 1930 GOTO 1750 1940 LET V3=V3*(-1) 1950 GOTO 1760 1960 LET F=RND(0) 1970 IF F>.96 THEN 3270 1980 IF U<.4 THEN 2060 1990 GOTO 2160 2000 PRINT " YOU ARE NOW ABOVE AND OUT OF THE TRENCH." 2010 LET G=RND(0) 2020 IF G<.2 THEN 3270 2030 LET T=T+10 2040 PRINT 2050 GOTO 2170 2060 LET Q=ABS(V3) 2070 LET W=ABS(H3) 2080 LET J=SQR((Q*Q)+(W*W)) 2090 IF J>1 THEN 2130 2100 LET L=RND(0) 2110 IF L>.2 THEN 3380 2120 GOTO 2150 2130 LET S=RND(0) 2140 IF S>.9 THEN 3380 2150 PRINT 2160 LET T=T+10 2170 LET U=RND(0) 2180 IF U>.4 THEN 1300 2190 PRINT " WATCH IT !! DARTH VADER IS RIGHT BEHIND YOU." 2200 PRINT " *** YOU HAD BETTER MANUVER. ***" 2210 PRINT 2220 GOTO 1300 2230 PRINT "*** MISSILE FIRING SEQUENCER ACTIVATED ***" 2240 PRINT 2250 GOTO 1300 2260 PRINT TAB(10);"YOU MUST GET BACK TO THE CENTER" 2270 PRINT " OF THE TRENCH AS SOON AS POSSIBLE." 2280 PRINT 2290 PRINT " INPUT NEW COURSE.---=>"; 2300 INPUT H2,V2 2310 PRINT 2320 INPUT " INPUT NEW SPEED. --->",V6 2340 PRINT 2350 LET H=ABS(H2-H1) 2360 LET V=ABS(V2-V1) 2370 LET R=SQR((H*H)+(V*V)) 2380 LET T1=R/(P-10000) 2390 LET V9=V6*COS(V8) 2400 LET T2=T1*(0.0174533): REM ... === CONVERSION TO RADIANS 2410 LET V8=TAN(T2): REM ... === WAS V9=V6*COS(ATN(T1)) 2420 LET D=V9*10 2430 LET H3=H*D/(P-10000) 2440 LET V3=V*D/(P-10000) 2450 IF H2

P9 THEN 3160 2550 IF H1<-P9 THEN 3160 2560 IF V1>P9 THEN 3160 2570 IF V1<-P9 THEN 3160 2580 PRINT " GOOD. YOU ARE IN POSITION. NOW YOU" 2590 PRINT " MUST GET ON COURSE AND REACH THE AUTOMATIC FIRING" 2600 LET X=INT(P-10000) 2610 PRINT " RANGE WITHIN THE NEXT FIVE SECONDS OR BE DESTROYED." 2620 PRINT TAB(9);" YOU ARE PRESENTLY ";X 2630 PRINT " FEET AWAY FROM THE AUTOMATIC FIRING RANGE." 2640 PRINT 2650 INPUT " INPUT NEW COURSE.---=>",H2,V2 2670 PRINT 2680 INPUT " INPUT NEW SPEED. ---=>",V6 2700 LET D1=V6*5 2710 IF D1",P 2790 IF P<1.66 THEN 3080 2800 IF P>10 THEN 3050 2810 PRINT 2820 PRINT " YOUR FIGHTER HAS SAFELY MADE IT OUT OF THE TRENCH." 2830 PRINT 2840 IF H2<>0 THEN 3020 2850 IF V2<>0 THEN 2990 2860 LET K=RND(0) 2870 IF K>.5 THEN 2960 2880 PRINT 2890 PRINT TAB(15);"***** CONGRATULATIONS *****" 2895 PRINT TAB(8);"YOU HAVE DESTROYED THE DEATH STAR WITH A" 2900 PRINT " DIRECT HIT BY YOUR MISSILES ON THE EXHAUST PORT." 2910 GOTO 4000 2920 LET H3=H3*(-1) 2930 GOTO 2460 2940 LET V3=V3*(-1) 2950 GOTO 2470 2960 PRINT TAB(7);"YOU MADE THE PULLUP BUT YOUR MISSILES" 2970 PRINT " MISSED THE EXHAUST PORT." 2980 GOTO 3950 2990 PRINT TAB(8);"YOU WERE OFF COURSE VERTICALLY AND" 3000 PRINT " YOUR MISSLES MISSED THE EXHAUST PORT." 3010 GOTO 3950 3020 PRINT TAB(8);"YOU WERE OFF COURSE HORIZONTALLY AND" 3030 PRINT " YOUR MISSLES MISSED THE EXHAUST PORT." 3040 GOTO 3950 3050 PRINT TAB(8);"YOUR PULLUP ANGLE WAS TOO STEEP AND" 3060 PRINT " YOUR FIGHTER BROKE APART FROM THE STRESS." 3070 GOTO 3950 3080 GOSUB 3600 3090 PRINT TAB(8);"YOUR PULLUP ANGLE WAS TOO SHALLOW AND" 3100 PRINT " YOUR FIGHTER CRASHED INTO THE GUN EMPLACEMENT." 3110 GOTO 3950 3120 GOSUB 3700 3130 PRINT TAB(8);"YOU WERE CENTERED TOO LONG IN THE TRENCH" 3140 PRINT " AND DESTROYED BY TURBO-LASER FIRE." 3150 GOTO 3950 3160 PRINT " YOU ARE OUT OF POSITION AND IT IS TOO LATE TO CORRECT." 3170 GOTO 3950 3180 GOSUB 3500 3190 PRINT " YOU JUST HIT THE LEFT WALL OF THE TRENCH." 3200 GOTO 3940 3210 GOSUB 3500 3220 PRINT " YOU JUST HIT THE RIGHT WALL OF THE TRENCH." 3230 GOTO 3940 3240 GOSUB 3500 3250 PRINT " YOU JUST HIT THE FLOOR OF THE TRENCH." 3260 GOTO 3940 3270 GOSUB 3700 3275 PRINT " YOUR FIGHTER HAS BEEN DESTROYED BY TURBO-LASER FIRE." 3280 PRINT " YOUR FIGHTER HAS BEEN DESTROYED BY TURBO-LASER FIRE." 3290 GOTO 3950 3300 PRINT " YOU WERE TRAVELLING TOO FAST AND PASSED THE A.F.R." 3310 PRINT " TOO SOON. YOU ARE OUT OF POSITION." 3320 GOTO 3950 3350 GOSUB 3600 3360 PRINT " YOU IMPACTED ON THE END WALL OF THE TRENCH." 3370 GOTO 3940 3380 GOSUB 3700 3390 PRINT " YOUR FIGHTER HAS BEEN DESTROYED BY DARTH VADER." 3400 GOTO 3950 3410 GOSUB 3700 3420 PRINT TAB(8);"YOU STAYED CENTERED IN THE TRENCH TOO LONG" 3430 PRINT " AND WERE DESTROYED BY TURBO-LASER FIRE." 3440 GOTO 3950 3450 FOR Z=1 TO 7: REM ... ==== USING "DATA": TOO MANY STRINGS! 3460 READ Z$ 3470 PRINT Z$ 3480 NEXT Z 3490 RETURN 3500 PRINT " E E E E Y YA-A-A-A-A !!! ^" 3510 PRINT TAB(30);"/ \" 3520 PRINT TAB(23);"..-=*// \\*=-.." 3530 PRINT TAB(10);"( )-----=<*=*=* C R A S H *=*=*>=-----( )" 3540 PRINT TAB(22);"*=*=*=*=*=*=*=*=*=*" 3550 PRINT TAB(25);"(+) (+)" 3560 RETURN 3600 PRINT TAB(18);"\ * ^ * /" 3610 PRINT TAB(14);"\ **************** /" 3620 PRINT TAB(10);"* -- *** B L A M *** -- *" 3630 PRINT TAB(14);"/ **************** \" 3640 PRINT TAB(17);"/ * V * \" 3650 RETURN 3700 PRINT 3710 PRINT TAB(20);"--==***^^^***==--" 3720 PRINT TAB(16);"-<*>= =<*>-" 3730 PRINT TAB(15);"*=* Z Z Z I T T T *=*" 3740 PRINT TAB(16);"-<*>= =<*>-" 3750 PRINT TAB(20);"--==***...***==--" 3760 PRINT 3770 RETURN 3800 PRINT 3810 INPUT (1,150)" TYPE IN 1=YES 0=NO --=>",A9 3820 PRINT 3830 RETURN 3850 PRINT 3860 INPUT (1,200)" ENTER ANY NUMBER TO SEE MORE ---=>",A9 3870 PRINT 3880 PRINT 3890 RETURN 3900 PRINT 3910 PRINT " CHICKEN !" 3920 GOTO 4000 3940 PRINT TAB(8);"*** YOUR FIGHTER HAS BEEN DESTROYED. ***" 3950 PRINT TAB(10);"<*> BETTER LUCK NEXT TIME <*>", 4000 END