5 REM RANDOMIZE: REM *** MECC BOMBRUN *** REV.A 2-2-78 10 REM WRITTEN BY JIM PRELESNIK 11 PRINT TAB(15);"*#*#*#*#*#*#*#*#*#*#*#*#*" 12 PRINT TAB(15);"#*# #*#" 13 PRINT TAB(15);"*#* B O M B R U N *#*" 14 PRINT TAB(15);"#*# #*#" 15 PRINT TAB(15);"*#*#*#*#*#*#*#*#*#*#*#*#*" 16 PRINT 20 PRINT " THIS PROGRAM SIMULATES A BOMBING RUN." 25 PRINT 30 PRINT " DO YOU NEED INSTRUCTIONS ? " 40 INPUT " TYPE IN: 1=YES 0=NO ---=>"I 50 IF I=0 THEN 280 60 PRINT 80 PRINT TAB(7);"YOU HAVE THE OPTION OF MAKING FOUR PASSES" 90 PRINT " OVER THE TARGET, WITH THE ABILITY TO DROP" 100 PRINT " A SINGLE BOMB ONCE DURING EACH OF THESE PASSES." 110 PRINT " ALTITUDE CHANGES MAY BE MADE THROUGH THE" 120 PRINT " 'CLIMB/DIVE' COMMAND BY INPUTTING AN ANGLE OF " 125 PRINT " +15 TO -15. '0' MEANS NO ANGLE CHANGE." 130 GOSUB 2700 135 PRINT TAB(15);"NEW VELOCITIES" 140 PRINT " (RANGING FROM 300 TO 900 FEET PER SECOND)" 145 PRINT " MAY BE INPUTTED AFTER THE 'AIRSPEED'" 150 PRINT " AND QUESTION MARK." 160 PRINT TAB(8);"'CLIMB/DIVE' COMMANDS ARE AS FOLLOWS:" 165 PRINT " +1 TO +15 = 'CLIMB' -1 TO -15 = 'DIVE'" 170 PRINT TAB(9);"*** '0' MEANS KEEP SAME ANGLE ! ***" 175 PRINT TAB(9);"YOUR PLANE CAN NOT DIVE OR CLIMB MORE THAN" 180 PRINT " +60 DEGRESS (CLIMB) OR -60 (DIVE)." 185 GOSUB 2700 190 PRINT " A MINIMUM ALTITUDE OF 100 FEET MUST ALSO BE" 195 PRINT " MAINTAINED." 200 PRINT " WILLFULLY EXCEEDING ANY OF THE MAX./MIN. SPECS" 205 PRINT " WILL RESULT IN THE CRASH OF YOUR BOMBER." 210 PRINT " ALSO, A BOMB COMMAND OF 'DROP' DURING A DIVE" 220 PRINT " WILL GIVE YOUR BOMB AN INITIAL DOWNWARD" 230 PRINT " VELOCITY, SHORTENING THE DROP TIME, AS A" 235 PRINT " 'CLIMB' COMMAND WILL LENGTHEN THIS TIME." 240 GOSUB 2700 245 PRINT " THE BOMB WILL BE LAUNCHED IMMEDIATELY FOLLOWING" 250 PRINT " THE MOST RECENT 'STATS' READOUT UPON 'DROP'" 260 PRINT " COMMAND, AND WILL BE HELD FOR FURTHER" 265 PRINT " POSITIONING INFORMATION UPON THE COMMAND" 270 PRINT " THE TARGET IS ONE FOOT IN DIAMETER." 275 GOSUB 2700 280 PRINT 285 PRINT TAB(15);"**** GOOD LUCK ****" 290 PRINT 300 Z1=1000 305 Z2=1000 310 Z3=1000 315 Z4=1000 320 LET R=R+1 330 W1=0 340 W2=0 350 W3=0 360 W4=0 370 A=0 380 A1=0 390 T=0 410 LET V1=RND(-1) 420 LET V=INT(V1*1000) 430 IF V<300 THEN 410 435 IF V>900 THEN 410 440 LET Y1=RND(-1) 450 LET Y=INT(Y1*500) 460 IF Y<100 THEN 440 470 LET X=4500 480 PRINT 490 PRINT 500 LET E=X/V 510 PRINT TAB(20);"**INITIAL**" 520 PRINT TAB(20);"***STATS***" 530 GOTO 1430 540 LET W1=0: W2=0: W3=0: W4=0 580 PRINT 590 PRINT " BOMB COMMAND ? (ENTER 1=STAND BY 2=DROP)"; 600 INPUT "----=>"C 610 IF C=1 THEN 640 615 IF C=2 THEN 1680 620 PRINT TAB(15);" WHAAAT ???" 630 PRINT " PLEASE REPLY ( 1=STAND BY OR 2=DROP )." 635 GOTO 580 640 PRINT " STANDING BY." 650 PRINT 660 GOTO 700 670 LET A=A-A1 680 LET T=T-1 690 GOTO 770 700 INPUT " ENTER ANY ALTITUDE CHANGE. (-15 TO +15) ------=>"A1 730 PRINT 740 IF A1=0 THEN 1130 750 IF A1<0 THEN A9=2 760 IF A1>0 THEN A9=1 770 IF A9=2 THEN A1=ABS(A1) 780 IF A1<16 THEN 930 870 LET W1=W1+1 880 IF W1=2 THEN 2120 890 PRINT " YOUR BOMBER CAN'NT TOLERATE THE STRESS CAUSED" 900 PRINT " BY ANGLE INPUTS EXCEEDING 15 DEGREES." 905 PRINT 910 PRINT TAB(10);"*** RECONSIDER YOUR CHOICE ***" 915 PRINT 920 GOTO 700 930 IF A9=1 THEN 950 940 LET A1=-A1 950 LET A=A+A1 960 IF A<-60 THEN 990 970 IF A>60 THEN 1060 980 GOTO 1140 990 LET W2=W2+1 1000 IF W2=2 THEN 2170 1010 PRINT " YOUR PRESENT 'DIVE' COMMAND WILL EXCEED THE" 1020 PRINT " MAXIMUM RESULTANT DIVE ANGLE OF 60 DEGREES," 1030 PRINT " CAUSING AN IRREVERSIBLE NOSEDIVE." 1035 PRINT 1040 PRINT TAB(10);"*** RECONSIDER YOUR CHOICE ***" 1045 PRINT 1050 GOTO 670 1060 LET W3=W3+1 1070 IF W3=2 THEN 2210 1080 PRINT " YOUR PRESENT 'CLIMB' COMMAND WILL EXCEED THE" 1090 PRINT " MAX RESULTANT CLIMB ANGLE OF 60 DEGREES, CAUSING" 1100 PRINT " YOUR ENGINES TO FAIL AND YOUR PLANE TO CRASH." 1105 PRINT 1110 PRINT TAB(10);">+< RECONSIDER YOUR CHOICE >+<" 1115 PRINT 1120 GOTO 670 1130 LET A1=0 1140 INPUT " AIRSPEED ? ( 300 TO 900 ) ----=>"V 1150 PRINT 1160 IF V>900 THEN 1190 1170 IF V<300 THEN 1230 1180 GOTO 1290 1190 PRINT " YOUR BOMBER ISN'T CAPABLE OF ATTAINING THAT VELOCITY." 1200 PRINT " INPUT AN AIRSPEED LESS THAN 900 FEET PER SECOND." 1210 PRINT 1220 GOTO 1150 1230 LET W4=W4+1 1240 IF W4=2 THEN 2250 1250 PRINT " IF YOUR VELOCITY ISN'T INCREASED IMMEDIATELY, YOUR" 1260 PRINT " BOMBER WILL FALL TO EARTH AND BE DESTROYED." 1270 PRINT 1280 GOTO 1140 1290 LET T=T+1 1300 LET B=A*3.14159/180 1310 LET Y=Y+V*SIN(B) 1320 IF Y>100 THEN 1390 1330 LET W5=W5+1 1340 IF W5=2 THEN 2290 1350 PRINT TAB(7);"IF YOUR ALTITUDE ISN'T INCREASED IMMEDIATELY" 1360 PRINT " TO A MINIMUM OF 100 FEET, A CRASH IS IMMINENT." 1370 PRINT 1380 GOTO 670 1390 LET X=X-V*COS(B) 1400 IF X<=0 THEN 2350 1410 LET E=X/(V*COS(B)) 1420 PRINT TAB(15);"***STATS***" 1430 PRINT 1440 IF T<>1 THEN 1470 1450 PRINT TAB(12);" ELAPSED TIME... 1 SECOND" 1460 GOTO 1480 1470 PRINT TAB(12);" ELAPSED TIME...";T;" SECONDS" 1480 IF A1<>0 THEN 1510 1490 PRINT " PRESENT ANGLE COMMAND... 0 DEGREES." 1500 GOTO 1550 1510 IF A9=1 THEN 1540 1520 PRINT TAB(5);"PRESENT ANGLE COMMAND... DIVE,";-A1;" DEGREES." 1530 GOTO 1550 1540 PRINT TAB(5);"PRESENT ANGLE COMMAND... CLIMB,";A1;" DEGREES." 1550 IF A<0 THEN 1590 1560 IF A>0 THEN 1610 1570 PRINT TAB(11);"RESULTANT ANGLE... 0 DEGREES" 1580 GOTO 1620 1590 PRINT TAB(11);"RESULTANT ANGLE...";-A;" DEGREES DIVING." 1600 GOTO 1620 1610 PRINT TAB(11);"RESULTANT ANGLE...";A;" DEGREES CLIMBING." 1620 PRINT TAB(10);"PRESENT VELOCITY...";V;" FEET PER SECOND." 1630 PRINT TAB(18);"ALTITUDE...";Y;" FEET." 1640 PRINT TAB(8);"DISTANCE FROM SITE...";X;" FEET." 1650 PRINT " ESTIMATED TIME OF ARRIVAL...";E;" SECONDS." 1660 PRINT 1670 GOTO 540 1680 PRINT TAB(15);"**********************" 1685 PRINT TAB(15);"*** BOMB DROPPED ***" 1687 PRINT TAB(15);"**********************" 1690 LET T3=(SQR(((V*SIN(B))*(V*SIN(B)))+64.4*Y)+V*SIN(B))/32.2 1700 PRINT " TIME TO EXPLOSION...";T3;" SECONDS." 1710 LET X=X-V*COS(B)*T3 1720 REM X=1/(X/2): REM REM ==== WAS ---> LET X=ROF(X,2) 1730 PRINT 1740 IF X<-.5 THEN 1780 1750 IF X>.5 THEN 1800 1760 PRINT " CONGRATULATIONS, YOU SCORED A PERFECT HIT." 1765 PRINT 1770 GOTO 2040 1780 PRINT " THE BOMB LANDED";-X;" FEET BEYOND THE TARGET'S CENTER." 1785 PRINT 1790 GOTO 1810 1800 PRINT " THE BOMB LANDED";X;" FEET IN FRONT OF THE TARGET'S CENTER." 1805 PRINT 1810 IF R=1 THEN 1850 1820 IF R=2 THEN 1870 1830 IF R=3 THEN 1890 1840 IF R=4 THEN 1910 1850 LET Z1=ABS(X) 1860 GOTO 2400 1870 LET Z2=ABS(X) 1880 GOTO 2420 1890 LET Z3=ABS(X) 1900 GOTO 2440 1910 LET Z4=ABS(X) 1920 X5=Z1 1925 IF X5"I 2060 IF I=0 THEN 2590 2070 IF I=1 THEN 2100 2080 PRINT " PLEASE REPLY WITH A NUMBER : 1=YES OR 0=NO." 2090 GOTO 2050 2100 LET R=0 2110 GOTO 290 2120 PRINT TAB(7);"YOU TORE THE WINGS OFF OF YOUR BOMBER BY" 2130 PRINT " EXCEEDING THE MAXIMUM ANGLE INPUT OF 15 DEGREES." 2140 PRINT TAB(15);"NEXT TIME TAKE MY ADVICE." 2150 LET H=1 2160 GOTO 1920 2170 PRINT " THE STEEP DIVE ANGLE DESIRED CAUSED AN IRREVERSIBLE" 2180 PRINT " NOSEDIVE, RESULTING IN THE DESTRUCTION OF YOUR BOMBER." 2190 LET H=1 2200 GOTO 1920 2210 PRINT " THE ENGINES OF YOUR BOMBER FAILED WHILE CLIMBING THE" 2220 PRINT " STEEP ANGLE INPUT DURING YOUR ANGLE COMMAND OPPORTUNITY." 2230 LET H=1 2240 GOTO 1920 2250 PRINT " THE VELOCITY OF YOUR BOMBER WAS INSUFFICIENT TO" 2260 PRINT " SUPPORT IT'S WEIGHT, AND CONSEQUENTLY IT CRASHED." 2270 LET H=1 2280 GOTO 1920 2290 PRINT TAB(6);"YOUR BOMBER FAILED TO MAINTAIN THE LOW" 2300 PRINT " ALTITUDE YOU DESIRED AND SOON CRASHED." 2305 PRINT 2310 PRINT TAB(15);"<*> BETTER LUCK NEXT TIME. <*>" 2320 LET H=1 2330 GOTO 1920 2340 PRINT TAB(7);"YOUR BOMBER JUST PASSED UP THE TARGET, AND" 2350 PRINT " NEEDLESS TO SAY, YOU NO LONGER THREATEN ITS EXISTANCE." 2360 PRINT 2370 IF R=2 THEN 2420 2380 IF R=3 THEN 2440 2390 IF R=4 THEN 1920 2400 LET Q9=2: REM "SECOND" PASS 2410 GOTO 2450 2420 LET Q9=3: REM "THIRD" PASS 2430 GOTO 2450 2440 LET Q9=4: REM "FOURTH AND FINAL" PASS 2450 IF R>1 THEN 2490 2460 PRINT TAB(7);"YOU HAVE THUS FAR COMPLETED 1 RUN." 2480 GOTO 2500 2490 PRINT " YOU HAVE THUS FAR COMPLETED";R;" RUNS." 2500 PRINT " WOULD YOU LIKE TO MAKE ANOTHER PASS?" 2510 INPUT " TYPE IN: 1=YES 0=NO ---=>"R9 2515 R=R+1 2520 IF R9=1 THEN 2560 2530 IF R9=0 THEN 2620 2540 PRINT " PLEASE REPLY WITH A NUMBER : 1=YES OR 0=NO." 2550 GOTO 2500 2560 PRINT TAB(7);"YOUR PLANE HAS CIRCLED, AND IS NOW IN" 2565 PRINT " POSITION TO MAKE ITS # ";Q9; 2570 IF Q=4 THEN PRINT " FINAL"; 2575 PRINT " PASS." 2580 GOTO 330 2590 PRINT 2600 PRINT " LOOK OVER THE PHYSICS LAWS GOVERNING FALLING" 2610 PRINT " BODIES, AND RETURN TO PLAY AGAIN SOON." 2620 PRINT 2630 IF R9=0 THEN PRINT TAB(10);"*** B Y E ***" 2650 GOTO 2800 2700 PRINT : REM ============= GOSUB TO 'PAGE' INSTRUTIONS ==== 2710 INPUT " TYPE IN ANY NUMBER WHEN READY TO SEE MORE ---=>"I 2720 PRINT 2730 PRINT 2740 RETURN 2800 END