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,68 @@
1
+ LEM
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+ LUNAR LANDING SIMULATION
5
+
6
+ HAVE YOU FLOWN AN APOLLO/LEM MISSION BEFORE (YES OR NO)? NO
7
+
8
+ WHICH SYSTEM OF MEASUREMENT DO YOU PREFER?
9
+ 1=METRIC 0=ENGLISH
10
+ ENTER THE APPROPRIATE NUMBER? 0
11
+
12
+
13
+ YOU ARE ON A LUNAR LANDING MISSION. AS THE PILOT OF
14
+ THE LUNAR EXCURSION MODULE, YOU WILL BE EXPECTED TO
15
+ GIVE CERTAIN COMMANDS TO THE MODULE NAVIGATION SYSTEM.
16
+ THE ON-BOARD COMPUTER WILL GIVE A RUNNING ACCOUNT
17
+ OF INFORMATION NEEDED TO NAVIGATE THE SHIP.
18
+
19
+
20
+ THE ATTITUDE ANGLE CALLED FOR IS DESCRIBED AS FOLLOWS.
21
+ + OR -180 DEGREES IS DIRECTLY AWAY FROM THE MOON
22
+ -90 DEGREES IS ON A TANGENT IN THE DIRECTION OF ORBIT
23
+ +90 DEGREES IS ON A TANGENT FROM THE DIRECTION OF ORBIT
24
+ 0 (ZERO) DEGREES IS DIRECTLY TOWARD THE MOON
25
+
26
+ -180|+180
27
+ ^
28
+ -90 < -+- > +90
29
+ !
30
+ 0
31
+ <<<< DIRECTION OF ORBIT <<<<
32
+
33
+ ------ SURFACE OF MOON ------
34
+
35
+
36
+ ALL ANGLES BETWEEN -180 AND +180 DEGREES ARE ACCEPTED.
37
+
38
+ 1 FUEL UNIT = 1 SEC. AT MAX THRUST
39
+ ANY DISCREPANCIES ARE ACCOUNTED FOR IN THE USE OF FUEL
40
+ FOR AN ATTITUDE CHANGE.
41
+ AVAILABLE ENGINE POWER: 0 (ZERO) AND ANY VALUE BETWEEN
42
+ 10 AND 100 PERCENT.
43
+
44
+ NEGATIVE THRUST OR TIME IS PROHIBITED.
45
+
46
+
47
+ INPUT: TIME INTERVAL IN SECONDS ------ (T)
48
+ PERCENTAGE OF THRUST ---------- (P)
49
+ ATTITUDE ANGLE IN DEGREES ----- (A)
50
+
51
+ FOR EXAMPLE:
52
+ T,P,A? 10,65,-60
53
+ TO ABORT THE MISSION AT ANY TIME, ENTER 0,0,0
54
+
55
+ OUTPUT: TOTAL TIME IN ELAPSED SECONDS
56
+ HEIGHT IN FEET
57
+ DISTANCE FROM LANDING SITE IN FEET
58
+ VERTICAL VELOCITY IN FEET/SECOND
59
+ HORIZONTAL VELOCITY IN FEET/SECOND
60
+ FUEL UNITS REMAINING
61
+
62
+ 0 364800 -19283024 0 5301.638 750
63
+ T,P,A? 10,65,-60
64
+ 10 364944 -1.92335e+07 28.66155 5245.354 743.5
65
+ T,P,A? 20,50,0
66
+ 30 366412 -1.9135e+07 118.2137 5244.074 733.5
67
+ T,P,A?
68
+ Error on line 585: No more input
@@ -0,0 +1,26 @@
1
+ 10 PRINT TAB(33);"LETTER"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 PRINT "LETTER GUESSING GAME": PRINT
5
+ 210 PRINT "I'LL THINK OF A LETTER OF THE ALPHABET, A TO Z."
6
+ 220 PRINT "TRY TO GUESS MY LETTER AND I'LL GIVE YOU CLUES"
7
+ 230 PRINT "AS TO HOW CLOSE YOU'RE GETTING TO MY LETTER."
8
+ 310 L=65+INT(RND(1)*26)
9
+ 320 G=0
10
+ 340 PRINT: PRINT "O.K., I HAVE A LETTER. START GUESSING."
11
+ 410 PRINT: PRINT "WHAT IS YOUR GUESS";
12
+ 420 G=G+1
13
+ 430 INPUT A$: A=ASC(A$): PRINT
14
+ 440 IF A=L THEN 500
15
+ 450 IF A>L THEN 480
16
+ 460 PRINT "TOO LOW. TRY A HIGHER LETTER.": GOTO 410
17
+ 480 PRINT "TOO HIGH. TRY A LOWER LETTER.": GOTO 410
18
+ 500 PRINT: PRINT "YOU GOT IT IN";G;"GUESSES!!"
19
+ 504 IF G<=5 THEN 508
20
+ 506 PRINT "BUT IT SHOULDN'T TAKE MORE THAN 5 GUESSES!": GOTO 515
21
+ 508 PRINT "GOOD JOB !!!!!"
22
+ 510 FOR N=1 TO 15: PRINT CHR$(7);: NEXT N
23
+ 515 PRINT
24
+ 520 PRINT "LET'S PLAN AGAIN....."
25
+ 530 GOTO 310
26
+ 999 END
@@ -0,0 +1,24 @@
1
+ M
2
+ T
3
+ P
4
+ O
5
+ A
6
+ B
7
+ C
8
+ D
9
+ E
10
+ F
11
+ G
12
+ H
13
+ I
14
+ J
15
+ K
16
+ L
17
+ M
18
+ N
19
+ O
20
+ P
21
+ Q
22
+ R
23
+ S
24
+ T
@@ -0,0 +1,123 @@
1
+ LETTER
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ LETTER GUESSING GAME
7
+
8
+ I'LL THINK OF A LETTER OF THE ALPHABET, A TO Z.
9
+ TRY TO GUESS MY LETTER AND I'LL GIVE YOU CLUES
10
+ AS TO HOW CLOSE YOU'RE GETTING TO MY LETTER.
11
+
12
+ O.K., I HAVE A LETTER. START GUESSING.
13
+
14
+ WHAT IS YOUR GUESS? M
15
+
16
+ TOO LOW. TRY A HIGHER LETTER.
17
+
18
+ WHAT IS YOUR GUESS? T
19
+
20
+ TOO HIGH. TRY A LOWER LETTER.
21
+
22
+ WHAT IS YOUR GUESS? P
23
+
24
+ TOO HIGH. TRY A LOWER LETTER.
25
+
26
+ WHAT IS YOUR GUESS? O
27
+
28
+
29
+ YOU GOT IT IN 4 GUESSES!!
30
+ GOOD JOB !!!!!
31
+ 
32
+ LET'S PLAN AGAIN.....
33
+
34
+ O.K., I HAVE A LETTER. START GUESSING.
35
+
36
+ WHAT IS YOUR GUESS? A
37
+
38
+ TOO LOW. TRY A HIGHER LETTER.
39
+
40
+ WHAT IS YOUR GUESS? B
41
+
42
+ TOO LOW. TRY A HIGHER LETTER.
43
+
44
+ WHAT IS YOUR GUESS? C
45
+
46
+ TOO LOW. TRY A HIGHER LETTER.
47
+
48
+ WHAT IS YOUR GUESS? D
49
+
50
+ TOO LOW. TRY A HIGHER LETTER.
51
+
52
+ WHAT IS YOUR GUESS? E
53
+
54
+ TOO LOW. TRY A HIGHER LETTER.
55
+
56
+ WHAT IS YOUR GUESS? F
57
+
58
+ TOO LOW. TRY A HIGHER LETTER.
59
+
60
+ WHAT IS YOUR GUESS? G
61
+
62
+ TOO LOW. TRY A HIGHER LETTER.
63
+
64
+ WHAT IS YOUR GUESS? H
65
+
66
+ TOO LOW. TRY A HIGHER LETTER.
67
+
68
+ WHAT IS YOUR GUESS? I
69
+
70
+ TOO LOW. TRY A HIGHER LETTER.
71
+
72
+ WHAT IS YOUR GUESS? J
73
+
74
+ TOO LOW. TRY A HIGHER LETTER.
75
+
76
+ WHAT IS YOUR GUESS? K
77
+
78
+ TOO LOW. TRY A HIGHER LETTER.
79
+
80
+ WHAT IS YOUR GUESS? L
81
+
82
+ TOO LOW. TRY A HIGHER LETTER.
83
+
84
+ WHAT IS YOUR GUESS? M
85
+
86
+ TOO LOW. TRY A HIGHER LETTER.
87
+
88
+ WHAT IS YOUR GUESS? N
89
+
90
+ TOO LOW. TRY A HIGHER LETTER.
91
+
92
+ WHAT IS YOUR GUESS? O
93
+
94
+ TOO LOW. TRY A HIGHER LETTER.
95
+
96
+ WHAT IS YOUR GUESS? P
97
+
98
+ TOO LOW. TRY A HIGHER LETTER.
99
+
100
+ WHAT IS YOUR GUESS? Q
101
+
102
+ TOO LOW. TRY A HIGHER LETTER.
103
+
104
+ WHAT IS YOUR GUESS? R
105
+
106
+ TOO LOW. TRY A HIGHER LETTER.
107
+
108
+ WHAT IS YOUR GUESS? S
109
+
110
+
111
+ YOU GOT IT IN 19 GUESSES!!
112
+ BUT IT SHOULDN'T TAKE MORE THAN 5 GUESSES!
113
+
114
+ LET'S PLAN AGAIN.....
115
+
116
+ O.K., I HAVE A LETTER. START GUESSING.
117
+
118
+ WHAT IS YOUR GUESS? T
119
+
120
+ TOO HIGH. TRY A LOWER LETTER.
121
+
122
+ WHAT IS YOUR GUESS?
123
+ Error on line 430: No more input
@@ -0,0 +1,66 @@
1
+ 2 PRINT TAB(34);"LIFE"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT: PRINT: PRINT
4
+ 8 PRINT "ENTER YOUR PATTERN:"
5
+ 9 X1=1: Y1=1: X2=24: Y2=70
6
+ 10 DIM A(24,70),B$(24)
7
+ 20 C=1
8
+ 30 INPUT B$(C)
9
+ 40 IF B$(C)="DONE" THEN B$(C)="": GOTO 80
10
+ 50 IF LEFT$(B$(C),1)="." THEN B$(C)=" "+RIGHT$(B$(C),LEN(B$(C))-1)
11
+ 60 C=C+1
12
+ 70 GOTO 30
13
+ 80 C=C-1: L=0
14
+ 90 FOR X=1 TO C-1
15
+ 100 IF LEN(B$(X))>L THEN L=LEN(B$(X))
16
+ 110 NEXT X
17
+ 120 X1=11-C/2
18
+ 130 Y1=33-L/2
19
+ 140 FOR X=1 TO C
20
+ 150 FOR Y=1 TO LEN(B$(X))
21
+ 160 IF MID$(B$(X),Y,1)<>" " THEN A(X1+X,Y1+Y)=1:P=P+1
22
+ 170 NEXT Y
23
+ 180 NEXT X
24
+ 200 PRINT:PRINT:PRINT
25
+ 210 PRINT "GENERATION:";G,"POPULATION:";P;: IF I9 THEN PRINT "INVALID!";
26
+ 215 X3=24:Y3=70:X4=1: Y4=1: P=0
27
+ 220 G=G+1
28
+ 225 FOR X=1 TO X1-1: PRINT: NEXT X
29
+ 230 FOR X=X1 TO X2
30
+ 240 PRINT
31
+ 250 FOR Y=Y1 TO Y2
32
+ 253 IF A(X,Y)=2 THEN A(X,Y)=0:GOTO 270
33
+ 256 IF A(X,Y)=3 THEN A(X,Y)=1:GOTO 261
34
+ 260 IF A(X,Y)<>1 THEN 270
35
+ 261 PRINT TAB(Y);"*";
36
+ 262 IF X<X3 THEN X3=X
37
+ 264 IF X>X4 THEN X4=X
38
+ 266 IF Y<Y3 THEN Y3=Y
39
+ 268 IF Y>Y4 THEN Y4=Y
40
+ 270 NEXT Y
41
+ 290 NEXT X
42
+ 295 FOR X=X2+1 TO 24: PRINT: NEXT X
43
+ 299 X1=X3: X2=X4: Y1=Y3: Y2=Y4
44
+ 301 IF X1<3 THEN X1=3:I9=-1
45
+ 303 IF X2>22 THEN X2=22:I9=-1
46
+ 305 IF Y1<3 THEN Y1=3:I9=-1
47
+ 307 IF Y2>68 THEN Y2=68:I9=-1
48
+ 309 P=0
49
+ 500 FOR X=X1-1 TO X2+1
50
+ 510 FOR Y=Y1-1 TO Y2+1
51
+ 520 C=0
52
+ 530 FOR I=X-1 TO X+1
53
+ 540 FOR J=Y-1 TO Y+1
54
+ 550 IF A(I,J)=1 OR A(I,J)=2 THEN C=C+1
55
+ 560 NEXT J
56
+ 570 NEXT I
57
+ 580 IF A(X,Y)=0 THEN 610
58
+ 590 IF C<3 OR C>4 THEN A(X,Y)=2: GOTO 600
59
+ 595 P=P+1
60
+ 600 GOTO 620
61
+ 610 IF C=3 THEN A(X,Y)=3:P=P+1
62
+ 620 NEXT Y
63
+ 630 NEXT X
64
+ 635 X1=X1-1:Y1=Y1-1:X2=X2+1:Y2=Y2+1
65
+ 640 GOTO 210
66
+ 650 END
@@ -0,0 +1,4 @@
1
+ * ** *
2
+ ** *
3
+ **
4
+ DONE
@@ -0,0 +1 @@
1
+ max_output_lines: 200
@@ -0,0 +1,200 @@
1
+ LIFE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ ENTER YOUR PATTERN:
7
+ ? * ** *
8
+ ? ** *
9
+ ? **
10
+ ? DONE
11
+
12
+
13
+
14
+ GENERATION: 0 POPULATION: 9
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ * ** *
25
+ ** *
26
+ **
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+ GENERATION: 1 POPULATION: 10
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ * ***
49
+ ***
50
+ ***
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ GENERATION: 2 POPULATION: 11
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+ *
71
+ ** *
72
+ * *
73
+ ****
74
+ *
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+ GENERATION: 3 POPULATION: 12
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ **
94
+ * *
95
+ *
96
+ *****
97
+ * *
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+ GENERATION: 4 POPULATION: 14
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ **
117
+ * *
118
+ * *
119
+ ** **
120
+ ** **
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+ GENERATION: 5 POPULATION: 15
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+ **
140
+ ** *
141
+ ** * *
142
+ * *
143
+ ** **
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+ GENERATION: 6 POPULATION: 14
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+ ***
163
+ * *
164
+ * * **
165
+ * *
166
+ ***
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+ GENERATION: 7 POPULATION: 15
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+ *
185
+ ***
186
+ * **
187
+ **
188
+ **
189
+ ***
190
+ *
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ GENERATION: 8 POPULATION: 21
200
+ Error on line 225: Maximum output lines reached
@@ -0,0 +1,83 @@
1
+ 2 PRINT TAB(33);"LIFE2"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT: PRINT: PRINT
4
+ 7 DIM N(6,6),K(18),A(16),X(2),Y(2)
5
+ 8 DATA 3,102,103,120,130,121,112,111,12
6
+ 9 DATA 21,30,1020,1030,1011,1021,1003,1002,1012
7
+ 10 FOR M=1 TO 18: READ K(M): NEXT M
8
+ 13 DATA -1,0,1,0,0,-1,0,1,-1,-1,1,-1,-1,1,1,1
9
+ 14 FOR O1= 1 TO 16: READ A(O1): NEXT O1
10
+ 20 GOTO 500
11
+ 50 FOR J=1 TO 5
12
+ 51 FOR K=1 TO 5
13
+ 55 IF N(J,K)>99 THEN GOSUB 200
14
+ 60 NEXT K
15
+ 65 NEXT J
16
+ 90 K=0: M2=0: M3=0
17
+ 99 FOR J=0 TO 6: PRINT
18
+ 100 FOR K=0 TO 6
19
+ 101 IF J<>0 THEN IF J<>6 THEN 105
20
+ 102 IF K=6 THEN PRINT 0;: GOTO 125
21
+ 103 PRINT K;: GOTO 120
22
+ 105 IF K<>0 THEN IF K<>6 THEN 110
23
+ 106 IF J=6 THEN PRINT 0: GOTO 126
24
+ 107 PRINT J;: GOTO 120
25
+ 110 GOSUB 300
26
+ 120 NEXT K
27
+ 125 NEXT J
28
+ 126 RETURN
29
+ 200 B=1: IF N(J,K)>999 THEN B=10
30
+ 220 FOR O1= 1 TO 15 STEP 2
31
+ 230 N(J+A(O1),K+A(O1+1))=N(J+A(O1),K+A(O1+1))+B
32
+ 231 NEXT O1
33
+ 239 RETURN
34
+ 300 IF N(J,K)<3 THEN 399
35
+ 305 FOR O1=1 TO 18
36
+ 310 IF N(J,K)=K(O1) THEN 350
37
+ 315 NEXT O1
38
+ 320 GOTO 399
39
+ 350 IF O1>9 THEN 360
40
+ 351 N(J,K)=100: M2=M2+1: PRINT " * ";
41
+ 355 RETURN
42
+ 360 N(J,K)=1000: M3=M3+1: PRINT " # ";
43
+ 365 RETURN
44
+ 399 N(J,K)=0: PRINT " ";: RETURN
45
+ 500 PRINT TAB(10);"U.B. LIFE GAME"
46
+ 505 M2=0: M3=0
47
+ 510 FOR J=1 TO 5
48
+ 511 FOR K=1 TO 5
49
+ 515 N(J,K)=0
50
+ 516 NEXT K
51
+ 517 NEXT J
52
+ 519 FOR B=1 TO 2: P1=3: IF B=2 THEN P1=30
53
+ 520 PRINT:PRINT "PLAYER";B;" - 3 LIVE PIECES."
54
+ 535 FOR K1=1 TO 3: GOSUB 700
55
+ 540 N(X(B),Y(B))=P1: NEXT K1
56
+ 542 NEXT B
57
+ 559 GOSUB 90
58
+ 560 PRINT: GOSUB 50
59
+ 570 IF M2=0 THEN IF M3=0 THEN 574
60
+ 571 IF M3=0 THEN B=1: GOTO 575
61
+ 572 IF M2=0 THEN B=2: GOTO 575
62
+ 573 GOTO 580
63
+ 574 PRINT: PRINT "A DRAW":GOTO 800
64
+ 575 PRINT: PRINT "PLAYER";B;"IS THE WINNER":GOTO 800
65
+ 580 FOR B=1 TO 2: PRINT: PRINT: PRINT "PLAYER";B;: GOSUB 700
66
+ 581 IF B=99 THEN 560
67
+ 582 NEXT B
68
+ 586 N(X(1),Y(1))=100: N(X(2),Y(2))=1000
69
+ 596 GOTO 560
70
+ 700 PRINT "X,Y":PRINT"XXXXXX";CHR$(13);"$$$$$$";CHR$(13);"&&&&&&";
71
+ 701 PRINT CHR$(13);: INPUT Y(B),X(B)
72
+ 705 IF X(B)<=5 THEN IF X(B)>0 THEN 708
73
+ 706 GOTO 750
74
+ 708 IF Y(B)<=5 THEN IF Y(B)>0 THEN 715
75
+ 710 GOTO 750
76
+ 715 IF N(X(B),Y(B))<>0 THEN 750
77
+ 720 IF B=1 THEN RETURN
78
+ 725 IF X(1)=X(2) THEN IF Y(1)=Y(2) THEN 740
79
+ 730 RETURN
80
+ 740 PRINT "SAME COORD. SET TO 0"
81
+ 741 N(X(B)+1,Y(B)+1)=0: B=99: RETURN
82
+ 750 PRINT "ILLEGAL COORDS. RETYPE": GOTO 700
83
+ 999 END
@@ -0,0 +1,17 @@
1
+ 1,1
2
+ 2,2
3
+ 3,3
4
+ 2,3
5
+ 3,4
6
+ 4,5
7
+ 3,1
8
+ 5,5
9
+ 5,5
10
+ 3,1
11
+ 4,2
12
+ 3,2
13
+ 1,1
14
+ 5,1
15
+ 5,1
16
+ 4,1
17
+ 4,5