10 REM .. LUNR4.BS5 ..from...MERITSS : GAME 12-15-77 20 PRINT "&K&J&J L U N A R&J&J" 100 REM ARKABLE CHANGES IN LUNAR HAVE BEEN ADDED BY KENT KEHRBERG 110 REM ADAPTED FROM DIGITAL EQUIPMENT CORPORATION 120 REM SIMULATED MOON LANDING 130 REM H-ALTITUDE, H2-RADIUS OF MOON, V-VELOCITY, F-FUEL, M-MASS SPACESHIP 140 REM T-TIME, R-RATE OF BURN, N$-NAME, A$-ANSWER(YES/NO), Z9-YES/NO FLAG 150 REM C-BURN ERROR FLAG, Z-OUTPUT TAB 160 REM TIES, DECEMBER 1972 170 REM MECC, OCTOBER 1974 180 Z9=0: N2=INT(RND(0)*10)+1 190 DIM Z(4) 200 FOR I=1 TO 4 210 LET Z(I)=12*I: N2=INT(RND(0)*10)+1 220 NEXT I 230 LET H2=1.74E+06 250 PRINT: PRINT %%;" 0 Random name" 251 FOR N1=1 TO 9 252 PRINT " ";N1;" "; 255 GOSUB 1700: PRINT 259 NEXT N1 260 PRINT: PRINT "WHAT IS YOUR NAME?"; 270 INPUT " ---=>"N1 280 PRINT 290 PRINT 300 PRINT " OK ";: GOSUB 1700: PRINT "," 305 PRINT " DO YOU WANT YOUR VEHICLES STATUS?"; 310 INPUT " (1=Yes, 0=No) --=>"P9 320 IF P9=1 THEN 360 330 IF P9=0 THEN 1490 335 IF P9<0 THEN 1800 340 PRINT "YES OR NO, PLEASE"; 350 GOTO 310 360 PRINT 370 PRINT "YOU HAVE 7500 KG OF FUEL AND THE TOTAL MASS OF YOUR" 380 PRINT "VEHICLE IS 15000 KG. YOU MAY CHOOSE YOUR BURN RATES" 390 PRINT "UP TO 100 KG A SECOND (NO MORE) EACH BURN WILL LAST" 400 PRINT "10 SECONDS. (THE FUEL EXHAUST VELOCITY IS 3000 M/SEC.) " 410 PRINT "YOU MUST GET YOUR SPEED DOWN BELOW 28 M/SEC FOR SURVIVAL." 420 PRINT 430 PRINT "GOOD LUCK, ";: GOSUB 1700: PRINT "." 440 PRINT 450 PRINT "IN THE DATA CHART BELOW:" 460 PRINT 470 PRINT " M = THE POSITION OF THE MOON" 480 PRINT 490 PRINT " L = THE POSITION OF YOUR LUNAR VEHICLE" 500 PRINT " RELATIVE TO THE MOON" 510 PRINT 520 PRINT 530 PRINT "TIME";TAB(Z(1));"HEIGHT";TAB(Z(2));"VELOCITY"; 540 PRINT TAB(Z(3));"FUEL LEFT";TAB(Z(4));"BURN RATE" 550 PRINT "(SEC)";TAB(Z(1));"(M)";TAB(Z(2));"(M/SEC)"; 560 PRINT TAB(Z(3));"(KG)";TAB(Z(4));"(KG/SEC)" 570 PRINT 580 IF Z9=3 THEN 640 590 REM INITIAL CONDITIONS: TIME,ELEVATION,MASS,FUEL,VELOCITY,T INCREMENT 600 LET H=1.94E+06 610 LET V=1640 620 LET F=7500 630 LET M=15000 640 LET T=0 650 LET C=0 660 LET N=1 670 LET Z=3000 680 LET T1=1 690 PRINT "M"; 700 FOR Q=1 TO (INT((H-H2)/200000.*60)) 710 PRINT "-"; 720 NEXT Q 730 PRINT "L" 740 PRINT INT(T*10)/10;TAB(Z(1));H-H2;TAB(Z(2));V; 750 PRINT TAB(Z(3));F;TAB(Z(4)); 760 INPUT " --=>"R 770 IF R>100 THEN 1100 780 IF R<0 THEN 1100 790 REM - G IS GRAVITATIONAL ACCELERATION AT ELEVATION H. 800 LET G=(5.E+12)/(H*H) 810 GOTO 1210 820 PRINT "FUEL OUT AT ";INT(10*T)/10;" SEC." 830 REM - COMPUTE FREE FALL VELOCITY AFTER FUEL IS GONE. 840 LET G=(5.E+12)/(H*H) 850 LET V1=V+G*T1 860 LET T=T+T1 870 LET H=H-V*T1-G*T1*T1/2 880 LET V=V1 890 IF H<=H2 THEN 920 900 GOTO 840 910 REM -LANDING MESSAGE: DEPENDS ON SPEED ON IMPACT 920 PRINT "ON THE MOON AT ";INT(T*10)/10;" SECONDS. IMPACT VELOCITY"; 930 PRINT V;" M/SEC." 940 PRINT 950 IF V>7 THEN 980 960 PRINT "FINE LANDING - GOOD JOB, ";: GOSUB 1700: PRINT 970 GOTO 1350 980 IF V>20 THEN 1010 990 PRINT "BAD JOLT, "; 995 GOSUB 1700: PRINT ". YOUR TAKEOFF MAY BE IN TROUBLE." 1000 GOTO 1350 1010 IF V>28 THEN 1050 1020 PRINT "BARELY SURVIVED LANDING, ";: GOSUB 1700 1025 PRINT ". LAST 4 DAYS WILL BE SPENT ON "; 1025 PRINT "THE MOON." 1030 PRINT "IMPOSSIBLE TO BLAST OFF ";: GOSUB 1700 1035 PRINT " LAST 4 DAYS WILL BE SPENT ON "; 1035 PRINT "THE MOON." 1040 GOTO 1070 1050 PRINT "NO SURVIVORS. THE DECEASED, "; 1055 GOSUB 1700: PRINT ", JUST BLASTED A" 1060 PRINT "NEW LUNAR CRATER ";V*.039;" METERS DEEP." 1070 PRINT 1080 PRINT "DO THE SURVIVING FRIENDS OF ... (the late)" 1085 GOSUB 1700: PRINT " WANT TO TRY"; 1090 GOTO 1430 1100 PRINT 1110 IF C=1 THEN 1170 1120 PRINT "WARNING, WARNING, YOUR BURN RATE IS IN ERROR, "; 1125 GOSUB 1700: PRINT "." 1130 PRINT "ANOTHER BURN RATE ERROR WILL LOCK OFF YOUR ROCKETS." 1140 PRINT "TYPE YOUR RECALCULATED BURN RATE. "; 1150 LET C=1 1160 GOTO 760 1170 GOSUB 1700: PRINT ", YOUR ROCKETS ARE LOCKED OFF." 1180 PRINT 1190 GOTO 840 1200 REM -SUBROUTINE TO FIND NEW HEIGHT & VELOCITY AFTER FIRING. 1210 LET M=M-R*T1 1220 LET F=F-R*T1 1230 LET Q=T1*R/M 1240 LET V1=V+G*T1-Z*Q 1250 LET H=H-G*T1*T1/2-V*T1+Z*T1*Q/2 1260 LET T=T+T1 1270 LET V=V1 1280 IF F<=.001 THEN 820 1290 IF H<=H2 THEN 920 1300 IF INT((T+.01)/10)=N THEN 1320 1310 GOTO 1210 1320 LET N=N+1 1330 REM - RETURNS AFTER COMPUTING 10 TIMES (10 SEC.). 1340 GOTO 690 1350 PRINT 1360 PRINT "DO YOU WANT TO TRY AGAIN, ";: GOSUB 1700 1370 INPUT " (1=Yes, 0=No) --=>"P9 1380 IF P9=1 THEN 510 1390 IF P9=0 THEN 1420 1400 PRINT "YES OR NO, PLEASE"; 1410 GOTO 1370 1420 PRINT "DOES SOMEONE ELSE WANT TO TRY?"; 1430 INPUT " (1=Yes, 0=No) --=>"P9 1440 IF P9=1 THEN 240 1450 IF P9=0 THEN 1480 1455 IF P9<0 THEN 1800 1460 PRINT "YES OR NO, PLEASE"; 1470 GOTO 1430 1480 GOTO 1900 1490 PRINT 1500 GOSUB 1700 1505 PRINT ", DO YOU WANT TO SET YOUR HEIGHT, VELOCITY, AND FUEL?" 1510 INPUT " (1=Yes, 0=No) --=>"P9 1520 IF P9=1 THEN 1560 1530 IF P9=0 THEN 440 1540 PRINT "YES OR NO, PLEASE"; 1550 GOTO 1510 1560 REM INITIALIZING HEIGHT, VELOCITY, AND FUEL 1570 PRINT 1580 PRINT "INITIAL HEIGHT "; 1590 INPUT " --=>"H 1600 LET H=H+H2 1610 PRINT "INITIAL VELOCITY "; 1620 INPUT " --=>"V 1630 PRINT "INITIAL FUEL "; 1640 INPUT " --=>"F 1650 LET M=7500+F 1660 LET Z9=3 1670 GOTO 440 1700 REM ... Code to do PRINT "NAME?"; : INPUT N$ 1705 IF N1=0 THEN N1=INT(RND(0)*10)+1 1710 IF N1=1 THEN PRINT "Lunar Lander";: RETURN 1720 IF N1=2 THEN PRINT "Major John";: RETURN 1730 IF N1=3 THEN PRINT "Joe";: RETURN 1740 IF N1=4 THEN PRINT "Lander ";N2;: RETURN 1750 IF N1=5 THEN PRINT "Module ";N2;: RETURN 1760 IF N1=6 THEN PRINT "Captain";: RETURN 1770 IF N1=7 THEN PRINT "Commander";: RETURN 1780 IF N1=8 THEN PRINT "Lunar Pilot";: RETURN 1790 IF N1=9 THEN PRINT "Jack";: RETURN 1795 PRINT "Lunar 4";: RETURN 1800 PRINT "I AM ASSUMING THAT YOU WANT TO QUIT. BYE." 1900 END