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,168 @@
1
+ 1 PRINT TAB(33);"QUEEN"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 10 DIM S(64)
5
+ 11 FOR I=1 TO 64
6
+ 12 READ S(I)
7
+ 13 NEXT I
8
+ 14 DATA 81, 71, 61, 51, 41, 31, 21, 11
9
+ 15 DATA 92, 82, 72, 62, 52, 42, 32, 22
10
+ 16 DATA 103, 93, 83, 73, 63, 53, 43, 33
11
+ 17 DATA 114, 104, 94, 84, 74, 64, 54, 44
12
+ 18 DATA 125, 115, 105, 95, 85, 75, 65, 55
13
+ 19 DATA 136, 126, 116, 106, 96, 86, 76, 66
14
+ 20 DATA 147, 137, 127, 117, 107, 97, 87, 77
15
+ 21 DATA 158, 148, 138, 128, 118, 108, 98, 88
16
+ 22 INPUT "DO YOU WANT INSTRUCTIONS";W$
17
+ 23 IF W$="NO" THEN 30
18
+ 24 IF W$="YES" THEN 28
19
+ 25 PRINT "PLEASE ANSWER 'YES' OR 'NO'."
20
+ 26 GOTO 22
21
+ 28 GOSUB 5000
22
+ 29 GOTO 100
23
+ 30 GOSUB 5160
24
+ 90 REM ERROR CHECKS
25
+ 100 PRINT "WHERE WOULD YOU LIKE TO START";
26
+ 110 INPUT M1
27
+ 115 IF M1=0 THEN 232
28
+ 120 T1=INT(M1/10)
29
+ 130 U1=M1-10*T1
30
+ 140 IF U1=1 THEN 200
31
+ 150 IF U1=T1 THEN 200
32
+ 160 PRINT "PLEASE READ THE DIRECTIONS AGAIN."
33
+ 170 PRINT "YOU HAVE BEGUN ILLEGALLY."
34
+ 175 PRINT
35
+ 180 GOTO 100
36
+ 200 GOSUB 2000
37
+ 210 PRINT "COMPUTER MOVES TO SQUARE";M
38
+ 215 IF M=158 THEN 3400
39
+ 220 PRINT "WHAT IS YOUR MOVE";
40
+ 230 INPUT M1
41
+ 231 IF M1<>0 THEN 239
42
+ 232 PRINT
43
+ 233 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT."
44
+ 234 PRINT
45
+ 235 GOTO 4000
46
+ 239 IF M1<=M THEN 3200
47
+ 240 T1=INT(M1/10)
48
+ 250 U1=M1-10*T1
49
+ 260 P=U1-U
50
+ 270 IF P<>0 THEN 300
51
+ 280 L=T1-T
52
+ 290 IF L<=0 THEN 3200
53
+ 295 GOTO 200
54
+ 300 IF T1-T <>P THEN 320
55
+ 310 GOTO 200
56
+ 320 IF T1-T <>2*P THEN 3200
57
+ 330 GOTO 200
58
+ 1990 REM LOCATE MOVE FOR COMPUTER
59
+ 2000 IF M1=41 THEN 2180
60
+ 2010 IF M1=44 THEN 2180
61
+ 2020 IF M1=73 THEN 2180
62
+ 2030 IF M1=75 THEN 2180
63
+ 2040 IF M1=126 THEN 2180
64
+ 2050 IF M1=127 THEN 2180
65
+ 2060 IF M1=158 THEN 3300
66
+ 2065 C=0
67
+ 2070 FOR K=7 TO 1 STEP -1
68
+ 2080 U=U1
69
+ 2090 T=T1+K
70
+ 2100 GOSUB 3500
71
+ 2105 IF C=1 THEN 2160
72
+ 2110 U=U+K
73
+ 2120 GOSUB 3500
74
+ 2125 IF C=1 THEN 2160
75
+ 2130 T=T+K
76
+ 2140 GOSUB 3500
77
+ 2145 IF C=1 THEN 2160
78
+ 2150 NEXT K
79
+ 2155 GOTO 2180
80
+ 2160 C=0
81
+ 2170 RETURN
82
+ 2180 GOSUB 3000
83
+ 2190 RETURN
84
+ 2990 REM RANDOM MOVE
85
+ 3000 Z=RND(1)
86
+ 3010 IF Z>.6 THEN 3110
87
+ 3020 IF Z>.3 THEN 3070
88
+ 3030 U=U1
89
+ 3040 T=T1+1
90
+ 3050 M=10*T+U
91
+ 3060 RETURN
92
+ 3070 U=U1+1
93
+ 3080 T=T1+2
94
+ 3090 M=10*T+U
95
+ 3100 RETURN
96
+ 3110 U=U1+1
97
+ 3120 T=T1+1
98
+ 3130 M=10*T+U
99
+ 3140 RETURN
100
+ 3190 REM ILLEGAL MOVE MESSAGE
101
+ 3200 PRINT
102
+ 3210 PRINT "Y O U C H E A T . . . TRY AGAIN";
103
+ 3220 GOTO 230
104
+ 3290 REM PLAYER WINS
105
+ 3300 PRINT
106
+ 3310 PRINT "C O N G R A T U L A T I O N S . . ."
107
+ 3320 PRINT
108
+ 3330 PRINT "YOU HAVE WON--VERY WELL PLAYED."
109
+ 3340 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH."
110
+ 3350 PRINT "THANKS FOR PLAYING---I CAN'T WIN ALL THE TIME."
111
+ 3360 PRINT
112
+ 3370 GOTO 4000
113
+ 3390 REM COMPUTER WINS
114
+ 3400 PRINT
115
+ 3410 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON."
116
+ 3420 PRINT "THANKS FOR PLAYING."
117
+ 3430 PRINT
118
+ 3440 GOTO 4000
119
+ 3490 REM TEST FOR COMPUTER MOVE
120
+ 3500 M=10*T+U
121
+ 3510 IF M=158 THEN 3570
122
+ 3520 IF M=127 THEN 3570
123
+ 3530 IF M=126 THEN 3570
124
+ 3540 IF M=75 THEN 3570
125
+ 3550 IF M=73 THEN 3570
126
+ 3560 RETURN
127
+ 3570 C=1
128
+ 3580 GOTO 3560
129
+ 3990 REM ANOTHER GAME???
130
+ 4000 PRINT "ANYONE ELSE CARE TO TRY";
131
+ 4010 INPUT Q$
132
+ 4020 PRINT
133
+ 4030 IF Q$="YES" THEN 30
134
+ 4040 IF Q$="NO" THEN 4050
135
+ 4042 PRINT "PLEASE ANSWER 'YES' OR 'NO'."
136
+ 4045 GOTO 4000
137
+ 4050 PRINT:PRINT "OK --- THANKS AGAIN."
138
+ 4060 STOP
139
+ 4990 REM DIRECTIONS
140
+ 5000 PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS"
141
+ 5010 PRINT "MOVES. OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE LEFT,"
142
+ 5020 PRINT "DOWN, OR DIAGONALLY DOWN AND TO THE LEFT."
143
+ 5030 PRINT
144
+ 5040 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE LOWER"
145
+ 5050 PRINT "LEFT HAND SQUARE BY ALTERNATING MOVES BETWEEN YOU AND THE"
146
+ 5060 PRINT "COMPUTER. THE FIRST ONE TO PLACE THE QUEEN THERE WINS."
147
+ 5070 PRINT
148
+ 5080 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE SQUARES"
149
+ 5090 PRINT "ON THE TOP ROW OR RIGHT HAND COLUMN."
150
+ 5100 PRINT "THAT WILL BE YOUR FIRST MOVE."
151
+ 5110 PRINT "WE ALTERNATE MOVES."
152
+ 5120 PRINT "YOU MAY FORFEIT BY TYPING '0' AS YOUR MOVE."
153
+ 5130 PRINT "BE SURE TO PRESS THE RETURN KEY AFTER EACH RESPONSE."
154
+ 5140 PRINT
155
+ 5150 PRINT
156
+ 5160 PRINT
157
+ 5170 FOR A=0 TO 7
158
+ 5180 FOR B=1 TO 8
159
+ 5185 I=8*A+B
160
+ 5190 PRINT S(I);
161
+ 5200 NEXT B
162
+ 5210 PRINT
163
+ 5220 PRINT
164
+ 5230 PRINT
165
+ 5240 NEXT A
166
+ 5250 PRINT
167
+ 5260 RETURN
168
+ 9999 END
@@ -0,0 +1,10 @@
1
+ YES
2
+ 11
3
+ YES
4
+ 21
5
+ 137
6
+ YES
7
+ 31
8
+ 97
9
+ 137
10
+ NO
@@ -0,0 +1,133 @@
1
+ QUEEN
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ DO YOU WANT INSTRUCTIONS? YES
7
+ WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS
8
+ MOVES. OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE LEFT,
9
+ DOWN, OR DIAGONALLY DOWN AND TO THE LEFT.
10
+
11
+ THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE LOWER
12
+ LEFT HAND SQUARE BY ALTERNATING MOVES BETWEEN YOU AND THE
13
+ COMPUTER. THE FIRST ONE TO PLACE THE QUEEN THERE WINS.
14
+
15
+ YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE SQUARES
16
+ ON THE TOP ROW OR RIGHT HAND COLUMN.
17
+ THAT WILL BE YOUR FIRST MOVE.
18
+ WE ALTERNATE MOVES.
19
+ YOU MAY FORFEIT BY TYPING '0' AS YOUR MOVE.
20
+ BE SURE TO PRESS THE RETURN KEY AFTER EACH RESPONSE.
21
+
22
+
23
+
24
+ 81 71 61 51 41 31 21 11
25
+
26
+
27
+ 92 82 72 62 52 42 32 22
28
+
29
+
30
+ 103 93 83 73 63 53 43 33
31
+
32
+
33
+ 114 104 94 84 74 64 54 44
34
+
35
+
36
+ 125 115 105 95 85 75 65 55
37
+
38
+
39
+ 136 126 116 106 96 86 76 66
40
+
41
+
42
+ 147 137 127 117 107 97 87 77
43
+
44
+
45
+ 158 148 138 128 118 108 98 88
46
+
47
+
48
+
49
+ WHERE WOULD YOU LIKE TO START? 11
50
+ COMPUTER MOVES TO SQUARE 158
51
+
52
+ NICE TRY, BUT IT LOOKS LIKE I HAVE WON.
53
+ THANKS FOR PLAYING.
54
+
55
+ ANYONE ELSE CARE TO TRY? YES
56
+
57
+
58
+ 81 71 61 51 41 31 21 11
59
+
60
+
61
+ 92 82 72 62 52 42 32 22
62
+
63
+
64
+ 103 93 83 73 63 53 43 33
65
+
66
+
67
+ 114 104 94 84 74 64 54 44
68
+
69
+
70
+ 125 115 105 95 85 75 65 55
71
+
72
+
73
+ 136 126 116 106 96 86 76 66
74
+
75
+
76
+ 147 137 127 117 107 97 87 77
77
+
78
+
79
+ 158 148 138 128 118 108 98 88
80
+
81
+
82
+
83
+ WHERE WOULD YOU LIKE TO START? 21
84
+ COMPUTER MOVES TO SQUARE 126
85
+ WHAT IS YOUR MOVE? 137
86
+ COMPUTER MOVES TO SQUARE 158
87
+
88
+ NICE TRY, BUT IT LOOKS LIKE I HAVE WON.
89
+ THANKS FOR PLAYING.
90
+
91
+ ANYONE ELSE CARE TO TRY? YES
92
+
93
+
94
+ 81 71 61 51 41 31 21 11
95
+
96
+
97
+ 92 82 72 62 52 42 32 22
98
+
99
+
100
+ 103 93 83 73 63 53 43 33
101
+
102
+
103
+ 114 104 94 84 74 64 54 44
104
+
105
+
106
+ 125 115 105 95 85 75 65 55
107
+
108
+
109
+ 136 126 116 106 96 86 76 66
110
+
111
+
112
+ 147 137 127 117 107 97 87 77
113
+
114
+
115
+ 158 148 138 128 118 108 98 88
116
+
117
+
118
+
119
+ WHERE WOULD YOU LIKE TO START? 31
120
+ COMPUTER MOVES TO SQUARE 75
121
+ WHAT IS YOUR MOVE? 97
122
+ COMPUTER MOVES TO SQUARE 127
123
+ WHAT IS YOUR MOVE? 137
124
+ COMPUTER MOVES TO SQUARE 158
125
+
126
+ NICE TRY, BUT IT LOOKS LIKE I HAVE WON.
127
+ THANKS FOR PLAYING.
128
+
129
+ ANYONE ELSE CARE TO TRY? NO
130
+
131
+
132
+ OK --- THANKS AGAIN.
133
+ Break in line 4060
@@ -0,0 +1,62 @@
1
+ 10 PRINT TAB(32);"REVERSE"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 PRINT "REVERSE -- A GAME OF SKILL": PRINT
5
+ 130 DIM A(20)
6
+ 140 REM *** N=NUMBER OF NUMBERS
7
+ 150 N=9
8
+ 160 PRINT "DO YOU WANT THE RULES";
9
+ 170 INPUT A$
10
+ 180 IF A$="NO" THEN 210
11
+ 190 GOSUB 710
12
+ 200 REM *** MAKE A RANDOM LIST A(1) TO A(N)
13
+ 210 A(1)=INT((N-1)*RND(1)+2)
14
+ 220 FOR K=2 TO N
15
+ 230 A(K)=INT(N*RND(1)+1)
16
+ 240 FOR J=1 TO K-1
17
+ 250 IF A(K)=A(J) THEN 230
18
+ 260 NEXT J:NEXT K
19
+ 280 REM *** PRINT ORIGINAL LIST AND START GAME
20
+ 290 PRINT: PRINT "HERE WE GO ... THE LIST IS:"
21
+ 310 T=0
22
+ 320 GOSUB 610
23
+ 330 PRINT "HOW MANY SHALL I REVERSE";
24
+ 340 INPUT R
25
+ 350 IF R=0 THEN 520
26
+ 360 IF R<=N THEN 390
27
+ 370 PRINT "OOPS! TOO MANY! I CAN REVERSE AT MOST";N:GOTO 330
28
+ 390 T=T+1
29
+ 400 REM *** REVERSE R NUMBERS AND PRINT NEW LIST
30
+ 410 FOR K=1 TO INT(R/2)
31
+ 420 Z=A(K)
32
+ 430 A(K)=A(R-K+1)
33
+ 440 A(R-K+1)=Z
34
+ 450 NEXT K
35
+ 460 GOSUB 610
36
+ 470 REM *** CHECK FOR A WIN
37
+ 480 FOR K=1 TO N
38
+ 490 IF A(K)<>K THEN 330
39
+ 500 NEXT K
40
+ 510 PRINT "YOU WON IT IN";T;"MOVES!!!":PRINT
41
+ 520 PRINT
42
+ 530 PRINT "TRY AGAIN (YES OR NO)";
43
+ 540 INPUT A$
44
+ 550 IF A$="YES" THEN 210
45
+ 560 PRINT: PRINT "O.K. HOPE YOU HAD FUN!!":GOTO 999
46
+ 600 REM *** SUBROUTINE TO PRINT LIST
47
+ 610 PRINT:FOR K=1 TO N:PRINT A(K);:NEXT K
48
+ 650 PRINT:PRINT:RETURN
49
+ 700 REM *** SUBROUTINE TO PRINT THE RULES
50
+ 710 PRINT:PRINT "THIS IS THE GAME OF 'REVERSE'. TO WIN, ALL YOU HAVE"
51
+ 720 PRINT "TO DO IS ARRANGE A LIST OF NUMBERS (1 THROUGH";N;")"
52
+ 730 PRINT "IN NUMERICAL ORDER FROM LEFT TO RIGHT. TO MOVE, YOU"
53
+ 740 PRINT "TELL ME HOW MANY NUMBERS (COUNTING FROM THE LEFT) TO"
54
+ 750 PRINT "REVERSE. FOR EXAMPLE, IF THE CURRENT LIST IS:"
55
+ 760 PRINT:PRINT "2 3 4 5 1 6 7 8 9"
56
+ 770 PRINT:PRINT "AND YOU REVERSE 4, THE RESULT WILL BE:"
57
+ 780 PRINT:PRINT "5 4 3 2 1 6 7 8 9"
58
+ 790 PRINT:PRINT "NOW IF YOU REVERSE 5, YOU WIN!"
59
+ 800 PRINT:PRINT "1 2 3 4 5 6 7 8 9":PRINT
60
+ 810 PRINT "NO DOUBT YOU WILL LIKE THIS GAME, BUT"
61
+ 820 PRINT "IF YOU WANT TO QUIT, REVERSE 0 (ZERO).":PRINT: RETURN
62
+ 999 END
@@ -0,0 +1,12 @@
1
+ YES
2
+ 5
3
+ 9
4
+ 4
5
+ 8
6
+ 3
7
+ 7
8
+ 4
9
+ 6
10
+ 5
11
+ 3
12
+ NO
@@ -0,0 +1,79 @@
1
+ REVERSE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ REVERSE -- A GAME OF SKILL
7
+
8
+ DO YOU WANT THE RULES? YES
9
+
10
+ THIS IS THE GAME OF 'REVERSE'. TO WIN, ALL YOU HAVE
11
+ TO DO IS ARRANGE A LIST OF NUMBERS (1 THROUGH 9 )
12
+ IN NUMERICAL ORDER FROM LEFT TO RIGHT. TO MOVE, YOU
13
+ TELL ME HOW MANY NUMBERS (COUNTING FROM THE LEFT) TO
14
+ REVERSE. FOR EXAMPLE, IF THE CURRENT LIST IS:
15
+
16
+ 2 3 4 5 1 6 7 8 9
17
+
18
+ AND YOU REVERSE 4, THE RESULT WILL BE:
19
+
20
+ 5 4 3 2 1 6 7 8 9
21
+
22
+ NOW IF YOU REVERSE 5, YOU WIN!
23
+
24
+ 1 2 3 4 5 6 7 8 9
25
+
26
+ NO DOUBT YOU WILL LIKE THIS GAME, BUT
27
+ IF YOU WANT TO QUIT, REVERSE 0 (ZERO).
28
+
29
+
30
+ HERE WE GO ... THE LIST IS:
31
+
32
+ 6 7 5 4 9 8 1 2 3
33
+
34
+ HOW MANY SHALL I REVERSE? 5
35
+
36
+ 9 4 5 7 6 8 1 2 3
37
+
38
+ HOW MANY SHALL I REVERSE? 9
39
+
40
+ 3 2 1 8 6 7 5 4 9
41
+
42
+ HOW MANY SHALL I REVERSE? 4
43
+
44
+ 8 1 2 3 6 7 5 4 9
45
+
46
+ HOW MANY SHALL I REVERSE? 8
47
+
48
+ 4 5 7 6 3 2 1 8 9
49
+
50
+ HOW MANY SHALL I REVERSE? 3
51
+
52
+ 7 5 4 6 3 2 1 8 9
53
+
54
+ HOW MANY SHALL I REVERSE? 7
55
+
56
+ 1 2 3 6 4 5 7 8 9
57
+
58
+ HOW MANY SHALL I REVERSE? 4
59
+
60
+ 6 3 2 1 4 5 7 8 9
61
+
62
+ HOW MANY SHALL I REVERSE? 6
63
+
64
+ 5 4 1 2 3 6 7 8 9
65
+
66
+ HOW MANY SHALL I REVERSE? 5
67
+
68
+ 3 2 1 4 5 6 7 8 9
69
+
70
+ HOW MANY SHALL I REVERSE? 3
71
+
72
+ 1 2 3 4 5 6 7 8 9
73
+
74
+ YOU WON IT IN 10 MOVES!!!
75
+
76
+
77
+ TRY AGAIN (YES OR NO)? NO
78
+
79
+ O.K. HOPE YOU HAD FUN!!
@@ -0,0 +1,71 @@
1
+ 10 PRINT TAB(30); "ROCKET"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 70 PRINT "LUNAR LANDING SIMULATION"
5
+ 80 PRINT "----- ------- ----------": PRINT
6
+ 100 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)";A$
7
+ 110 IF A$="NO" THEN 390
8
+ 160 PRINT
9
+ 200 PRINT"YOU ARE LANDING ON THE MOON AND AND HAVE TAKEN OVER MANUAL"
10
+ 210 PRINT"CONTROL 1000 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A DOWN-"
11
+ 220 PRINT"WARD VELOCITY OF 50 FEET/SEC. 150 UNITS OF FUEL REMAIN."
12
+ 225 PRINT
13
+ 230 PRINT"HERE ARE THE RULES THAT GOVERN YOUR APOLLO SPACE-CRAFT:": PRINT
14
+ 240 PRINT"(1) AFTER EACH SECOND THE HEIGHT, VELOCITY, AND REMAINING FUEL"
15
+ 250 PRINT" WILL BE REPORTED VIA DIGBY YOUR ON-BOARD COMPUTER."
16
+ 260 PRINT"(2) AFTER THE REPORT A '?' WILL APPEAR. ENTER THE NUMBER"
17
+ 270 PRINT" OF UNITS OF FUEL YOU WISH TO BURN DURING THE NEXT"
18
+ 280 PRINT" SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT BY"
19
+ 290 PRINT" 1 FOOT/SEC."
20
+ 310 PRINT"(3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FEET/SEC/SEC"
21
+ 320 PRINT" OR 30 UNITS OF FUEL PER SECOND."
22
+ 330 PRINT"(4) WHEN YOU CONTACT THE LUNAR SURFACE. YOUR DESCENT ENGINE"
23
+ 340 PRINT" WILL AUTOMATICALLY SHUT DOWN AND YOU WILL BE GIVEN A"
24
+ 350 PRINT" REPORT OF YOUR LANDING SPEED AND REMAINING FUEL."
25
+ 360 PRINT"(5) IF YOU RUN OUT OF FUEL THE '?' WILL NO LONGER APPEAR"
26
+ 370 PRINT" BUT YOUR SECOND BY SECOND REPORT WILL CONTINUE UNTIL"
27
+ 380 PRINT" YOU CONTACT THE LUNAR SURFACE.":PRINT
28
+ 390 PRINT"BEGINNING LANDING PROCEDURE..........":PRINT
29
+ 400 PRINT"G O O D L U C K ! ! !"
30
+ 420 PRINT:PRINT
31
+ 430 PRINT"SEC FEET SPEED FUEL PLOT OF DISTANCE"
32
+ 450 PRINT
33
+ 455 T=0:H=1000:V=50:F=150
34
+ 490 PRINT T;TAB(6);H;TAB(16);V;TAB(26);F;TAB(35);"I";TAB(H/15);"*"
35
+ 500 INPUT B
36
+ 510 IF B<0 THEN 650
37
+ 520 IF B>30 THEN B=30
38
+ 530 IF B>F THEN B=F
39
+ 540 V1=V-B+5
40
+ 560 F=F-B
41
+ 570 H=H- .5*(V+V1)
42
+ 580 IF H<=0 THEN 670
43
+ 590 T=T+1
44
+ 600 V=V1
45
+ 610 IF F>0 THEN 490
46
+ 615 IF B=0 THEN 640
47
+ 620 PRINT"**** OUT OF FUEL ****"
48
+ 640 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);"I";TAB(H/12+29);"*"
49
+ 650 B=0
50
+ 660 GOTO 540
51
+ 670 PRINT"***** CONTACT *****"
52
+ 680 H=H+ .5*(V1+V)
53
+ 690 IF B=5 THEN 720
54
+ 700 D=(-V+SQR(V*V+H*(10-2*B)))/(5-B)
55
+ 710 GOTO 730
56
+ 720 D=H/V
57
+ 730 V1=V+(5-B)*D
58
+ 760 PRINT"TOUCHDOWN AT";T+D;"SECONDS."
59
+ 770 PRINT"LANDING VELOCITY=";V1;"FEET/SEC."
60
+ 780 PRINT F;"UNITS OF FUEL REMAINING."
61
+ 790 IF V1<>0 THEN 810
62
+ 800 PRINT"CONGRATULATIONS! A PERFECT LANDING!!"
63
+ 805 PRINT"YOUR LICENSE WILL BE RENEWED.......LATER."
64
+ 810 IF ABS(V1)<2 THEN 840
65
+ 820 PRINT"***** SORRY, BUT YOU BLEW IT!!!!"
66
+ 830 PRINT"APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN."
67
+ 840 PRINT:PRINT:PRINT
68
+ 850 INPUT "ANOTHER MISSION";A$
69
+ 860 IF A$="YES" THEN 390
70
+ 870 PRINT: PRINT "CONTROL OUT.": PRINT
71
+ 999 END
@@ -0,0 +1,42 @@
1
+ YES
2
+ 0
3
+ 0
4
+ 0
5
+ 0
6
+ 0
7
+ 0
8
+ 30
9
+ 5
10
+ 5
11
+ 5
12
+ 5
13
+ 5
14
+ 5
15
+ 5
16
+ 5
17
+ 5
18
+ 5
19
+ YES
20
+ 0
21
+ 0
22
+ 0
23
+ 0
24
+ 0
25
+ 0
26
+ 0
27
+ 0
28
+ 0
29
+ 30
30
+ 30
31
+ 20
32
+ 20
33
+ 5
34
+ 5
35
+ 5
36
+ 5
37
+ 5
38
+ 5
39
+ 10
40
+ 5
41
+ 5
42
+ NO