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 / CPMUG020.ARK / LUNAR1.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  6KB  |  246 lines

  1. 7 REM LUNAR 1 IS A INTERACTIVE GAME THAT STIMULATES A LUNAR
  2. 8 REM LANDING SIMILAR TO THAT OF THE APOLLO PROGRAM.
  3. 9 REM THERE IS ABSOLUTELY NO CHANCE INVOLVED.
  4. 10 Z$="GO"
  5. 15 B1=1
  6. 20 M=17.95
  7. 25 F1=5.25
  8. 30 N=7.5
  9. 35 R0=926
  10. 40 V0=1.29
  11. 45 T=0
  12. 50 H0=60
  13. 55 R=R0+H0
  14. 60 A=-3.425
  15. 65 R1=0
  16. 70 A1=8.84361E-04
  17. 75 R3=0
  18. 80 A3=0
  19. 85 M1=7.45
  20. 90 M0=M1
  21. 95 B=750
  22. 100 T1=0
  23. 105 F=0
  24. 110 P=0
  25. 115 N=1
  26. 120 M2=0
  27. 125 S=0
  28. 130 C=0
  29. 135 IF LEFT$(Z$,1)="Y" THEN 1150
  30. 140 PRINT
  31. 145 PRINT "LUNAR LANDING SIMULATION"
  32. 150 PRINT
  33. 155 PRINT "HAVE YOU FLOWN ON AN APOLLO/LEM MISSION BEFORE#";
  34. 160 PRINT "(YES OR NO)";
  35. 165 INPUT Q$
  36. 170 IF LEFT$(Q$,1)="Y" THEN 190
  37. 175 IF LEFT$(Q$,1)="N" THEN 205
  38. 180 PRINT "JUST ANSWER THE QUESTION, PLEASE";
  39. 185 GOTO 160
  40. 190 PRINT
  41. 195 PRINT "ENTER MEASUREMENT OPTION NUMBER";
  42. 200 GOTO 225
  43. 205 PRINT
  44. 210 PRINT "WHICH SYSTEM OF MEASUREMENT DO YOU PREFER?"
  45. 215 PRINT " 1=METRIC     0=ENGLISH"
  46. 220 PRINT "ENTER THE APPROPRIATE NUMBER";
  47. 225 INPUT K
  48. 230 PRINT
  49. 235 IF K=0 THEN 280
  50. 240 IF K=1 THEN 250
  51. 245 GOTO 220
  52. 250 Z=1852.8
  53. 255 M$="METERS"
  54. 260 G3=3.6
  55. 265 N$=" KILOMETERS"
  56. 270 G5=1000
  57. 275 GOTO 305
  58. 280 Z=6080
  59. 285 M$="FEET"
  60. 290 G3=.592
  61. 295 N$=" MILES"
  62. 300 G5=Z
  63. 305 IF B1=3 THEN 670
  64. 310 IF Q$="YES" THEN 485
  65. 315 PRINT
  66. 320 PRINT " YOU ARE ON A LUNAR LANDING MISSION. AS THE PILOT OF"
  67. 325 PRINT "THE LUNAR EXCURSION MODULE, YOU WILL BE EXPECTED TO"
  68. 330 PRINT "GIVE CERTAIN COMMANDS TO THE MODULE NAVIGATION SYSTEM."
  69. 335 PRINT " THE ON BOARD COMPUTER WILL GIVE A RUNNING ACCOUNT"
  70. 340 PRINT "OF INFORMATION NEEDED TO NAVIGATE THE SHIP."
  71. 345 PRINT
  72. 350 PRINT
  73. 355 PRINT "THE ATTITUDE ANGLE CALLED FOR IS DESCRIBED AS FOLLOWS-"
  74. 360 PRINT "+ OR -180 DEGREES IS DIRECTLY AWAY FROM THE MOON"
  75. 365 PRINT "-90 DEGREES IS ON A TANGENT IN THE DIRECTION OF ORBIT"
  76. 370 PRINT "90 DEGREES IS ON A TANGENT FROM THE DIRECTION OF ORBIT"
  77. 375 PRINT "0 (ZERO) DEGREES IS DIRECTLY TOWARD THE MOON"
  78. 380 PRINT
  79. 385 PRINT TAB(30);"-180,180"
  80. 390 PRINT TAB(34);"^"
  81. 395 PRINT TAB(27);"-90 < -+- > 90"
  82. 400 PRINT TAB(34);"!"
  83. 405 PRINT TAB(34);"0"
  84. 410 PRINT TAB(23);"<< DIRECTION OF ORBIT <<"
  85. 415 PRINT
  86. 420 PRINT TAB(27);"SURFACE OF MOON"
  87. 425 PRINT
  88. 430 PRINT "ENTER ANYTHING TO CONTINUE":INPUT ANYTHING$
  89. 435 PRINT "ALL ANGLES BETWEEN -180 AND 180 DEGREES ARE ACCEPTED."
  90. 440 PRINT
  91. 445 PRINT "1 FUEL UNIT = 1 SEC. AT MAX. THRUST"
  92. 450 PRINT "ANY DISCREPANCIES ARE ACCOUNTED FOR IN THE USE OF FUEL"
  93. 455 PRINT "FOR AN ATTITUDE CHANGE."
  94. 460 PRINT "AVAILABLE ENGINE POWER: 0 (ZERO) AND ANY VALUE BETWEEN"
  95. 465 PRINT "10 AND 100 PERCENT"
  96. 470 PRINT
  97. 475 PRINT "NEGATIVE THRUST OR TIME IS PROHIBITED"
  98. 480 PRINT
  99. 485 PRINT
  100. 490 PRINT "INPUT: TIME INTERVAL IN SECONDS ------ (T)"
  101. 495 PRINT "       PERCENTAGE OF THRUST ---------- (P)"
  102. 500 PRINT "       ATTITUDE ANGLE IN DEGREES ----- (A)"
  103. 505 PRINT
  104. 510 IF LEFT$(Q$,1)="Y" THEN 535
  105. 515 PRINT "FOR EXAMPLE:"
  106. 520 PRINT "T,P,A?10,65,-60"
  107. 525 PRINT "TO ABORT THE MISSION AT ANY TIME, ENTER 0,0,0"
  108. 530 PRINT "ENTER ANYTHING TO CONTINUE": INPUT ANYTHING$
  109.  
  110. 535 PRINT "OUTPUT: TOTAL TIME ELAPSED IN SECOONDS"
  111. 540 PRINT "        HEIGHT IN ";M$
  112. 545 PRINT "        DISTANCE FROM LANDING SITE IN ";M$
  113. 550 PRINT "        VERTICAL VELOCITY IN ";M$;"/SECOND"
  114. 555 PRINT "        HORIZONTAL VELOCITY IN ";M$;"/SECOND"
  115. 560 PRINT "        FUEL UNITS REMAINING"
  116. 565 PRINT
  117. 570 GOTO 670
  118. 575 PRINT
  119. 580 PRINT "T,P,A  ";
  120. 585 INPUT T1,F,P
  121. 590 F=F/100
  122. 595 IF T1<0 THEN 905
  123. 600 IF T1=0 THEN 1090
  124. 605 IF ABS(F-.05)>1 THEN 945
  125. 610 IF ABS(F-.05)<.05 THEN 945
  126. 615 IF ABS(P)>180 THEN 925
  127. 620 N=20
  128. 625 IF T1<400 THEN 635
  129. 630 N=T1/20
  130. 635 T1=T1/N
  131. 640 P=P*3.14159/180
  132. 645 S=SIN(P)
  133. 650 C=COS(P)
  134. 655 M2=M0*T1*F/B
  135. 660 R3=-.5*R0*((V0/R)^2)+R*A1*A1
  136. 665 A3=-2*R1*A1/R
  137. 670 FOR I=1 TO N
  138. 675 IF M1=0 THEN 715
  139. 680 M1=M1-M2
  140. 685 IF M1>0 THEN 725
  141. 690 F=F*(1+M1/M2)
  142. 695 M2=M1+M2
  143. 700 PRINT "YOU ARE OUT OF FUEL"
  144. 705 M1=0
  145. 710 GOTO 725
  146. 715 F=0
  147. 720 M2=0
  148. 725 M=M-.5*M2
  149. 730 R4=R3
  150. 735 R3=-.5*R0*((V0/R)^2)+R*A1*A1
  151. 740 R2=(3*R3-R4)/2+.00526*F1*F*C/M
  152. 745 A4=A3
  153. 750 A3=-2*R1*A1/R
  154. 755 A2=(3*A3-A4)/2+.00526*F1*F*S/(M*R)
  155. 760 X=R1*T1+.5*R2*T1*T1
  156. 765 R=R+X
  157. 770 H0=H0+X
  158. 775 R1=R1+R2*T1
  159. 780 A=A+A1*T1+.5*A2*T1*T1
  160. 785 A1=A1+A2*T1
  161. 790 M=M-.5*M2
  162. 795 T=T+T1
  163. 800 IF H0<3.287828E-04 THEN 810
  164. 805 NEXT I
  165. 810 H=H0*Z
  166. 815 H1=R1*Z
  167. 820 D=R0*A*Z
  168. 825 D1=R*A1*Z
  169. 830 T2=M1*B/M0
  170. 835 PRINT TAB(1);T;TAB(12);H;TAB(27);D;
  171. 840 PRINT TAB(43);H1;TAB(55);D1;TAB(66);T2
  172. 845 IF H0<3.287828E-04 THEN 880
  173. 850 IF R0*A>164.4736 THEN 1050
  174. 855 IF M1>0 THEN 580
  175. 860 T1=22
  176. 865 F=0
  177. 870 P=0
  178. 875 GOTO 620
  179. 880 IF R1<-8.21957E-04 THEN 1020
  180. 885 IF ABS(R*A1)>4.931742E-04 THEN 1020
  181. 890 IF H0<-3.287828E-04 THEN 1020
  182. 895 IF ABS(D)>10*Z THEN 1065
  183. 900 GOTO 995
  184. 905 PRINT
  185. 910 PRINT "THIS SPACECRAFT IS NOT ABLE TO VIOLATE THE SPACE-";
  186. 915 PRINT "TIME CONTINUM"
  187. 920 GOTO 575
  188. 925 PRINT
  189. 930 PRINT "IF YOU WANT TO SPIN AROUND, GO OUTSIDE THE MODULE";
  190. 935 PRINT "FOR AN E.V.A"
  191. 940 GOTO 575
  192. 945 PRINT
  193. 950 PRINT "IMPOSSIBLE THRUST-VALUE ";
  194. 955 IF F<0 THEN 985
  195. 960 IF F-.05<.05 THEN 975
  196. 965 PRINT "TOO LARGE"
  197. 970 GOTO 575
  198. 975 PRINT "TOO SMALL"
  199. 980 GOTO 575
  200. 985 PRINT "NEGATIVE"
  201. 990 GOTO 575
  202. 995 PRINT
  203. 1000 PRINT "TRANQUILITY BASE HERE -- THE EAGLE HAS LANDED"
  204. 1005 PRINT "CONGRATULATIONS - THERE WAS NO SPACECRAFT DAMAGE"
  205. 1010 PRINT "YOU MAY NOW PROCEED WITH SURFACE EXPLORATION."
  206. 1015 GOTO 1100
  207. 1020 PRINT
  208. 1025 PRINT "CRASH !!!!!!!!!!"
  209. 1030 PRINT "YOUR IMPACT CREATED A CRATER ";ABS(H);M$;" DEEP"
  210. 1035 X1=SQR(D1*D1+H1*H1)*G3
  211. 1040 PRINT "AT CONTACT YOU WERE TRAVELLING ";X1;N$;"/HR."
  212. 1045 GOTO 1100
  213. 1050 PRINT
  214. 1055 PRINT "YOU HAVE BEEN LOST IN SPACE WITH NO HOPE OF RECOVERY"
  215. 1060 GOTO 1100
  216. 1065 PRINT "YOU ARE DOWN SAFELY - "
  217. 1075 PRINT
  218. 1080 PRINT "BUT MISSED THE LANDING SITE BY ";ABS(D/G5);N$
  219. 1085 GOTO 1100
  220. 1090 PRINT
  221. 1095 PRINT "MISSION ABORTED"
  222. 1100 PRINT
  223. 1105 PRINT "DO YOU WANT TO FLY IT AGAIN ? (YES OR NO)";
  224. 1110 INPUT Z$
  225. 1115 IF LEFT$(Z$,1)="Y" THEN 20
  226. 1120 IF LEFT$(Z$,1)="N" THEN 1130
  227. 1125 GOTO 1105
  228. 1130 PRINT
  229. 1135 PRINT "TOO BAD, THE SPACE PROGRAM HATES TO LOSE EXPERIENCED";
  230. 1140 PRINT " ASTRONAUTS."
  231. 1145 STOP
  232. 1150 PRINT
  233. 1155 PRINT "OK, DO YOU WANT THE COMPLETE INSTRUCTIONS OR THE INPUT-"
  234. 1160 PRINT "OUTPUT STATEMENTS ?"
  235. 1165 PRINT "1=COMPLETE INSTRUCTIONS"
  236. 1170 PRINT "2=INPUT-OUTPUT STATEMENTS"
  237. 1175 PRINT "3=NEITHER"
  238. 1180 INPUT B1
  239. 1185 Q$="NO"
  240. 1190 IF B1=1 THEN 205
  241. 1195 Q$="YES"
  242. 1200 IF B1=2 THEN 190
  243. 1205 IF B1=3 THEN 190
  244. 1210 GOTO 1165
  245. 1215 END
  246.