basic101 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.simplecov +1 -0
  4. data/.yardopts +7 -0
  5. data/Changelog.md +3 -0
  6. data/Gemfile +12 -0
  7. data/Gemfile.lock +75 -0
  8. data/LICENSE.md +9 -0
  9. data/README.md +193 -0
  10. data/Rakefile +14 -0
  11. data/VERSION +1 -0
  12. data/bin/basic101 +10 -0
  13. data/lib/basic101/abs_function.rb +19 -0
  14. data/lib/basic101/argument_checker.rb +61 -0
  15. data/lib/basic101/arguments.rb +32 -0
  16. data/lib/basic101/array_reference.rb +52 -0
  17. data/lib/basic101/asc_function.rb +17 -0
  18. data/lib/basic101/basic_array.rb +69 -0
  19. data/lib/basic101/basic_comparisons.rb +20 -0
  20. data/lib/basic101/basic_float.rb +48 -0
  21. data/lib/basic101/basic_integer.rb +48 -0
  22. data/lib/basic101/basic_math.rb +22 -0
  23. data/lib/basic101/basic_numeric.rb +96 -0
  24. data/lib/basic101/basic_object.rb +35 -0
  25. data/lib/basic101/basic_string.rb +85 -0
  26. data/lib/basic101/binary_operation.rb +32 -0
  27. data/lib/basic101/binary_operations.rb +26 -0
  28. data/lib/basic101/built_in_functions.rb +31 -0
  29. data/lib/basic101/chr_function.rb +17 -0
  30. data/lib/basic101/cos_function.rb +17 -0
  31. data/lib/basic101/data_statement.rb +24 -0
  32. data/lib/basic101/define_function_statement.rb +23 -0
  33. data/lib/basic101/dim_statement.rb +25 -0
  34. data/lib/basic101/else_statement.rb +22 -0
  35. data/lib/basic101/end_statement.rb +13 -0
  36. data/lib/basic101/endif_statement.rb +19 -0
  37. data/lib/basic101/errors.rb +50 -0
  38. data/lib/basic101/exp_function.rb +17 -0
  39. data/lib/basic101/for_stack.rb +48 -0
  40. data/lib/basic101/for_statement.rb +57 -0
  41. data/lib/basic101/function.rb +11 -0
  42. data/lib/basic101/function_call.rb +32 -0
  43. data/lib/basic101/function_identifier.rb +8 -0
  44. data/lib/basic101/functions.rb +39 -0
  45. data/lib/basic101/gosub_statement.rb +23 -0
  46. data/lib/basic101/goto_statement.rb +23 -0
  47. data/lib/basic101/identifier.rb +23 -0
  48. data/lib/basic101/identity.rb +18 -0
  49. data/lib/basic101/if_statement.rb +31 -0
  50. data/lib/basic101/input.rb +44 -0
  51. data/lib/basic101/input_reader.rb +55 -0
  52. data/lib/basic101/input_statement.rb +46 -0
  53. data/lib/basic101/int_function.rb +17 -0
  54. data/lib/basic101/left_function.rb +19 -0
  55. data/lib/basic101/len_function.rb +18 -0
  56. data/lib/basic101/let_statement.rb +24 -0
  57. data/lib/basic101/line.rb +32 -0
  58. data/lib/basic101/log_function.rb +17 -0
  59. data/lib/basic101/main.rb +24 -0
  60. data/lib/basic101/mid_function.rb +20 -0
  61. data/lib/basic101/negate_operation.rb +21 -0
  62. data/lib/basic101/next_statement.rb +34 -0
  63. data/lib/basic101/not_operation.rb +23 -0
  64. data/lib/basic101/null_prompt_delimeter.rb +12 -0
  65. data/lib/basic101/null_transcript.rb +20 -0
  66. data/lib/basic101/numeric_identifier.rb +16 -0
  67. data/lib/basic101/on_goto_statement.rb +29 -0
  68. data/lib/basic101/output.rb +73 -0
  69. data/lib/basic101/parser.rb +457 -0
  70. data/lib/basic101/power_operation.rb +24 -0
  71. data/lib/basic101/print_comma.rb +20 -0
  72. data/lib/basic101/print_semicolon.rb +19 -0
  73. data/lib/basic101/print_statement.rb +33 -0
  74. data/lib/basic101/program.rb +100 -0
  75. data/lib/basic101/program_counter.rb +52 -0
  76. data/lib/basic101/prompt_delimeter.rb +13 -0
  77. data/lib/basic101/randomize_statement.rb +13 -0
  78. data/lib/basic101/read_statement.rb +25 -0
  79. data/lib/basic101/reference.rb +25 -0
  80. data/lib/basic101/remark_statement.rb +12 -0
  81. data/lib/basic101/restore_statement.rb +23 -0
  82. data/lib/basic101/return_statement.rb +16 -0
  83. data/lib/basic101/right_function.rb +19 -0
  84. data/lib/basic101/rnd_function.rb +24 -0
  85. data/lib/basic101/runtime.rb +132 -0
  86. data/lib/basic101/scalar_reference.rb +19 -0
  87. data/lib/basic101/sgn_function.rb +17 -0
  88. data/lib/basic101/sin_function.rb +17 -0
  89. data/lib/basic101/sqr_function.rb +17 -0
  90. data/lib/basic101/statement.rb +36 -0
  91. data/lib/basic101/stop_statement.rb +14 -0
  92. data/lib/basic101/str_function.rb +16 -0
  93. data/lib/basic101/string_identifier.rb +16 -0
  94. data/lib/basic101/tab.rb +18 -0
  95. data/lib/basic101/tab_function.rb +17 -0
  96. data/lib/basic101/tan_function.rb +17 -0
  97. data/lib/basic101/transcript.rb +37 -0
  98. data/lib/basic101/transform.rb +264 -0
  99. data/lib/basic101/user_defined_function.rb +54 -0
  100. data/lib/basic101/val_function.rb +16 -0
  101. data/lib/basic101.rb +93 -0
  102. data/rake_tasks/default.rake +1 -0
  103. data/rake_tasks/integration.rake +8 -0
  104. data/rake_tasks/jeweler.rake +28 -0
  105. data/rake_tasks/spec.rake +8 -0
  106. data/rake_tasks/test.rake +2 -0
  107. data/rake_tasks/yard.rake +3 -0
  108. data/test/integration/arguments.rb +25 -0
  109. data/test/integration/errors.rb +7 -0
  110. data/test/integration/integration_test.rb +28 -0
  111. data/test/integration/main.rb +49 -0
  112. data/test/integration/output_file.rb +40 -0
  113. data/test/integration/test.rb +135 -0
  114. data/test/integration/tests/basic_computer_games/23-match.bas +64 -0
  115. data/test/integration/tests/basic_computer_games/23-match.input +1 -0
  116. data/test/integration/tests/basic_computer_games/23-match.output +29 -0
  117. data/test/integration/tests/basic_computer_games/3dplot.bas +17 -0
  118. data/test/integration/tests/basic_computer_games/3dplot.input +0 -0
  119. data/test/integration/tests/basic_computer_games/3dplot.output +47 -0
  120. data/test/integration/tests/basic_computer_games/aceyducy.bas +100 -0
  121. data/test/integration/tests/basic_computer_games/aceyducy.input +8 -0
  122. data/test/integration/tests/basic_computer_games/aceyducy.output +78 -0
  123. data/test/integration/tests/basic_computer_games/amazing.bas +138 -0
  124. data/test/integration/tests/basic_computer_games/amazing.input +1 -0
  125. data/test/integration/tests/basic_computer_games/amazing.output +32 -0
  126. data/test/integration/tests/basic_computer_games/animal.bas +71 -0
  127. data/test/integration/tests/basic_computer_games/animal.input +17 -0
  128. data/test/integration/tests/basic_computer_games/animal.output +38 -0
  129. data/test/integration/tests/basic_computer_games/awari.bas +70 -0
  130. data/test/integration/tests/basic_computer_games/awari.input +11 -0
  131. data/test/integration/tests/basic_computer_games/awari.output +117 -0
  132. data/test/integration/tests/basic_computer_games/bagels.bas +81 -0
  133. data/test/integration/tests/basic_computer_games/bagels.input +12 -0
  134. data/test/integration/tests/basic_computer_games/bagels.output +42 -0
  135. data/test/integration/tests/basic_computer_games/banner.bas +94 -0
  136. data/test/integration/tests/basic_computer_games/banner.input +6 -0
  137. data/test/integration/tests/basic_computer_games/banner.output +135 -0
  138. data/test/integration/tests/basic_computer_games/basketbl.bas +196 -0
  139. data/test/integration/tests/basic_computer_games/basketbl.input +46 -0
  140. data/test/integration/tests/basic_computer_games/basketbl.output +509 -0
  141. data/test/integration/tests/basic_computer_games/batnum.bas +90 -0
  142. data/test/integration/tests/basic_computer_games/batnum.input +14 -0
  143. data/test/integration/tests/basic_computer_games/batnum.output +67 -0
  144. data/test/integration/tests/basic_computer_games/battle.bas +196 -0
  145. data/test/integration/tests/basic_computer_games/battle.input +21 -0
  146. data/test/integration/tests/basic_computer_games/battle.output +118 -0
  147. data/test/integration/tests/basic_computer_games/blackjck.bas +321 -0
  148. data/test/integration/tests/basic_computer_games/blackjck.input +26 -0
  149. data/test/integration/tests/basic_computer_games/blackjck.output +144 -0
  150. data/test/integration/tests/basic_computer_games/bombard.bas +93 -0
  151. data/test/integration/tests/basic_computer_games/bombard.input +20 -0
  152. data/test/integration/tests/basic_computer_games/bombard.output +175 -0
  153. data/test/integration/tests/basic_computer_games/bounce.bas +53 -0
  154. data/test/integration/tests/basic_computer_games/bounce.input +0 -0
  155. data/test/integration/tests/basic_computer_games/bounce.output +15 -0
  156. data/test/integration/tests/basic_computer_games/bowling.bas +101 -0
  157. data/test/integration/tests/basic_computer_games/bowling.input +23 -0
  158. data/test/integration/tests/basic_computer_games/bowling.output +229 -0
  159. data/test/integration/tests/basic_computer_games/boxing.bas +142 -0
  160. data/test/integration/tests/basic_computer_games/boxing.input +8 -0
  161. data/test/integration/tests/basic_computer_games/boxing.output +47 -0
  162. data/test/integration/tests/basic_computer_games/bug.bas +256 -0
  163. data/test/integration/tests/basic_computer_games/bug.input +17 -0
  164. data/test/integration/tests/basic_computer_games/bug.output +847 -0
  165. data/test/integration/tests/basic_computer_games/bullfght.bas +193 -0
  166. data/test/integration/tests/basic_computer_games/bullfght.input +4 -0
  167. data/test/integration/tests/basic_computer_games/bullfght.output +60 -0
  168. data/test/integration/tests/basic_computer_games/bullseye.bas +37 -0
  169. data/test/integration/tests/basic_computer_games/bullseye.input +10 -0
  170. data/test/integration/tests/basic_computer_games/bullseye.output +79 -0
  171. data/test/integration/tests/basic_computer_games/bunny.bas +40 -0
  172. data/test/integration/tests/basic_computer_games/bunny.input +0 -0
  173. data/test/integration/tests/basic_computer_games/bunny.output +67 -0
  174. data/test/integration/tests/basic_computer_games/buzzword.bas +25 -0
  175. data/test/integration/tests/basic_computer_games/buzzword.input +4 -0
  176. data/test/integration/tests/basic_computer_games/buzzword.output +25 -0
  177. data/test/integration/tests/basic_computer_games/calendar.bas +58 -0
  178. data/test/integration/tests/basic_computer_games/calendar.input +0 -0
  179. data/test/integration/tests/basic_computer_games/calendar.output +213 -0
  180. data/test/integration/tests/basic_computer_games/change.bas +51 -0
  181. data/test/integration/tests/basic_computer_games/change.input +4 -0
  182. data/test/integration/tests/basic_computer_games/change.output +28 -0
  183. data/test/integration/tests/basic_computer_games/checkers.bas +82 -0
  184. data/test/integration/tests/basic_computer_games/checkers.input +74 -0
  185. data/test/integration/tests/basic_computer_games/checkers.output +673 -0
  186. data/test/integration/tests/basic_computer_games/chemist.bas +27 -0
  187. data/test/integration/tests/basic_computer_games/chemist.input +11 -0
  188. data/test/integration/tests/basic_computer_games/chemist.output +54 -0
  189. data/test/integration/tests/basic_computer_games/chief.bas +51 -0
  190. data/test/integration/tests/basic_computer_games/chief.input +5 -0
  191. data/test/integration/tests/basic_computer_games/chief.output +19 -0
  192. data/test/integration/tests/basic_computer_games/chomp.bas +104 -0
  193. data/test/integration/tests/basic_computer_games/chomp.input +15 -0
  194. data/test/integration/tests/basic_computer_games/chomp.output +159 -0
  195. data/test/integration/tests/basic_computer_games/combat.bas +124 -0
  196. data/test/integration/tests/basic_computer_games/combat.input +7 -0
  197. data/test/integration/tests/basic_computer_games/combat.output +33 -0
  198. data/test/integration/tests/basic_computer_games/craps.bas +82 -0
  199. data/test/integration/tests/basic_computer_games/craps.input +9 -0
  200. data/test/integration/tests/basic_computer_games/craps.output +51 -0
  201. data/test/integration/tests/basic_computer_games/cube.bas +161 -0
  202. data/test/integration/tests/basic_computer_games/cube.input +25 -0
  203. data/test/integration/tests/basic_computer_games/cube.output +72 -0
  204. data/test/integration/tests/basic_computer_games/depthchg.bas +33 -0
  205. data/test/integration/tests/basic_computer_games/depthchg.input +16 -0
  206. data/test/integration/tests/basic_computer_games/depthchg.output +83 -0
  207. data/test/integration/tests/basic_computer_games/diamond.bas +27 -0
  208. data/test/integration/tests/basic_computer_games/diamond.input +1 -0
  209. data/test/integration/tests/basic_computer_games/diamond.output +65 -0
  210. data/test/integration/tests/basic_computer_games/dice.bas +31 -0
  211. data/test/integration/tests/basic_computer_games/dice.input +4 -0
  212. data/test/integration/tests/basic_computer_games/dice.output +46 -0
  213. data/test/integration/tests/basic_computer_games/digits.bas +78 -0
  214. data/test/integration/tests/basic_computer_games/digits.input +5 -0
  215. data/test/integration/tests/basic_computer_games/digits.output +70 -0
  216. data/test/integration/tests/basic_computer_games/evenwin1.bas +128 -0
  217. data/test/integration/tests/basic_computer_games/evenwin1.input +13 -0
  218. data/test/integration/tests/basic_computer_games/evenwin1.output +116 -0
  219. data/test/integration/tests/basic_computer_games/evenwin2.bas +70 -0
  220. data/test/integration/tests/basic_computer_games/evenwin2.input +14 -0
  221. data/test/integration/tests/basic_computer_games/evenwin2.output +56 -0
  222. data/test/integration/tests/basic_computer_games/flipflop.bas +79 -0
  223. data/test/integration/tests/basic_computer_games/flipflop.input +8 -0
  224. data/test/integration/tests/basic_computer_games/flipflop.output +45 -0
  225. data/test/integration/tests/basic_computer_games/footbal1.bas +298 -0
  226. data/test/integration/tests/basic_computer_games/footbal1.input +13 -0
  227. data/test/integration/tests/basic_computer_games/footbal1.output +315 -0
  228. data/test/integration/tests/basic_computer_games/footbal2.bas +181 -0
  229. data/test/integration/tests/basic_computer_games/footbal2.input +23 -0
  230. data/test/integration/tests/basic_computer_games/footbal2.output +318 -0
  231. data/test/integration/tests/basic_computer_games/furtradr.bas +170 -0
  232. data/test/integration/tests/basic_computer_games/furtradr.input +20 -0
  233. data/test/integration/tests/basic_computer_games/furtradr.output +133 -0
  234. data/test/integration/tests/basic_computer_games/golf.bas +244 -0
  235. data/test/integration/tests/basic_computer_games/golf.input +11 -0
  236. data/test/integration/tests/basic_computer_games/golf.output +69 -0
  237. data/test/integration/tests/basic_computer_games/gomoko.bas +54 -0
  238. data/test/integration/tests/basic_computer_games/gomoko.input +6 -0
  239. data/test/integration/tests/basic_computer_games/gomoko.output +66 -0
  240. data/test/integration/tests/basic_computer_games/guess.bas +40 -0
  241. data/test/integration/tests/basic_computer_games/guess.input +8 -0
  242. data/test/integration/tests/basic_computer_games/guess.output +37 -0
  243. data/test/integration/tests/basic_computer_games/gunner.bas +52 -0
  244. data/test/integration/tests/basic_computer_games/gunner.input +18 -0
  245. data/test/integration/tests/basic_computer_games/gunner.output +91 -0
  246. data/test/integration/tests/basic_computer_games/hamurabi.bas +119 -0
  247. data/test/integration/tests/basic_computer_games/hamurabi.input +7 -0
  248. data/test/integration/tests/basic_computer_games/hamurabi.output +51 -0
  249. data/test/integration/tests/basic_computer_games/hangman.bas +81 -0
  250. data/test/integration/tests/basic_computer_games/hangman.input +69 -0
  251. data/test/integration/tests/basic_computer_games/hangman.output +889 -0
  252. data/test/integration/tests/basic_computer_games/hello.bas +83 -0
  253. data/test/integration/tests/basic_computer_games/hello.input +7 -0
  254. data/test/integration/tests/basic_computer_games/hello.output +46 -0
  255. data/test/integration/tests/basic_computer_games/hexapawn.bas +174 -0
  256. data/test/integration/tests/basic_computer_games/hexapawn.input +38 -0
  257. data/test/integration/tests/basic_computer_games/hexapawn.output +521 -0
  258. data/test/integration/tests/basic_computer_games/hi-q.bas +135 -0
  259. data/test/integration/tests/basic_computer_games/hi-q.input +14 -0
  260. data/test/integration/tests/basic_computer_games/hi-q.output +115 -0
  261. data/test/integration/tests/basic_computer_games/hilo.bas +29 -0
  262. data/test/integration/tests/basic_computer_games/hilo.input +20 -0
  263. data/test/integration/tests/basic_computer_games/hilo.output +76 -0
  264. data/test/integration/tests/basic_computer_games/hockey.bas +210 -0
  265. data/test/integration/tests/basic_computer_games/hockey.input +59 -0
  266. data/test/integration/tests/basic_computer_games/hockey.output +243 -0
  267. data/test/integration/tests/basic_computer_games/horsrace.bas +130 -0
  268. data/test/integration/tests/basic_computer_games/horsrace.input +11 -0
  269. data/test/integration/tests/basic_computer_games/horsrace.output +517 -0
  270. data/test/integration/tests/basic_computer_games/hurkle.bas +51 -0
  271. data/test/integration/tests/basic_computer_games/hurkle.input +16 -0
  272. data/test/integration/tests/basic_computer_games/hurkle.output +81 -0
  273. data/test/integration/tests/basic_computer_games/kinema.bas +34 -0
  274. data/test/integration/tests/basic_computer_games/kinema.input +9 -0
  275. data/test/integration/tests/basic_computer_games/kinema.output +64 -0
  276. data/test/integration/tests/basic_computer_games/king.bas +268 -0
  277. data/test/integration/tests/basic_computer_games/king.input +7 -0
  278. data/test/integration/tests/basic_computer_games/king.output +57 -0
  279. data/test/integration/tests/basic_computer_games/lem.bas +246 -0
  280. data/test/integration/tests/basic_computer_games/lem.input +4 -0
  281. data/test/integration/tests/basic_computer_games/lem.output +68 -0
  282. data/test/integration/tests/basic_computer_games/letter.bas +26 -0
  283. data/test/integration/tests/basic_computer_games/letter.input +24 -0
  284. data/test/integration/tests/basic_computer_games/letter.output +123 -0
  285. data/test/integration/tests/basic_computer_games/life.bas +66 -0
  286. data/test/integration/tests/basic_computer_games/life.input +4 -0
  287. data/test/integration/tests/basic_computer_games/life.options +1 -0
  288. data/test/integration/tests/basic_computer_games/life.output +200 -0
  289. data/test/integration/tests/basic_computer_games/life2.bas +83 -0
  290. data/test/integration/tests/basic_computer_games/life2.input +17 -0
  291. data/test/integration/tests/basic_computer_games/life2.output +113 -0
  292. data/test/integration/tests/basic_computer_games/litquiz.bas +49 -0
  293. data/test/integration/tests/basic_computer_games/litquiz.input +4 -0
  294. data/test/integration/tests/basic_computer_games/litquiz.output +36 -0
  295. data/test/integration/tests/basic_computer_games/love.bas +34 -0
  296. data/test/integration/tests/basic_computer_games/love.input +1 -0
  297. data/test/integration/tests/basic_computer_games/love.output +67 -0
  298. data/test/integration/tests/basic_computer_games/lunar.bas +48 -0
  299. data/test/integration/tests/basic_computer_games/lunar.input +87 -0
  300. data/test/integration/tests/basic_computer_games/lunar.output +195 -0
  301. data/test/integration/tests/basic_computer_games/mastrmnd.bas +232 -0
  302. data/test/integration/tests/basic_computer_games/mastrmnd.input +18 -0
  303. data/test/integration/tests/basic_computer_games/mastrmnd.output +67 -0
  304. data/test/integration/tests/basic_computer_games/mathdice.bas +60 -0
  305. data/test/integration/tests/basic_computer_games/mathdice.input +4 -0
  306. data/test/integration/tests/basic_computer_games/mathdice.output +86 -0
  307. data/test/integration/tests/basic_computer_games/mugwump.bas +56 -0
  308. data/test/integration/tests/basic_computer_games/mugwump.input +16 -0
  309. data/test/integration/tests/basic_computer_games/mugwump.output +139 -0
  310. data/test/integration/tests/basic_computer_games/name.bas +25 -0
  311. data/test/integration/tests/basic_computer_games/name.input +2 -0
  312. data/test/integration/tests/basic_computer_games/name.output +22 -0
  313. data/test/integration/tests/basic_computer_games/nicoma.bas +34 -0
  314. data/test/integration/tests/basic_computer_games/nicoma.input +8 -0
  315. data/test/integration/tests/basic_computer_games/nicoma.output +36 -0
  316. data/test/integration/tests/basic_computer_games/nim.bas +156 -0
  317. data/test/integration/tests/basic_computer_games/nim.input +8 -0
  318. data/test/integration/tests/basic_computer_games/nim.output +30 -0
  319. data/test/integration/tests/basic_computer_games/number.bas +37 -0
  320. data/test/integration/tests/basic_computer_games/number.input +19 -0
  321. data/test/integration/tests/basic_computer_games/number.output +73 -0
  322. data/test/integration/tests/basic_computer_games/onecheck.bas +86 -0
  323. data/test/integration/tests/basic_computer_games/onecheck.input +6 -0
  324. data/test/integration/tests/basic_computer_games/onecheck.output +77 -0
  325. data/test/integration/tests/basic_computer_games/orbit.bas +96 -0
  326. data/test/integration/tests/basic_computer_games/orbit.input +10 -0
  327. data/test/integration/tests/basic_computer_games/orbit.output +113 -0
  328. data/test/integration/tests/basic_computer_games/pizza.bas +68 -0
  329. data/test/integration/tests/basic_computer_games/pizza.input +10 -0
  330. data/test/integration/tests/basic_computer_games/pizza.output +93 -0
  331. data/test/integration/tests/basic_computer_games/poetry.bas +42 -0
  332. data/test/integration/tests/basic_computer_games/poetry.input +0 -0
  333. data/test/integration/tests/basic_computer_games/poetry.options +1 -0
  334. data/test/integration/tests/basic_computer_games/poetry.output +50 -0
  335. data/test/integration/tests/basic_computer_games/poker.bas +416 -0
  336. data/test/integration/tests/basic_computer_games/poker.input +34 -0
  337. data/test/integration/tests/basic_computer_games/poker.output +197 -0
  338. data/test/integration/tests/basic_computer_games/queen.bas +168 -0
  339. data/test/integration/tests/basic_computer_games/queen.input +10 -0
  340. data/test/integration/tests/basic_computer_games/queen.output +133 -0
  341. data/test/integration/tests/basic_computer_games/reverse.bas +62 -0
  342. data/test/integration/tests/basic_computer_games/reverse.input +12 -0
  343. data/test/integration/tests/basic_computer_games/reverse.output +79 -0
  344. data/test/integration/tests/basic_computer_games/rocket.bas +71 -0
  345. data/test/integration/tests/basic_computer_games/rocket.input +42 -0
  346. data/test/integration/tests/basic_computer_games/rocket.output +149 -0
  347. data/test/integration/tests/basic_computer_games/rocksp.bas +33 -0
  348. data/test/integration/tests/basic_computer_games/rocksp.input +9 -0
  349. data/test/integration/tests/basic_computer_games/rocksp.output +69 -0
  350. data/test/integration/tests/basic_computer_games/roulette.bas +239 -0
  351. data/test/integration/tests/basic_computer_games/roulette.input +9 -0
  352. data/test/integration/tests/basic_computer_games/roulette.output +98 -0
  353. data/test/integration/tests/basic_computer_games/rusrou.bas +26 -0
  354. data/test/integration/tests/basic_computer_games/rusrou.input +9 -0
  355. data/test/integration/tests/basic_computer_games/rusrou.output +50 -0
  356. data/test/integration/tests/basic_computer_games/salvo.bas +329 -0
  357. data/test/integration/tests/basic_computer_games/salvo.input +21 -0
  358. data/test/integration/tests/basic_computer_games/salvo.output +49 -0
  359. data/test/integration/tests/basic_computer_games/sinewave.bas +17 -0
  360. data/test/integration/tests/basic_computer_games/sinewave.input +0 -0
  361. data/test/integration/tests/basic_computer_games/sinewave.output +168 -0
  362. data/test/integration/tests/basic_computer_games/slalom.bas +165 -0
  363. data/test/integration/tests/basic_computer_games/slalom.input +20 -0
  364. data/test/integration/tests/basic_computer_games/slalom.output +122 -0
  365. data/test/integration/tests/basic_computer_games/slots.bas +134 -0
  366. data/test/integration/tests/basic_computer_games/slots.input +2 -0
  367. data/test/integration/tests/basic_computer_games/slots.output +20 -0
  368. data/test/integration/tests/basic_computer_games/splat.bas +128 -0
  369. data/test/integration/tests/basic_computer_games/splat.input +9 -0
  370. data/test/integration/tests/basic_computer_games/splat.output +61 -0
  371. data/test/integration/tests/basic_computer_games/stars.bas +54 -0
  372. data/test/integration/tests/basic_computer_games/stars.input +15 -0
  373. data/test/integration/tests/basic_computer_games/stars.output +70 -0
  374. data/test/integration/tests/basic_computer_games/stock.bas +232 -0
  375. data/test/integration/tests/basic_computer_games/stock.input +30 -0
  376. data/test/integration/tests/basic_computer_games/stock.output +156 -0
  377. data/test/integration/tests/basic_computer_games/superstartrek.bas +425 -0
  378. data/test/integration/tests/basic_computer_games/superstartrek.input +21 -0
  379. data/test/integration/tests/basic_computer_games/superstartrek.output +151 -0
  380. data/test/integration/tests/basic_computer_games/superstartrekins.bas +127 -0
  381. data/test/integration/tests/basic_computer_games/superstartrekins.input +1 -0
  382. data/test/integration/tests/basic_computer_games/superstartrekins.output +134 -0
  383. data/test/integration/tests/basic_computer_games/synonym.bas +53 -0
  384. data/test/integration/tests/basic_computer_games/synonym.input +13 -0
  385. data/test/integration/tests/basic_computer_games/synonym.output +57 -0
  386. data/test/integration/tests/basic_computer_games/target.bas +51 -0
  387. data/test/integration/tests/basic_computer_games/target.input +2 -0
  388. data/test/integration/tests/basic_computer_games/target.output +39 -0
  389. data/test/integration/tests/basic_computer_games/tictac1.bas +69 -0
  390. data/test/integration/tests/basic_computer_games/tictac1.input +10 -0
  391. data/test/integration/tests/basic_computer_games/tictac1.output +49 -0
  392. data/test/integration/tests/basic_computer_games/tictac2.bas +114 -0
  393. data/test/integration/tests/basic_computer_games/tictac2.input +6 -0
  394. data/test/integration/tests/basic_computer_games/tictac2.output +104 -0
  395. data/test/integration/tests/basic_computer_games/towers.bas +125 -0
  396. data/test/integration/tests/basic_computer_games/towers.input +9 -0
  397. data/test/integration/tests/basic_computer_games/towers.output +70 -0
  398. data/test/integration/tests/basic_computer_games/train.bas +24 -0
  399. data/test/integration/tests/basic_computer_games/train.input +4 -0
  400. data/test/integration/tests/basic_computer_games/train.output +23 -0
  401. data/test/integration/tests/basic_computer_games/trap.bas +49 -0
  402. data/test/integration/tests/basic_computer_games/trap.input +7 -0
  403. data/test/integration/tests/basic_computer_games/trap.output +40 -0
  404. data/test/integration/tests/basic_computer_games/war.bas +68 -0
  405. data/test/integration/tests/basic_computer_games/war.input +11 -0
  406. data/test/integration/tests/basic_computer_games/war.output +54 -0
  407. data/test/integration/tests/basic_computer_games/weekday.bas +150 -0
  408. data/test/integration/tests/basic_computer_games/weekday.input +2 -0
  409. data/test/integration/tests/basic_computer_games/weekday.output +28 -0
  410. data/test/integration/tests/basic_computer_games/word.bas +65 -0
  411. data/test/integration/tests/basic_computer_games/word.input +6 -0
  412. data/test/integration/tests/basic_computer_games/word.output +0 -0
  413. data/test/integration/tests/fast/abs.bas +5 -0
  414. data/test/integration/tests/fast/abs.input +0 -0
  415. data/test/integration/tests/fast/abs.output +5 -0
  416. data/test/integration/tests/fast/add.bas +5 -0
  417. data/test/integration/tests/fast/add.input +0 -0
  418. data/test/integration/tests/fast/add.output +5 -0
  419. data/test/integration/tests/fast/and.bas +5 -0
  420. data/test/integration/tests/fast/and.input +0 -0
  421. data/test/integration/tests/fast/and.output +5 -0
  422. data/test/integration/tests/fast/array.bas +11 -0
  423. data/test/integration/tests/fast/array.input +0 -0
  424. data/test/integration/tests/fast/array.output +6 -0
  425. data/test/integration/tests/fast/asc.bas +1 -0
  426. data/test/integration/tests/fast/asc.input +0 -0
  427. data/test/integration/tests/fast/asc.output +1 -0
  428. data/test/integration/tests/fast/chr.bas +1 -0
  429. data/test/integration/tests/fast/chr.input +0 -0
  430. data/test/integration/tests/fast/chr.output +1 -0
  431. data/test/integration/tests/fast/cos.bas +1 -0
  432. data/test/integration/tests/fast/cos.input +0 -0
  433. data/test/integration/tests/fast/cos.output +1 -0
  434. data/test/integration/tests/fast/def_fn.bas +9 -0
  435. data/test/integration/tests/fast/def_fn.input +0 -0
  436. data/test/integration/tests/fast/def_fn.output +5 -0
  437. data/test/integration/tests/fast/divide.bas +5 -0
  438. data/test/integration/tests/fast/divide.input +0 -0
  439. data/test/integration/tests/fast/divide.output +5 -0
  440. data/test/integration/tests/fast/end.bas +3 -0
  441. data/test/integration/tests/fast/end.input +0 -0
  442. data/test/integration/tests/fast/end.output +1 -0
  443. data/test/integration/tests/fast/eq.bas +3 -0
  444. data/test/integration/tests/fast/eq.input +0 -0
  445. data/test/integration/tests/fast/eq.output +3 -0
  446. data/test/integration/tests/fast/exp.bas +2 -0
  447. data/test/integration/tests/fast/exp.input +0 -0
  448. data/test/integration/tests/fast/exp.output +2 -0
  449. data/test/integration/tests/fast/float.bas +3 -0
  450. data/test/integration/tests/fast/float.input +0 -0
  451. data/test/integration/tests/fast/float.output +2 -0
  452. data/test/integration/tests/fast/for_next.bas +61 -0
  453. data/test/integration/tests/fast/for_next.input +0 -0
  454. data/test/integration/tests/fast/for_next.output +46 -0
  455. data/test/integration/tests/fast/ge.bas +3 -0
  456. data/test/integration/tests/fast/ge.input +0 -0
  457. data/test/integration/tests/fast/ge.output +3 -0
  458. data/test/integration/tests/fast/gosub_return.bas +10 -0
  459. data/test/integration/tests/fast/gosub_return.input +0 -0
  460. data/test/integration/tests/fast/gosub_return.output +4 -0
  461. data/test/integration/tests/fast/goto.bas +3 -0
  462. data/test/integration/tests/fast/goto.input +0 -0
  463. data/test/integration/tests/fast/goto.output +1 -0
  464. data/test/integration/tests/fast/gt.bas +3 -0
  465. data/test/integration/tests/fast/gt.input +0 -0
  466. data/test/integration/tests/fast/gt.output +3 -0
  467. data/test/integration/tests/fast/if.bas +25 -0
  468. data/test/integration/tests/fast/if.input +0 -0
  469. data/test/integration/tests/fast/if.output +8 -0
  470. data/test/integration/tests/fast/input.bas +24 -0
  471. data/test/integration/tests/fast/input.input +10 -0
  472. data/test/integration/tests/fast/input.output +28 -0
  473. data/test/integration/tests/fast/int.bas +5 -0
  474. data/test/integration/tests/fast/int.input +0 -0
  475. data/test/integration/tests/fast/int.output +5 -0
  476. data/test/integration/tests/fast/integer_plus_string.bas +1 -0
  477. data/test/integration/tests/fast/integer_plus_string.input +0 -0
  478. data/test/integration/tests/fast/integer_plus_string.output +1 -0
  479. data/test/integration/tests/fast/invalid_argument.bas +1 -0
  480. data/test/integration/tests/fast/invalid_argument.input +0 -0
  481. data/test/integration/tests/fast/invalid_argument.output +1 -0
  482. data/test/integration/tests/fast/le.bas +3 -0
  483. data/test/integration/tests/fast/le.input +0 -0
  484. data/test/integration/tests/fast/le.output +3 -0
  485. data/test/integration/tests/fast/left.bas +1 -0
  486. data/test/integration/tests/fast/left.input +0 -0
  487. data/test/integration/tests/fast/left.output +1 -0
  488. data/test/integration/tests/fast/len.bas +2 -0
  489. data/test/integration/tests/fast/len.input +0 -0
  490. data/test/integration/tests/fast/len.output +2 -0
  491. data/test/integration/tests/fast/let.bas +6 -0
  492. data/test/integration/tests/fast/let.input +0 -0
  493. data/test/integration/tests/fast/let.output +4 -0
  494. data/test/integration/tests/fast/log.bas +1 -0
  495. data/test/integration/tests/fast/log.input +0 -0
  496. data/test/integration/tests/fast/log.output +1 -0
  497. data/test/integration/tests/fast/lt.bas +3 -0
  498. data/test/integration/tests/fast/lt.input +0 -0
  499. data/test/integration/tests/fast/lt.output +3 -0
  500. data/test/integration/tests/fast/math.output +0 -0
  501. data/test/integration/tests/fast/mid.bas +2 -0
  502. data/test/integration/tests/fast/mid.input +0 -0
  503. data/test/integration/tests/fast/mid.output +2 -0
  504. data/test/integration/tests/fast/multiply.bas +5 -0
  505. data/test/integration/tests/fast/multiply.input +0 -0
  506. data/test/integration/tests/fast/multiply.output +5 -0
  507. data/test/integration/tests/fast/ne.bas +3 -0
  508. data/test/integration/tests/fast/ne.input +0 -0
  509. data/test/integration/tests/fast/ne.output +3 -0
  510. data/test/integration/tests/fast/negate.bas +4 -0
  511. data/test/integration/tests/fast/negate.input +0 -0
  512. data/test/integration/tests/fast/negate.output +3 -0
  513. data/test/integration/tests/fast/not.bas +4 -0
  514. data/test/integration/tests/fast/not.input +0 -0
  515. data/test/integration/tests/fast/not.output +4 -0
  516. data/test/integration/tests/fast/on_goto.bas +6 -0
  517. data/test/integration/tests/fast/on_goto.input +0 -0
  518. data/test/integration/tests/fast/on_goto.output +2 -0
  519. data/test/integration/tests/fast/or.bas +5 -0
  520. data/test/integration/tests/fast/or.input +0 -0
  521. data/test/integration/tests/fast/or.output +5 -0
  522. data/test/integration/tests/fast/parentheses.bas +1 -0
  523. data/test/integration/tests/fast/parentheses.input +0 -0
  524. data/test/integration/tests/fast/parentheses.output +1 -0
  525. data/test/integration/tests/fast/power.bas +4 -0
  526. data/test/integration/tests/fast/power.input +0 -0
  527. data/test/integration/tests/fast/power.output +4 -0
  528. data/test/integration/tests/fast/print.bas +6 -0
  529. data/test/integration/tests/fast/print.input +0 -0
  530. data/test/integration/tests/fast/print.output +4 -0
  531. data/test/integration/tests/fast/read_data.bas +15 -0
  532. data/test/integration/tests/fast/read_data.input +0 -0
  533. data/test/integration/tests/fast/read_data.output +4 -0
  534. data/test/integration/tests/fast/rem.bas +1 -0
  535. data/test/integration/tests/fast/rem.input +0 -0
  536. data/test/integration/tests/fast/rem.output +0 -0
  537. data/test/integration/tests/fast/right.bas +1 -0
  538. data/test/integration/tests/fast/right.input +0 -0
  539. data/test/integration/tests/fast/right.output +1 -0
  540. data/test/integration/tests/fast/rnd.bas +5 -0
  541. data/test/integration/tests/fast/rnd.input +0 -0
  542. data/test/integration/tests/fast/rnd.output +5 -0
  543. data/test/integration/tests/fast/sgn.bas +5 -0
  544. data/test/integration/tests/fast/sgn.input +0 -0
  545. data/test/integration/tests/fast/sgn.output +5 -0
  546. data/test/integration/tests/fast/sin.bas +1 -0
  547. data/test/integration/tests/fast/sin.input +0 -0
  548. data/test/integration/tests/fast/sin.output +1 -0
  549. data/test/integration/tests/fast/sqr.bas +2 -0
  550. data/test/integration/tests/fast/sqr.input +0 -0
  551. data/test/integration/tests/fast/sqr.output +2 -0
  552. data/test/integration/tests/fast/stop.bas +3 -0
  553. data/test/integration/tests/fast/stop.input +0 -0
  554. data/test/integration/tests/fast/stop.output +2 -0
  555. data/test/integration/tests/fast/str.bas +3 -0
  556. data/test/integration/tests/fast/str.input +0 -0
  557. data/test/integration/tests/fast/str.output +3 -0
  558. data/test/integration/tests/fast/string_addition.bas +1 -0
  559. data/test/integration/tests/fast/string_addition.input +0 -0
  560. data/test/integration/tests/fast/string_addition.output +1 -0
  561. data/test/integration/tests/fast/string_comparisons.bas +7 -0
  562. data/test/integration/tests/fast/string_comparisons.input +0 -0
  563. data/test/integration/tests/fast/string_comparisons.output +4 -0
  564. data/test/integration/tests/fast/string_plus_integer.bas +1 -0
  565. data/test/integration/tests/fast/string_plus_integer.input +0 -0
  566. data/test/integration/tests/fast/string_plus_integer.output +1 -0
  567. data/test/integration/tests/fast/subtract.bas +5 -0
  568. data/test/integration/tests/fast/subtract.input +0 -0
  569. data/test/integration/tests/fast/subtract.output +5 -0
  570. data/test/integration/tests/fast/tab.bas +4 -0
  571. data/test/integration/tests/fast/tab.input +0 -0
  572. data/test/integration/tests/fast/tab.output +3 -0
  573. data/test/integration/tests/fast/tan.bas +1 -0
  574. data/test/integration/tests/fast/tan.input +0 -0
  575. data/test/integration/tests/fast/tan.output +1 -0
  576. data/test/integration/tests/fast/val.bas +3 -0
  577. data/test/integration/tests/fast/val.input +0 -0
  578. data/test/integration/tests/fast/val.output +3 -0
  579. data/test/spec/argument_checker_spec.rb +128 -0
  580. data/test/spec/basic_array_spec.rb +100 -0
  581. data/test/spec/basic_float_spec.rb +168 -0
  582. data/test/spec/basic_integer_spec.rb +270 -0
  583. data/test/spec/basic_numeric_spec.rb +16 -0
  584. data/test/spec/basic_object_spec.rb +22 -0
  585. data/test/spec/basic_string_spec.rb +259 -0
  586. data/test/spec/for_stack_spec.rb +70 -0
  587. data/test/spec/input_reader_spec.rb +143 -0
  588. data/test/spec/input_spec.rb +102 -0
  589. data/test/spec/line_spec.rb +18 -0
  590. data/test/spec/output_spec.rb +153 -0
  591. data/test/spec/parser_spec.rb +562 -0
  592. data/test/spec/program_spec.rb +45 -0
  593. data/test/spec/spec_helper.rb +15 -0
  594. data/test/spec/support/basic_numeric_helpers.rb +327 -0
  595. data/test/spec/support/basic_object_helpers.rb +22 -0
  596. data/test/spec/transcript_spec.rb +37 -0
  597. data/test/spec/transform_spec.rb +513 -0
  598. metadata +742 -0
