home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG003.ARK / LANDER.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  4KB  |  131 lines

  1.     REM----------------------------------------------------
  2.     REM        L  A  N  D  E  R
  3.     REM----------------------------------------------------
  4.  
  5.     REM        JUNE 16, 1977
  6.  
  7.     REM    THIS VERSION OF LUNAR LANDER IS COURTESY OF
  8.     REM    THE IMSAI COMPANY.
  9.  
  10. 300 S3 =0
  11. 310 N3=0
  12. 320 H=500
  13. 430 IF H<=0 THEN 1560
  14. 1010 PRINT"LUNAR LANDING SIMULATION"
  15. 1020 PRINT"----- ------- ----------"
  16. 1030 PRINT"TYPE '1' FOR INSTRUCTIONS";
  17. 1040 INPUT A
  18. 1050 IF A<>1 THEN 1260
  19. 1060 PRINT
  20. 1070 PRINT"YOU ARE LANDING ON THE MOON, YOUR HAVE HAD TO"
  21. 1075 PRINT"ABORT YOUR AUTOMATIC LANDING PLAN AND HAVE TAKEN"
  22. 1077 PRINT"OVER MANUAL CONTROL 500 FT. OVER A GOOD LANDING"
  23. 1080 PRINT"SPOT. YOU ARE FALLING AT 50 FT/SEC, WITH 120 LBS"
  24. 1090 PRINT"OF FUEL TOTAL; DEPLETED AS FOLLOWS:"
  25. 1120 PRINT"(1) AFTER EACH SECOND, THE HEIGHT,VELOCITY AND"
  26. 1130 PRINT"REMAINING FUEL WILL BE REPORTED."
  27. 1140 PRINT"(2) NEXT, A/?/ WILL BE TYPED. ENTER THE NUMBER"
  28. 1150 PRINT"OF LBS OF FUEL YOU WISH TO BURN DURING THE NEXT"
  29. 1160 PRINT"SECOND. EACH LB BURNED WILL SLOW THE DESCENT BY"
  30. 1170 PRINT"1 FT/SEC. 5 LBS OF FUEL WILL MAINTAIN YOUR CUR-"
  31. 1175 PRINT"RENT VELOCITY EXACTLY."
  32. 1180 PRINT"(3) MAXIMUM THRUST YOUR ENGINE CAN SUSTAIN IS"
  33. 1185 PRINT"30 FT/SEC OR 30 LBS OF FUEL/SEC."
  34. 1200 PRINT "(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR"
  35. 1210 PRINT"DESCENT ENGINE WILL AUTO-SHUT OFF AND YOU WILL"
  36. 1220 PRINT"BE GIVEN A READOUT OF LANDING CONDITIONS."
  37. 1230 PRINT"(5) IF OUT OF FUEL, ONLY REPORTS UNTIL"
  38. 1235 PRINT"YOU CONTACT THE LUNAR SURFACE"
  39. 1240 T=0
  40. 1245 V1=-5
  41. 1260 PRINT"ALERT! ALERT! DESCENT PROCEEDURE INITIATED!"
  42. 1265 IF T>30 THEN PRINT "HINT; NO BURN TILL SECOND # 4"
  43. 1266 IF T=0 OR V1=0 THEN 1290
  44. 1267 IF T<12 THEN PRINT "HINT; YOU BURNED LATE FOR A NOVICE"
  45. 1290 PRINT"SEC  FEET   SPEED    FUEL       PLOT OF DISTANCE"
  46. 1300 PRINT
  47. 1310 T=0
  48. 1320 H=500
  49. 1330 V=50
  50. 1340 F=120
  51. 1350 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);
  52. 1352 PRINT "I";TAB(H/15+29);"*"
  53. 1360 INPUT B
  54. 1370 IF B<0 THEN 1500
  55. 1380 IF B>30 THEN 1520
  56. 1390 IF B >F THEN 1540
  57. 1400 V1=V-B+5
  58. 1410 F=F-B
  59. 1420 H = H-.5*(V+V1)
  60. 1430 IF H<=0 THEN 1560
  61. 1440 T=T+1
  62. 1450 V=V1
  63. 1460 IF F>0 THEN 1350
  64. 1470 IF B=0 THEN 1490
  65. 1480 PRINT TAB(29);"***** OUT OF FUEL *****"
  66. 1490 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);
  67. 1492 PRINT "I";TAB(H/15+29);"."
  68. 1500 B=0
  69. 1510 GOTO 1400
  70. 1520 B=30
  71. 1530 GOTO 1390
  72. 1540 B=F
  73. 1550 GOTO 1400
  74. 1560 PRINT "*** CONTACT ***";
  75. 1562 IF V1>20 THEN PRINT TAB(29);"0"
  76. 1563 IF V1>25 THEN PRINT TAB(29);"00"
  77. 1564 IF V1>30 THEN PRINT TAB(29);"000"
  78. 1565 IF V1>35 THEN PRINT TAB(29);"0  ."
  79. 1566 IF V1>40 THEN PRINT TAB(29);".    ."
  80. 1567 IF V1>45 THEN PRINT TAB(29);"."
  81. 1570 H =H+.5*(V+V1)
  82. 1580 IF B=5 THEN 1610
  83. 1585 Z=V*V+H*(10-2*B)
  84. 1587 IF Z<0 THEN 1770
  85. 1588 P=SQR(Z)
  86. 1590 D=(P-V)/(5-B)
  87. 1600 GOTO 1620
  88. 1610 D=H/V
  89. 1620 V1=V+(5-B)*D
  90. 1625 N3 =N3+1
  91. 1630 PRINT "TOUCHDOWN AT "; T+D;"SECONDS" 
  92. 1640 PRINT"LANDING VELOCITY=";V1;"FT/SEC"
  93. 1641 IF V1>8 THEN PRINT "OR ";V1*.5938;" MPH, GROUNDHOG";
  94. 1642 IF V1<>0 THEN 1648
  95. 1644 PRINT "CONGRATULATIONS! A PERFECT LANDING"
  96. 1645 S3=S3+8
  97. 1646 GOTO 1710
  98. 1648 IF V1<85 THEN 1654
  99. 1650 PRINT:PRINT"YOU HAD TO TRY FOR THAT! DO IT RIGHT"
  100. 1652 GOTO 1260
  101. 1654 FOR I1=1 TO 7
  102. 1656 LET S1=2^I1
  103. 1657 IF S1>V1 THEN 1660
  104. 1658 NEXT I1
  105. 1659 GOTO 1790
  106. 1660 PRINT";   SCORE = ";7-I1
  107. 1661 S3 =S3+7-I1
  108. 1662 ON I1 GOTO  1664,1670,1672,1674,1676,1678,1710
  109. 1664 PRINT"NEARLY PERFECT: YOU MUST TRY AGAIN!"
  110. 1666 PRINT"                    ----"
  111. 1668 GOTO  1260
  112. 1670 PRINT "GOOD.  ( YOU COULD WALK AWAY FROM IT )":GOTO 1710
  113. 1672 PRINT"ABOUT LIKE HITTING THE WALL RUNNING HARD.":GOTO 1710
  114. 1674 PRINT"OUCH! THAT HURT! ( THE LANDER )":GOTO 1710
  115. 1676 PRINT"PUH-LEEEZE!  MY SOUFFLE'!":GOTO 1710
  116. 1678 PRINT " YOU SHOULD REREAD THIS:   FOR EACH":GOTO 1160
  117. 1710 PRINT "*"
  118. 1720 PRINT " TYPE 1 FOR ANOTHER MISSION.";
  119. 1730 INPUT A
  120. 1740 IF A=1 THEN 1260
  121. 1745 PRINT "FOR";N3;"MISSIONS, AVERAGE SCORE =";S3/N3
  122. 1746 IF N3>3 AND S3/N3>4.5 THEN PRINT "GOOD WORK!"
  123. 1750 PRINT " CONTROL OUT"
  124. 1760 STOP
  125. 1770 PRINT "NEGATIVE ARGUMENT, END OF MISSION."
  126. 1780 GOTO 1710
  127. 1790 PRINT "LOOP OVERFLOW, END MISSION"
  128. 1800 GOTO 1710
  129. 1810 STOP
  130.   END
  131.