@@ -0,0 +1,64 @@
1
+ KINEMA
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+
7
+
8
+ A BALL IS THROWN UPWARDS AT 24 METERS PER SECOND.
9
+
10
+ HOW HIGH WILL IT GO (IN METERS)? 28
11
+ CLOSE ENOUGH.
12
+ CORRECT ANSWER IS 28.8
13
+
14
+ HOW LONG UNTIL IT RETURNS (IN SECONDS)? 5
15
+ CLOSE ENOUGH.
16
+ CORRECT ANSWER IS 4.8
17
+
18
+ WHAT WILL ITS VELOCITY BE AFTER 4.4 SECONDS? -20
19
+ CLOSE ENOUGH.
20
+ CORRECT ANSWER IS -20
21
+
22
+
23
+ 3 RIGHT OUT OF 3. NOT BAD.
24
+
25
+
26
+ A BALL IS THROWN UPWARDS AT 26 METERS PER SECOND.
27
+
28
+ HOW HIGH WILL IT GO (IN METERS)? 30
29
+ CLOSE ENOUGH.
30
+ CORRECT ANSWER IS 33.8
31
+
32
+ HOW LONG UNTIL IT RETURNS (IN SECONDS)? 5.5
33
+ CLOSE ENOUGH.
34
+ CORRECT ANSWER IS 5.2
35
+
36
+ WHAT WILL ITS VELOCITY BE AFTER 3.8 SECONDS? -20
37
+ NOT EVEN CLOSE....
38
+ CORRECT ANSWER IS -12
39
+
40
+
41
+ 2 RIGHT OUT OF 3. NOT BAD.
42
+
43
+
44
+ A BALL IS THROWN UPWARDS AT 19 METERS PER SECOND.
45
+
46
+ HOW HIGH WILL IT GO (IN METERS)? 1
47
+ NOT EVEN CLOSE....
48
+ CORRECT ANSWER IS 18.05
49
+
50
+ HOW LONG UNTIL IT RETURNS (IN SECONDS)? 1
51
+ NOT EVEN CLOSE....
52
+ CORRECT ANSWER IS 3.8
53
+
54
+ WHAT WILL ITS VELOCITY BE AFTER 3.4 SECONDS? 1
55
+ NOT EVEN CLOSE....
56
+ CORRECT ANSWER IS -15
57
+
58
+
59
+ 0 RIGHT OUT OF 3.
60
+
61
+ A BALL IS THROWN UPWARDS AT 20 METERS PER SECOND.
62
+
63
+ HOW HIGH WILL IT GO (IN METERS)?
64
+ Error on line 500: No more input
@@ -0,0 +1,268 @@
1
+ 1 PRINT TAB(34);"KING"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 4 PRINT "DO YOU WANT INSTRUCTIONS";
5
+ 5 INPUT Z$
6
+ 6 N5=8
7
+ 10 IF LEFT$(Z$,1)="N" THEN 47
8
+ 11 IF Z$="AGAIN" THEN 1960
9
+ 12 PRINT:PRINT:PRINT
10
+ 20 PRINT "CONGRATULATIONS! YOU'VE JUST BEEN ELECTED PREMIER OF SETATS"
11
+ 22 PRINT "DETINU, A SMALL COMMUNIST ISLAND 30 BY 70 MILES LONG. YOUR"
12
+ 24 PRINT "JOB IS TO DECIDE UPON THE CONTRY'S BUDGET AND DISTRIBUTE"
13
+ 26 PRINT "MONEY TO YOUR COUNTRYMEN FROM THE COMMUNAL TREASURY."
14
+ 28 PRINT "THE MONEY SYSTEM IS RALLODS, AND EACH PERSON NEEDS 100"
15
+ 30 PRINT "RALLODS PER YEAR TO SURVIVE. YOUR COUNTRY'S INCOME COMES"
16
+ 32 PRINT "FROM FARM PRODUCE AND TOURISTS VISITING YOUR MAGNIFICENT"
17
+ 34 PRINT "FORESTS, HUNTING, FISHING, ETC. HALF YOUR LAND IS FARM LAND"
18
+ 36 PRINT "WHICH ALSO HAS AN EXCELLENT MINERAL CONTENT AND MAY BE SOLD"
19
+ 38 PRINT "TO FOREIGN INDUSTRY (STRIP MINING) WHO IMPORT AND SUPPORT"
20
+ 40 PRINT "THEIR OWN WORKERS. CROPS COST BETWEEN 10 AND 15 RALLODS PER"
21
+ 42 PRINT "SQUARE MILE TO PLANT."
22
+ 44 PRINT "YOUR GOAL IS TO COMPLETE YOUR";N5;"YEAR TERM OF OFFICE."
23
+ 46 PRINT "GOOD LUCK!"
24
+ 47 PRINT
25
+ 50 A=INT(60000+(1000*RND(1))-(1000*RND(1)))
26
+ 55 B=INT(500+(10*RND(1))-(10*RND(1)))
27
+ 65 D=2000
28
+ 100 W=INT(10*RND(1)+95)
29
+ 102 PRINT
30
+ 105 PRINT "YOU NOW HAVE ";A;" RALLODS IN THE TREASURY."
31
+ 110 PRINT INT(B);:PRINT "COUNTRYMEN, ";
32
+ 115 V9=INT(((RND(1)/2)*10+10))
33
+ 120 IF C=0 THEN 140
34
+ 130 PRINT INT(C);"FOREIGN WORKERS, ";
35
+ 140 PRINT "AND";INT(D);"SQ. MILES OF LAND."
36
+ 150 PRINT "THIS YEAR INDUSTRY WILL BUY LAND FOR";W;
37
+ 152 PRINT "RALLODS PER SQUARE MILE."
38
+ 155 PRINT "LAND CURRENTLY COSTS";V9;"RALLODS PER SQUARE MILE TO PLANT."
39
+ 162 PRINT
40
+ 200 PRINT "HOW MANY SQUARE MILES DO YOU WISH TO SELL TO INDUSTRY";
41
+ 210 INPUT H
42
+ 215 IF H<0 THEN 200
43
+ 220 IF H<=D-1000 THEN 300
44
+ 230 PRINT "*** THINK AGAIN. YOU ONLY HAVE";D-1000;"SQUARE MILES OF FARM LAND."
45
+ 240 IF X<>0 THEN 200
46
+ 250 PRINT:PRINT "(FOREIGN INDUSTRY WILL ONLY BUY FARM LAND BECAUSE"
47
+ 260 PRINT "FOREST LAND IS UNECONOMICAL TO STRIP MINE DUE TO TREES,"
48
+ 270 PRINT "THICKER TOP SOIL, ETC.)"
49
+ 280 X=1
50
+ 299 GOTO 200
51
+ 300 D=INT(D-H)
52
+ 310 A=INT(A+(H*W))
53
+ 320 PRINT "HOW MANY RALLODS WILL YOU DISTRIBUTE AMONG YOUR COUNTRYMEN";
54
+ 340 INPUT I
55
+ 342 IF I<0 THEN 320
56
+ 350 IF I<A THEN 400
57
+ 360 IF I=A THEN 380
58
+ 370 PRINT " THINK AGAIN. YOU'VE ONLY";A;" RALLODS IN THE TREASURY"
59
+ 375 GOTO 320
60
+ 380 J=0
61
+ 390 K=0
62
+ 395 A=0
63
+ 399 GOTO 1000
64
+ 400 A=INT(A-I)
65
+ 410 PRINT "HOW MANY SQUARE MILES DO YOU WISH TO PLANT";
66
+ 420 INPUT J
67
+ 421 IF J<0 THEN 410
68
+ 422 IF J<=B*2 THEN 426
69
+ 423 PRINT " SORRY, BUT EACH COUNTRYMAN CAN ONLY PLANT 2 SQ. MILES."
70
+ 424 GOTO 410
71
+ 426 IF J<=D-1000 THEN 430
72
+ 427 PRINT " SORRY, BUT YOU'VE ONLY";D-1000;"SQ. MILES OF FARM LAND."
73
+ 428 GOTO 410
74
+ 430 U1=INT(J*V9)
75
+ 435 IF U1<A THEN 500
76
+ 440 IF U1=A THEN 490
77
+ 450 PRINT " THINK AGAIN. YOU'VE ONLY";A;" RALLODS LEFT IN THE TREASURY."
78
+ 460 GOTO 410
79
+ 490 K=0
80
+ 495 A=0
81
+ 499 GOTO 1000
82
+ 500 A=A-U1
83
+ 510 PRINT "HOW MANY RALLODS DO YOU WISH TO SPEND ON POLLUTION CONTROL";
84
+ 520 INPUT K
85
+ 522 IF K<0 THEN 510
86
+ 530 IF K<=A THEN 1000
87
+ 540 PRINT " THINK AGAIN. YOU ONLY HAVE ";A;" RALLODS REMAINING."
88
+ 550 GOTO 510
89
+ 600 IF H<>0 THEN 1002
90
+ 602 IF I<>0 THEN 1002
91
+ 604 IF J<>0 THEN 1002
92
+ 606 IF K<>0 THEN 1002
93
+ 609 PRINT
94
+ 612 PRINT "GOODBYE."
95
+ 614 PRINT "(IF YOU WISH TO CONTINUE THIS GAME AT A LATER DATE, ANSWER"
96
+ 616 PRINT "'AGAIN' WHEN ASKED IF YOU WANT INSTRUCTIONS AT THE START"
97
+ 617 PRINT "OF THE GAME)."
98
+ 618 STOP
99
+ 1000 GOTO 600
100
+ 1002 PRINT
101
+ 1003 PRINT
102
+ 1010 A=INT(A-K)
103
+ 1020 A4=A
104
+ 1100 IF INT(I/100-B)>=0 THEN 1120
105
+ 1105 IF I/100<50 THEN 1700
106
+ 1110 PRINT INT(B-(I/100));"COUNTRYMEN DIED OF STARVATION"
107
+ 1120 F1=INT(RND(1)*(2000-D))
108
+ 1122 IF K<25 THEN 1130
109
+ 1125 F1=INT(F1/(K/25))
110
+ 1130 IF F1<=0 THEN 1150
111
+ 1140 PRINT F1;"COUNTRYMEN DIED OF CARBON-MONOXIDE AND DUST INHALATION"
112
+ 1150 IF INT((I/100)-B)<0 THEN 1170
113
+ 1160 IF F1>0 THEN 1180
114
+ 1165 GOTO 1200
115
+ 1170 PRINT " YOU WERE FORCED TO SPEND";INT((F1+(B-(I/100)))*9);
116
+ 1172 PRINT "RALLODS ON FUNERAL EXPENSES"
117
+ 1174 B5=INT(F1+(B-(I/100)))
118
+ 1175 A=INT(A-((F1+(B-(I/100)))*9))
119
+ 1176 GOTO 1185
120
+ 1180 PRINT " YOU WERE FORCED TO SPEND ";INT(F1*9);"RALLODS ON ";
121
+ 1181 PRINT "FUNERAL EXPENSES."
122
+ 1182 B5=F1
123
+ 1183 A=INT(A-(F1*9))
124
+ 1185 IF A>=0 THEN 1194
125
+ 1187 PRINT " INSUFFICIENT RESERVES TO COVER COST - LAND WAS SOLD"
126
+ 1189 D=INT(D+(A/W))
127
+ 1190 A=0
128
+ 1194 B=INT(B-B5)
129
+ 1200 IF H=0 THEN 1250
130
+ 1220 C1=INT(H+(RND(1)*10)-(RND(1)*20))
131
+ 1224 IF C>0 THEN 1230
132
+ 1226 C1=C1+20
133
+ 1230 PRINT C1;"WORKERS CAME TO THE COUNTRY AND";
134
+ 1250 P1=INT(((I/100-B)/10)+(K/25)-((2000-D)/50)-(F1/2))
135
+ 1255 PRINT ABS(P1);"COUNTRYMEN ";
136
+ 1260 IF P1<0 THEN 1275
137
+ 1265 PRINT "CAME TO";
138
+ 1270 GOTO 1280
139
+ 1275 PRINT "LEFT";
140
+ 1280 PRINT " THE ISLAND."
141
+ 1290 B=INT(B+P1)
142
+ 1292 C=INT(C+C1)
143
+ 1305 U2=INT(((2000-D)*((RND(1)+1.5)/2)))
144
+ 1310 IF C=0 THEN 1324
145
+ 1320 PRINT "OF ";INT(J);"SQ. MILES PLANTED,";
146
+ 1324 IF J>U2 THEN 1330
147
+ 1326 U2=J
148
+ 1330 PRINT " YOU HARVESTED ";INT(J-U2);"SQ. MILES OF CROPS."
149
+ 1340 IF U2=0 THEN 1370
150
+ 1344 IF T1>=2 THEN 1370
151
+ 1350 PRINT " (DUE TO ";
152
+ 1355 IF T1=0 THEN 1365
153
+ 1360 PRINT "INCREASED ";
154
+ 1365 PRINT "AIR AND WATER POLLUTION FROM FOREIGN INDUSTRY.)"
155
+ 1370 Q=INT((J-U2)*(W/2))
156
+ 1380 PRINT "MAKING";INT(Q);"RALLODS."
157
+ 1390 A=INT(A+Q)
158
+ 1400 V1=INT(((B-P1)*22)+(RND(1)*500))
159
+ 1405 V2=INT((2000-D)*15)
160
+ 1410 PRINT " YOU MADE";ABS(INT(V1-V2));"RALLODS FROM TOURIST TRADE."
161
+ 1420 IF V2=0 THEN 1450
162
+ 1425 IF V1-V2>=V3 THEN 1450
163
+ 1430 PRINT " DECREASE BECAUSE ";
164
+ 1435 G1=10*RND(1)
165
+ 1440 IF G1<=2 THEN 1460
166
+ 1442 IF G1<=4 THEN 1465
167
+ 1444 IF G1<=6 THEN 1470
168
+ 1446 IF G1<=8 THEN 1475
169
+ 1448 IF G1<=10 THEN 1480
170
+ 1450 V3=INT(A+V3)
171
+ 1451 A=INT(A+V3)
172
+ 1452 GOTO 1500
173
+ 1460 PRINT "FISH POPULATION HAS DWINDLED DUE TO WATER POLLUTION."
174
+ 1462 GOTO 1450
175
+ 1465 PRINT "AIR POLLUTION IS KILLING GAME BIRD POPULATION."
176
+ 1467 GOTO 1450
177
+ 1470 PRINT "MINERAL BATHS ARE BEING RUINED BY WATER POLLUTION."
178
+ 1472 GOTO 1450
179
+ 1475 PRINT "UNPLEASANT SMOG IS DISCOURAGING SUN BATHERS."
180
+ 1477 GOTO 1450
181
+ 1480 PRINT "HOTELS ARE LOOKING SHABBY DUE TO SMOG GRIT."
182
+ 1482 GOTO 1450
183
+ 1500 IF B5>200 THEN 1600
184
+ 1505 IF B<343 THEN 1700
185
+ 1510 IF (A4/100)>5 THEN 1800
186
+ 1515 IF C>B THEN 1550
187
+ 1520 IF N5-1=X5 THEN 1900
188
+ 1545 GOTO 2000
189
+ 1550 PRINT
190
+ 1552 PRINT
191
+ 1560 PRINT "THE NUMBER OF FOREIGN WORKERS HAS EXCEEDED THE NUMBER"
192
+ 1562 PRINT "OF COUNTRYMEN. AS A MINORITY, THEY HAVE REVOLTED AND"
193
+ 1564 PRINT "TAKEN OVER THE COUNTRY."
194
+ 1570 IF RND(1)<=.5 THEN 1580
195
+ 1574 PRINT "YOU HAVE BEEN THROWN OUT OF OFFICE AND ARE NOW"
196
+ 1576 PRINT "RESIDING IN PRISON."
197
+ 1578 GOTO 1590
198
+ 1580 PRINT "YOU HAVE BEEN ASSASSINATED."
199
+ 1590 PRINT
200
+ 1592 PRINT
201
+ 1596 STOP
202
+ 1600 PRINT
203
+ 1602 PRINT
204
+ 1610 PRINT B5;"COUNTRYMEN DIED IN ONE YEAR!!!!!"
205
+ 1615 PRINT "DUE TO THIS EXTREME MISMANAGEMENT, YOU HAVE NOT ONLY"
206
+ 1620 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE, BUT YOU"
207
+ 1622 M6=INT(RND(1)*10)
208
+ 1625 IF M6<=3 THEN 1670
209
+ 1630 IF M6<=6 THEN 1680
210
+ 1635 IF M6<=10 THEN 1690
211
+ 1670 PRINT "ALSO HAD YOUR LEFT EYE GOUGED OUT!"
212
+ 1672 GOTO 1590
213
+ 1680 PRINT "HAVE ALSO GAINED A VERY BAD REPUTATION."
214
+ 1682 GOTO 1590
215
+ 1690 PRINT "HAVE ALSO BEEN DECLARED NATIONAL FINK."
216
+ 1692 GOTO 1590
217
+ 1700 PRINT
218
+ 1702 PRINT
219
+ 1710 PRINT "OVER ONE THIRD OF THE POPULTATION HAS DIED SINCE YOU"
220
+ 1715 PRINT "WERE ELECTED TO OFFICE. THE PEOPLE (REMAINING)"
221
+ 1720 PRINT "HATE YOUR GUTS."
222
+ 1730 GOTO 1570
223
+ 1800 IF B5-F1<2 THEN 1515
224
+ 1807 PRINT
225
+ 1815 PRINT "MONEY WAS LEFT OVER IN THE TREASURY WHICH YOU DID"
226
+ 1820 PRINT "NOT SPEND. AS A RESULT, SOME OF YOUR COUNTRYMEN DIED"
227
+ 1825 PRINT "OF STARVATION. THE PUBLIC IS ENRAGED AND YOU HAVE"
228
+ 1830 PRINT "BEEN FORCED TO EITHER RESIGN OR COMMIT SUICIDE."
229
+ 1835 PRINT "THE CHOICE IS YOURS."
230
+ 1840 PRINT "IF YOU CHOOSE THE LATTER, PLEASE TURN OFF YOUR COMPUTER"
231
+ 1845 PRINT "BEFORE PROCEEDING."
232
+ 1850 GOTO 1590
233
+ 1900 PRINT
234
+ 1902 PRINT
235
+ 1920 PRINT "CONGRATULATIONS!!!!!!!!!!!!!!!!!!"
236
+ 1925 PRINT "YOU HAVE SUCCESFULLY COMPLETED YOUR";N5;"YEAR TERM"
237
+ 1930 PRINT "OF OFFICE. YOU WERE, OF COURSE, EXTREMELY LUCKY, BUT"
238
+ 1935 PRINT "NEVERTHELESS, IT'S QUITE AN ACHIEVEMENT. GOODBYE AND GOOD"
239
+ 1940 PRINT "LUCK - YOU'LL PROBABLY NEED IT IF YOU'RE THE TYPE THAT"
240
+ 1945 PRINT "PLAYS THIS GAME."
241
+ 1950 GOTO 1590
242
+ 1960 PRINT "HOW MANY YEARS HAD YOU BEEN IN OFFICE WHEN INTERRUPTED";
243
+ 1961 INPUT X5
244
+ 1962 IF X5<0 THEN 1590
245
+ 1963 IF X5<8 THEN 1969
246
+ 1965 PRINT " COME ON, YOUR TERM IN OFFICE IS ONLY";N5;"YEARS."
247
+ 1967 GOTO 1960
248
+ 1969 PRINT "HOW MUCH DID YOU HAVE IN THE TREASURY";
249
+ 1970 INPUT A
250
+ 1971 IF A<0 THEN 1590
251
+ 1975 PRINT "HOW MANY COUNTRYMEN";
252
+ 1976 INPUT B
253
+ 1977 IF B<0 THEN 1590
254
+ 1980 PRINT "HOW MANY WORKERS";
255
+ 1981 INPUT C
256
+ 1982 IF C<0 THEN 1590
257
+ 1990 PRINT "HOW MANY SQUARE MILES OF LAND";
258
+ 1991 INPUT D
259
+ 1992 IF D<0 THEN 1590
260
+ 1993 IF D>2000 THEN 1996
261
+ 1994 IF D>1000 THEN 100
262
+ 1996 PRINT " COME ON, YOU STARTED WITH 1000 SQ. MILES OF FARM LAND"
263
+ 1997 PRINT " AND 10,000 SQ. MILES OF FOREST LAND."
264
+ 1998 GOTO 1990
265
+ 2000 X5=X5+1
266
+ 2020 B5=0
267
+ 2040 GOTO 100
268
+ 2046 END
@@ -0,0 +1,7 @@
1
+ YES
2
+ 100
3
+ 10000
4
+ 20000
5
+ 1000
6
+ 900
7
+ 1000
@@ -0,0 +1,57 @@
1
+ KING
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ DO YOU WANT INSTRUCTIONS? YES
7
+
8
+
9
+
10
+ CONGRATULATIONS! YOU'VE JUST BEEN ELECTED PREMIER OF SETATS
11
+ DETINU, A SMALL COMMUNIST ISLAND 30 BY 70 MILES LONG. YOUR
12
+ JOB IS TO DECIDE UPON THE CONTRY'S BUDGET AND DISTRIBUTE
13
+ MONEY TO YOUR COUNTRYMEN FROM THE COMMUNAL TREASURY.
14
+ THE MONEY SYSTEM IS RALLODS, AND EACH PERSON NEEDS 100
15
+ RALLODS PER YEAR TO SURVIVE. YOUR COUNTRY'S INCOME COMES
16
+ FROM FARM PRODUCE AND TOURISTS VISITING YOUR MAGNIFICENT
17
+ FORESTS, HUNTING, FISHING, ETC. HALF YOUR LAND IS FARM LAND
18
+ WHICH ALSO HAS AN EXCELLENT MINERAL CONTENT AND MAY BE SOLD
19
+ TO FOREIGN INDUSTRY (STRIP MINING) WHO IMPORT AND SUPPORT
20
+ THEIR OWN WORKERS. CROPS COST BETWEEN 10 AND 15 RALLODS PER
21
+ SQUARE MILE TO PLANT.
22
+ YOUR GOAL IS TO COMPLETE YOUR 8 YEAR TERM OF OFFICE.
23
+ GOOD LUCK!
24
+
25
+
26
+ YOU NOW HAVE 59833 RALLODS IN THE TREASURY.
27
+ 500 COUNTRYMEN, AND 2000 SQ. MILES OF LAND.
28
+ THIS YEAR INDUSTRY WILL BUY LAND FOR 99 RALLODS PER SQUARE MILE.
29
+ LAND CURRENTLY COSTS 13 RALLODS PER SQUARE MILE TO PLANT.
30
+
31
+ HOW MANY SQUARE MILES DO YOU WISH TO SELL TO INDUSTRY? 100
32
+ HOW MANY RALLODS WILL YOU DISTRIBUTE AMONG YOUR COUNTRYMEN? 10000
33
+ HOW MANY SQUARE MILES DO YOU WISH TO PLANT? 20000
34
+ SORRY, BUT EACH COUNTRYMAN CAN ONLY PLANT 2 SQ. MILES.
35
+ HOW MANY SQUARE MILES DO YOU WISH TO PLANT? 1000
36
+ SORRY, BUT YOU'VE ONLY 900 SQ. MILES OF FARM LAND.
37
+ HOW MANY SQUARE MILES DO YOU WISH TO PLANT? 900
38
+ HOW MANY RALLODS DO YOU WISH TO SPEND ON POLLUTION CONTROL? 1000
39
+
40
+
41
+ 400 COUNTRYMEN DIED OF STARVATION
42
+ 1 COUNTRYMEN DIED OF CARBON-MONOXIDE AND DUST INHALATION
43
+ YOU WERE FORCED TO SPEND 3609 RALLODS ON FUNERAL EXPENSES
44
+ 109 WORKERS CAME TO THE COUNTRY AND 37 COUNTRYMEN CAME TO THE ISLAND.
45
+ OF 900 SQ. MILES PLANTED, YOU HARVESTED 806 SQ. MILES OF CROPS.
46
+ (DUE TO AIR AND WATER POLLUTION FROM FOREIGN INDUSTRY.)
47
+ MAKING 39897 RALLODS.
48
+ YOU MADE 1073 RALLODS FROM TOURIST TRADE.
49
+
50
+
51
+ 401 COUNTRYMEN DIED IN ONE YEAR!!!!!
52
+ DUE TO THIS EXTREME MISMANAGEMENT, YOU HAVE NOT ONLY
53
+ BEEN IMPEACHED AND THROWN OUT OF OFFICE, BUT YOU
54
+ HAVE ALSO GAINED A VERY BAD REPUTATION.
55
+
56
+
57
+ Break in line 1596
@@ -0,0 +1,246 @@
1
+ 2 PRINT TAB(34);"LEM"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 7 REM ROCKT2 IS AN INTERACTIVE GAME THAT SIMULATES A LUNAR
4
+ 8 REM LANDING IS SIMILAR TO THAT OF THE APOLLO PROGRAM.
5
+ 9 REM THERE IS ABSOLUTELY NO CHANCE INVOLVED
6
+ 10 Z$="GO"
7
+ 15 B1=1
8
+ 20 M=17.95
9
+ 25 F1=5.25
10
+ 30 N=7.5
11
+ 35 R0=926
12
+ 40 V0=1.29
13
+ 45 T=0
14
+ 50 H0=60
15
+ 55 R=R0+H0
16
+ 60 A=-3.425
17
+ 65 R1=0
18
+ 70 A1=8.84361E-04
19
+ 75 R3=0
20
+ 80 A3=0
21
+ 85 M1=7.45
22
+ 90 M0=M1
23
+ 95 B=750
24
+ 100 T1=0
25
+ 105 F=0
26
+ 110 P=0
27
+ 115 N=1
28
+ 120 M2=0
29
+ 125 S=0
30
+ 130 C=0
31
+ 135 IF Z$="YES" THEN 1150
32
+ 140 PRINT
33
+ 145 PRINT "LUNAR LANDING SIMULATION"
34
+ 150 PRINT
35
+ 155 PRINT "HAVE YOU FLOWN AN APOLLO/LEM MISSION BEFORE";
36
+ 160 PRINT " (YES OR NO)";
37
+ 165 INPUT Q$
38
+ 170 IF Q$="YES" THEN 190
39
+ 175 IF Q$="NO" THEN 205
40
+ 180 PRINT "JUST ANSWER THE QUESTION, PLEASE, ";
41
+ 185 GOTO 160
42
+ 190 PRINT
43
+ 195 PRINT "INPUT MEASUREMENT OPTION NUMBER";
44
+ 200 GOTO 225
45
+ 205 PRINT
46
+ 210 PRINT "WHICH SYSTEM OF MEASUREMENT DO YOU PREFER?"
47
+ 215 PRINT " 1=METRIC 0=ENGLISH"
48
+ 220 PRINT "ENTER THE APPROPRIATE NUMBER";
49
+ 225 INPUT K
50
+ 230 PRINT
51
+ 235 IF K=0 THEN 280
52
+ 240 IF K=1 THEN 250
53
+ 245 GOTO 220
54
+ 250 Z=1852.8
55
+ 255 M$="METERS"
56
+ 260 G3=3.6
57
+ 265 N$=" KILOMETERS"
58
+ 270 G5=1000
59
+ 275 GOTO 305
60
+ 280 Z=6080
61
+ 285 M$="FEET"
62
+ 290 G3=.592
63
+ 295 N$="N.MILES"
64
+ 300 G5=Z
65
+ 305 IF B1=3 THEN 670
66
+ 310 IF Q$="YES" THEN 485
67
+ 315 PRINT
68
+ 320 PRINT " YOU ARE ON A LUNAR LANDING MISSION. AS THE PILOT OF"
69
+ 325 PRINT "THE LUNAR EXCURSION MODULE, YOU WILL BE EXPECTED TO"
70
+ 330 PRINT "GIVE CERTAIN COMMANDS TO THE MODULE NAVIGATION SYSTEM."
71
+ 335 PRINT "THE ON-BOARD COMPUTER WILL GIVE A RUNNING ACCOUNT"
72
+ 340 PRINT "OF INFORMATION NEEDED TO NAVIGATE THE SHIP."
73
+ 345 PRINT
74
+ 350 PRINT
75
+ 355 PRINT "THE ATTITUDE ANGLE CALLED FOR IS DESCRIBED AS FOLLOWS."
76
+ 360 PRINT "+ OR -180 DEGREES IS DIRECTLY AWAY FROM THE MOON"
77
+ 365 PRINT "-90 DEGREES IS ON A TANGENT IN THE DIRECTION OF ORBIT"
78
+ 370 PRINT "+90 DEGREES IS ON A TANGENT FROM THE DIRECTION OF ORBIT"
79
+ 375 PRINT "0 (ZERO) DEGREES IS DIRECTLY TOWARD THE MOON"
80
+ 380 PRINT
81
+ 385 PRINT TAB(30);"-180|+180"
82
+ 390 PRINT TAB(34);"^"
83
+ 395 PRINT TAB(27);"-90 < -+- > +90"
84
+ 400 PRINT TAB(34);"!"
85
+ 405 PRINT TAB(34);"0"
86
+ 410 PRINT TAB(21);"<<<< DIRECTION OF ORBIT <<<<"
87
+ 415 PRINT
88
+ 420 PRINT TAB(20);"------ SURFACE OF MOON ------"
89
+ 425 PRINT
90
+ 430 PRINT
91
+ 435 PRINT "ALL ANGLES BETWEEN -180 AND +180 DEGREES ARE ACCEPTED."
92
+ 440 PRINT
93
+ 445 PRINT "1 FUEL UNIT = 1 SEC. AT MAX THRUST"
94
+ 450 PRINT "ANY DISCREPANCIES ARE ACCOUNTED FOR IN THE USE OF FUEL"
95
+ 455 PRINT "FOR AN ATTITUDE CHANGE."
96
+ 460 PRINT "AVAILABLE ENGINE POWER: 0 (ZERO) AND ANY VALUE BETWEEN"
97
+ 465 PRINT "10 AND 100 PERCENT."
98
+ 470 PRINT
99
+ 475 PRINT"NEGATIVE THRUST OR TIME IS PROHIBITED."
100
+ 480 PRINT
101
+ 485 PRINT
102
+ 490 PRINT "INPUT: TIME INTERVAL IN SECONDS ------ (T)"
103
+ 495 PRINT " PERCENTAGE OF THRUST ---------- (P)"
104
+ 500 PRINT " ATTITUDE ANGLE IN DEGREES ----- (A)"
105
+ 505 PRINT
106
+ 510 IF Q$="YES" THEN 535
107
+ 515 PRINT "FOR EXAMPLE:"
108
+ 520 PRINT "T,P,A? 10,65,-60"
109
+ 525 PRINT "TO ABORT THE MISSION AT ANY TIME, ENTER 0,0,0"
110
+ 530 PRINT
111
+ 535 PRINT "OUTPUT: TOTAL TIME IN ELAPSED SECONDS"
112
+ 540 PRINT " HEIGHT IN ";M$
113
+ 545 PRINT " DISTANCE FROM LANDING SITE IN ";M$
114
+ 550 PRINT " VERTICAL VELOCITY IN ";M$;"/SECOND"
115
+ 555 PRINT " HORIZONTAL VELOCITY IN ";M$;"/SECOND"
116
+ 560 PRINT " FUEL UNITS REMAINING"
117
+ 565 PRINT
118
+ 570 GOTO 670
119
+ 575 PRINT
120
+ 580 PRINT "T,P,A";
121
+ 585 INPUT T1,F,P
122
+ 590 F=F/100
123
+ 595 IF T1<0 THEN 905
124
+ 600 IF T1=0 THEN 1090
125
+ 605 IF ABS(F-.05)>1 THEN 945
126
+ 610 IF ABS(F-.05)<.05 THEN 945
127
+ 615 IF ABS(P)>180 THEN 925
128
+ 620 N=20
129
+ 625 IF T1<400 THEN 635
130
+ 630 N=T1/20
131
+ 635 T1=T1/N
132
+ 640 P=P*3.14159/180
133
+ 645 S=SIN(P)
134
+ 650 C=COS(P)
135
+ 655 M2=M0*T1*F/B
136
+ 660 R3=-.5*R0*((V0/R)^2)+R*A1*A1
137
+ 665 A3=-2*R1*A1/R
138
+ 670 FOR I=1 TO N
139
+ 675 IF M1=0 THEN 715
140
+ 680 M1=M1-M2
141
+ 685 IF M1>0 THEN 725
142
+ 690 F=F*(1+M1/M2)
143
+ 695 M2=M1+M2
144
+ 700 PRINT "YOU ARE OUT OF FUEL."
145
+ 705 M1=0
146
+ 710 GOTO 725
147
+ 715 F=0
148
+ 720 M2=0
149
+ 725 M=M-.5*M2
150
+ 730 R4=R3
151
+ 735 R3=-.5*R0*((V0/R)^2)+R*A1*A1
152
+ 740 R2=(3*R3-R4)/2+.00526*F1*F*C/M
153
+ 745 A4=A3
154
+ 750 A3=-2*R1*A1/R
155
+ 755 A2=(3*A3-A4)/2+.0056*F1*F*S/(M*R)
156
+ 760 X=R1*T1+.5*R2*T1*T1
157
+ 765 R=R+X
158
+ 770 H0=H0+X
159
+ 775 R1=R1+R2*T1
160
+ 780 A=A+A1*T1+.5*A2*T1*T1
161
+ 785 A1=A1+A2*T1
162
+ 790 M=M-.5*M2
163
+ 795 T=T+T1
164
+ 800 IF H0<3.287828E-04 THEN 810
165
+ 805 NEXT I
166
+ 810 H=H0*Z
167
+ 815 H1=R1*Z
168
+ 820 D=R0*A*Z
169
+ 825 D1=R*A1*Z
170
+ 830 T2=M1*B/M0
171
+ 835 PRINT " ";T;TAB(10);H;TAB(23);D;
172
+ 840 PRINT TAB(37);H1;TAB(49);D1;TAB(60);T2
173
+ 845 IF H0<3.287828E-04 THEN 880
174
+ 850 IF R0*A>164.474 THEN 1050
175
+ 855 IF M1>0 THEN 580
176
+ 860 T1=20
177
+ 865 F=0
178
+ 870 P=0
179
+ 875 GOTO 620
180
+ 880 IF R1<-8.21957E-04 THEN 1020
181
+ 885 IF ABS(R*A1)>4.93174E-04 THEN 1020
182
+ 890 IF H0<-3.287828E-04 THEN 1020
183
+ 895 IF ABS(D)>10*Z THEN 1065
184
+ 900 GOTO 995
185
+ 905 PRINT
186
+ 910 PRINT "THIS SPACECRAFT IS NOT ABLE TO VIOLATE THE SPACE-";
187
+ 915 PRINT "TIME CONTINUUM."
188
+ 920 GOTO 575
189
+ 925 PRINT
190
+ 930 PRINT "IF YOU WANT TO SPIN AROUND, GO OUTSIDE THE MODULE"
191
+ 935 PRINT "FOR AN E.V.A."
192
+ 940 GOTO 575
193
+ 945 PRINT
194
+ 950 PRINT "IMPOSSIBLE THRUST VALUE ";
195
+ 955 IF F<0 THEN 985
196
+ 960 IF F-.05<.05 THEN 975
197
+ 965 PRINT "TOO LARGE"
198
+ 970 GOTO 575
199
+ 975 PRINT "TOO SMALL"
200
+ 980 GOTO 575
201
+ 985 PRINT "NEGATIVE"
202
+ 990 GOTO 575
203
+ 995 PRINT
204
+ 1000 PRINT "TRANQUILITY BASE HERE -- THE EAGLE HAS LANDED."
205
+ 1005 PRINT "CONGRATULATIONS -- THERE WAS NO SPACECRAFT DAMAGE."
206
+ 1010 PRINT "YOU MAY NOW PROCEED WITH SURFACE EXPLORATION."
207
+ 1015 GOTO 1100
208
+ 1020 PRINT
209
+ 1025 PRINT "CRASH !!!!!!!!!!!!!!!!"
210
+ 1030 PRINT "YOUR IMPACT CREATED A CRATER";ABS(H);M$;" DEEP."
211
+ 1035 X1=SQR(D1*D1+H1*H1)*G3
212
+ 1040 PRINT "AT CONTACT YOU WERE TRAVELING";X1;N$;"/HR"
213
+ 1045 GOTO 1100
214
+ 1050 PRINT
215
+ 1055 PRINT "YOU HAVE BEEN LOST IN SPACE WITH NO HOPE OF RECOVERY."
216
+ 1060 GOTO 1100
217
+ 1065 PRINT "YOU ARE DOWN SAFELY - "
218
+ 1075 PRINT
219
+ 1080 PRINT "BUT MISSED THE LANDING SITE BY";ABS(D/G5);N$;"."
220
+ 1085 GOTO 1100
221
+ 1090 PRINT
222
+ 1095 PRINT "MISSION ABENDED"
223
+ 1100 PRINT
224
+ 1105 PRINT "DO YOU WANT TO TRY IT AGAIN (YES/NO)?"
225
+ 1110 INPUT Z$
226
+ 1115 IF Z$="YES" THEN 20
227
+ 1120 IF Z$="NO" THEN 1130
228
+ 1125 GOTO 1105
229
+ 1130 PRINT
230
+ 1135 PRINT "TOO BAD, THE SPACE PROGRAM HATES TO LOSE EXPERIENCED"
231
+ 1140 PRINT "ASTRONAUTS."
232
+ 1145 STOP
233
+ 1150 PRINT
234
+ 1155 PRINT "OK, DO YOU WANT THE COMPLETE INSTRUCTIONS OR THE INPUT -"
235
+ 1160 PRINT "OUTPUT STATEMENTS?"
236
+ 1165 PRINT "1=COMPLETE INSTRUCTIONS"
237
+ 1170 PRINT "2=INPUT-OUTPUT STATEMENTS"
238
+ 1175 PRINT "3=NEITHER"
239
+ 1180 INPUT B1
240
+ 1185 Q$="NO"
241
+ 1190 IF B1=1 THEN 205
242
+ 1195 Q$="YES"
243
+ 1200 IF B1=2 THEN 190
244
+ 1205 IF B1=3 THEN 190
245
+ 1210 GOTO 1165
246
+ 1215 END
@@ -0,0 +1,4 @@
1
+ NO
2
+ 0
3
+ 10,65,-60
4
+ 20,50,0