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,509 @@
1
+ BASKETBALL
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS IS DARTMOUTH COLLEGE BASKETBALL. YOU WILL BE DARTMOUTH
7
+ CAPTAIN AND PLAYMAKER. CALL SHOTS AS FOLLOWS: 1. LONG
8
+ (30 FT.) JUMP SHOT; 2. SHORT (15 FT.) JUMP SHOT; 3. LAY
9
+ UP; 4. SET SHOT.
10
+ BOTH TEAMS WILL USE THE SAME DEFENSE. CALL DEFENSE AS
11
+ FOLLOWS: 6. PRESS; 6.5 MAN-TO MAN; 7. ZONE; 7.5 NONE.
12
+ TO CHANGE DEFENSE, JUST TYPE 0 AS YOUR NEXT SHOT.
13
+ YOUR STARTING DEFENSE WILL BE? 7
14
+
15
+ CHOOSE YOUR OPPONENT? YALE
16
+ CENTER JUMP
17
+ YALE CONTROLS THE TAP.
18
+
19
+ LAY UP.
20
+ SHOT IS MISSED.
21
+ YALE CONTROLS THE REBOUND.
22
+ PASS BACK TO YALE GUARD.
23
+
24
+ LAY UP.
25
+ SHOT IS MISSED.
26
+ YALE CONTROLS THE REBOUND.
27
+ LAY UP.
28
+ SHOT IS GOOD.
29
+ SCORE: 0 TO 2
30
+
31
+ YOUR SHOT? 1
32
+ JUMP SHOT
33
+ SHOT IS OFF TARGET.
34
+ REBOUND TO YALE
35
+
36
+ JUMP SHOT.
37
+ SHOT IS GOOD.
38
+ SCORE: 0 TO 4
39
+
40
+ YOUR SHOT? 2
41
+ JUMP SHOT
42
+ CHARGING FOUL. DARTMOUTH LOSES BALL.
43
+
44
+ LAY UP.
45
+ SHOT IS MISSED.
46
+ YALE CONTROLS THE REBOUND.
47
+ PASS BACK TO YALE GUARD.
48
+
49
+ LAY UP.
50
+ SHOT IS GOOD.
51
+ SCORE: 0 TO 6
52
+
53
+ YOUR SHOT? 3
54
+ LAY UP.
55
+ SHOT IS OFF THE RIM.
56
+ YALE CONTROLS THE REBOUND.
57
+
58
+ LAY UP.
59
+ SHOT IS MISSED.
60
+ YALE CONTROLS THE REBOUND.
61
+ PASS BACK TO YALE GUARD.
62
+
63
+ LAY UP.
64
+ SHOT IS MISSED.
65
+ YALE CONTROLS THE REBOUND.
66
+ LAY UP.
67
+ SHOT IS MISSED.
68
+ DARTMOUTH CONTROLS THE REBOUND.
69
+
70
+ YOUR SHOT? 4
71
+ SET SHOT.
72
+ SHOT IS OFF THE RIM.
73
+ DARTMOUTH CONTROLS THE REBOUND.
74
+ BALL PASSED BACK TO YOU.YOUR SHOT? 1
75
+ JUMP SHOT
76
+ SHOT IS GOOD.
77
+ SCORE: 2 TO 6
78
+
79
+ JUMP SHOT.
80
+ SHOT IS OFF RIM.
81
+ YALE CONTROLS THE REBOUND.
82
+ LAY UP.
83
+ SHOT IS GOOD.
84
+ SCORE: 2 TO 8
85
+
86
+ YOUR SHOT? 4
87
+ SET SHOT.
88
+ SHOT IS GOOD. TWO POINTS.
89
+ SCORE: 4 TO 8
90
+
91
+ LAY UP.
92
+ SHOT IS GOOD.
93
+ SCORE: 4 TO 10
94
+
95
+ YOUR SHOT? 3
96
+ LAY UP.
97
+ SHOT IS GOOD. TWO POINTS.
98
+ SCORE: 6 TO 10
99
+
100
+ JUMP SHOT.
101
+ SHOT IS GOOD.
102
+ SCORE: 6 TO 12
103
+
104
+ YOUR SHOT? 2
105
+ JUMP SHOT
106
+ SHOT IS GOOD.
107
+ SCORE: 8 TO 12
108
+
109
+ JUMP SHOT.
110
+ PLAYER FOULED. TWO SHOTS.
111
+ SHOOTER MAKES ONE SHOT AND MISSES ONE.
112
+ SCORE: 8 TO 13
113
+
114
+ YOUR SHOT? 1
115
+ JUMP SHOT
116
+ SHOT IS BLOCKED. BALL CONTROLLED BY YALE.
117
+
118
+ JUMP SHOT.
119
+ SHOT IS GOOD.
120
+ SCORE: 8 TO 15
121
+
122
+ YOUR SHOT? 2
123
+ JUMP SHOT
124
+ SHOT IS GOOD.
125
+ SCORE: 10 TO 15
126
+
127
+ JUMP SHOT.
128
+ SHOT IS OFF RIM.
129
+ DARTMOUTH CONTROLS THE REBOUND.
130
+
131
+ YOUR SHOT? 0
132
+ YOUR NEW DEFENSIVE ALLIGNMENT IS? 7.5
133
+
134
+ YOUR SHOT? 1
135
+ JUMP SHOT
136
+ SHOT IS GOOD.
137
+ SCORE: 12 TO 15
138
+
139
+ LAY UP.
140
+ SHOT IS GOOD.
141
+ SCORE: 12 TO 17
142
+
143
+ YOUR SHOT? 3
144
+ LAY UP.
145
+ SHOT IS OFF THE RIM.
146
+ DARTMOUTH CONTROLS THE REBOUND.
147
+ LAY UP.
148
+ SHOT IS OFF THE RIM.
149
+ YALE CONTROLS THE REBOUND.
150
+
151
+ LAY UP.
152
+ SHOT IS GOOD.
153
+ SCORE: 12 TO 19
154
+
155
+ YOUR SHOT? 2
156
+ JUMP SHOT
157
+ SHOT IS GOOD.
158
+ SCORE: 14 TO 19
159
+
160
+ LAY UP.
161
+ SHOT IS GOOD.
162
+ SCORE: 14 TO 21
163
+
164
+ YOUR SHOT? 4
165
+ SET SHOT.
166
+ SHOT IS OFF THE RIM.
167
+ YALE CONTROLS THE REBOUND.
168
+
169
+ LAY UP.
170
+ SHOT IS MISSED.
171
+ DARTMOUTH CONTROLS THE REBOUND.
172
+
173
+ YOUR SHOT? 1
174
+ JUMP SHOT
175
+ SHOT IS BLOCKED. BALL CONTROLLED BY DARTMOUTH.
176
+ YOUR SHOT? 2
177
+ JUMP SHOT
178
+ SHOT IS BLOCKED. BALL CONTROLLED BY YALE.
179
+
180
+ LAY UP.
181
+ SHOT IS MISSED.
182
+ YALE CONTROLS THE REBOUND.
183
+ LAY UP.
184
+ SHOT IS MISSED.
185
+ YALE CONTROLS THE REBOUND.
186
+ LAY UP.
187
+ SHOT IS GOOD.
188
+ SCORE: 14 TO 23
189
+
190
+ YOUR SHOT? 3
191
+ LAY UP.
192
+ SHOT IS OFF THE RIM.
193
+ YALE CONTROLS THE REBOUND.
194
+
195
+ LAY UP.
196
+ SHOT IS GOOD.
197
+ SCORE: 14 TO 25
198
+
199
+ YOUR SHOT? 4
200
+ SET SHOT.
201
+ SHOT IS OFF THE RIM.
202
+ YALE CONTROLS THE REBOUND.
203
+
204
+ LAY UP.
205
+ SHOT IS MISSED.
206
+ YALE CONTROLS THE REBOUND.
207
+ LAY UP.
208
+ SHOT IS GOOD.
209
+ SCORE: 14 TO 27
210
+
211
+ YOUR SHOT? 4
212
+ SET SHOT.
213
+ SHOOTER FOULED. TWO SHOTS.
214
+ SHOOTER MAKES BOTH SHOTS.
215
+ SCORE: 16 TO 27
216
+
217
+ SET SHOT.
218
+ SHOT IS MISSED.
219
+ YALE CONTROLS THE REBOUND.
220
+ PASS BACK TO YALE GUARD.
221
+
222
+ SET SHOT.
223
+ SHOT IS GOOD.
224
+ SCORE: 16 TO 29
225
+
226
+ YOUR SHOT? 3
227
+ LAY UP.
228
+ SHOT IS GOOD. TWO POINTS.
229
+ SCORE: 18 TO 29
230
+
231
+ SET SHOT.
232
+ SHOT IS MISSED.
233
+ YALE CONTROLS THE REBOUND.
234
+ PASS BACK TO YALE GUARD.
235
+
236
+ JUMP SHOT.
237
+ SHOT IS OFF RIM.
238
+ YALE CONTROLS THE REBOUND.
239
+ LAY UP.
240
+ SHOT IS MISSED.
241
+ YALE CONTROLS THE REBOUND.
242
+ PASS BACK TO YALE GUARD.
243
+
244
+ JUMP SHOT.
245
+ SHOT IS OFF RIM.
246
+ YALE CONTROLS THE REBOUND.
247
+ PASS BACK TO YALE GUARD.
248
+
249
+ JUMP SHOT.
250
+ SHOT IS GOOD.
251
+ SCORE: 18 TO 31
252
+
253
+ YOUR SHOT? 3
254
+ LAY UP.
255
+ SHOT IS GOOD. TWO POINTS.
256
+ SCORE: 20 TO 31
257
+
258
+ ***** END OF FIRST HALF *****
259
+
260
+ SCORE: DARTMOUTH: 20 YALE: 31
261
+
262
+
263
+ CENTER JUMP
264
+ YALE CONTROLS THE TAP.
265
+
266
+ SET SHOT.
267
+ SHOT IS MISSED.
268
+ DARTMOUTH CONTROLS THE REBOUND.
269
+
270
+ YOUR SHOT? 2
271
+ JUMP SHOT
272
+ SHOT IS OFF TARGET.
273
+ DARTMOUTH CONTROLS THE REBOUND.
274
+ BALL PASSED BACK TO YOU. YOUR SHOT? 1
275
+ JUMP SHOT
276
+ SHOT IS OFF TARGET.
277
+ REBOUND TO YALE
278
+
279
+ JUMP SHOT.
280
+ SHOT IS OFF RIM.
281
+ DARTMOUTH CONTROLS THE REBOUND.
282
+
283
+ YOUR SHOT? 1
284
+ JUMP SHOT
285
+ SHOT IS OFF TARGET.
286
+ DARTMOUTH CONTROLS THE REBOUND.
287
+ LAY UP.
288
+ SHOT IS GOOD. TWO POINTS.
289
+ SCORE: 22 TO 31
290
+
291
+ LAY UP.
292
+ SHOT IS GOOD.
293
+ SCORE: 22 TO 33
294
+
295
+ YOUR SHOT? 2
296
+ JUMP SHOT
297
+ SHOT IS OFF TARGET.
298
+ DARTMOUTH CONTROLS THE REBOUND.
299
+ LAY UP.
300
+ SHOT IS OFF THE RIM.
301
+ YALE CONTROLS THE REBOUND.
302
+
303
+ SET SHOT.
304
+ SHOT IS MISSED.
305
+ DARTMOUTH CONTROLS THE REBOUND.
306
+
307
+ YOUR SHOT? 2
308
+ JUMP SHOT
309
+ SHOT IS GOOD.
310
+ SCORE: 24 TO 33
311
+
312
+ JUMP SHOT.
313
+ SHOT IS OFF RIM.
314
+ DARTMOUTH CONTROLS THE REBOUND.
315
+
316
+ YOUR SHOT? 3
317
+ LAY UP.
318
+ SHOT IS OFF THE RIM.
319
+ DARTMOUTH CONTROLS THE REBOUND.
320
+ LAY UP.
321
+ SHOT IS OFF THE RIM.
322
+ DARTMOUTH CONTROLS THE REBOUND.
323
+ BALL PASSED BACK TO YOU.YOUR SHOT? 3
324
+ LAY UP.
325
+ SHOT IS OFF THE RIM.
326
+ YALE CONTROLS THE REBOUND.
327
+
328
+ JUMP SHOT.
329
+ SHOT IS OFF RIM.
330
+ DARTMOUTH CONTROLS THE REBOUND.
331
+
332
+ YOUR SHOT? 4
333
+ SET SHOT.
334
+ SHOT IS GOOD. TWO POINTS.
335
+ SCORE: 26 TO 33
336
+
337
+ LAY UP.
338
+ SHOT IS GOOD.
339
+ SCORE: 26 TO 35
340
+
341
+ YOUR SHOT? 4
342
+ SET SHOT.
343
+ SHOT IS OFF THE RIM.
344
+ YALE CONTROLS THE REBOUND.
345
+
346
+ JUMP SHOT.
347
+ SHOT IS OFF RIM.
348
+ YALE CONTROLS THE REBOUND.
349
+ PASS BACK TO YALE GUARD.
350
+
351
+ JUMP SHOT.
352
+ SHOT IS OFF RIM.
353
+ YALE CONTROLS THE REBOUND.
354
+ LAY UP.
355
+ SHOT IS MISSED.
356
+ YALE CONTROLS THE REBOUND.
357
+ PASS BACK TO YALE GUARD.
358
+
359
+ LAY UP.
360
+ SHOT IS MISSED.
361
+ YALE CONTROLS THE REBOUND.
362
+ PASS BACK TO YALE GUARD.
363
+
364
+ JUMP SHOT.
365
+ SHOT IS GOOD.
366
+ SCORE: 26 TO 37
367
+
368
+ YOUR SHOT? 1
369
+ JUMP SHOT
370
+ SHOOTER IS FOULED. TWO SHOTS.
371
+ SHOOTER MAKES ONE SHOT AND MISSES ONE.
372
+ SCORE: 27 TO 37
373
+
374
+ LAY UP.
375
+ SHOT IS MISSED.
376
+ YALE CONTROLS THE REBOUND.
377
+ PASS BACK TO YALE GUARD.
378
+
379
+ SET SHOT.
380
+ SHOT IS GOOD.
381
+ SCORE: 27 TO 39
382
+
383
+ YOUR SHOT? 2
384
+ JUMP SHOT
385
+ SHOT IS BLOCKED. BALL CONTROLLED BY YALE.
386
+
387
+ JUMP SHOT.
388
+ SHOT IS OFF RIM.
389
+ DARTMOUTH CONTROLS THE REBOUND.
390
+
391
+ YOUR SHOT? 1
392
+ JUMP SHOT
393
+ SHOT IS GOOD.
394
+ SCORE: 29 TO 39
395
+
396
+ SET SHOT.
397
+ SHOT IS MISSED.
398
+ YALE CONTROLS THE REBOUND.
399
+ SET SHOT.
400
+ SHOT IS GOOD.
401
+ SCORE: 29 TO 41
402
+
403
+ YOUR SHOT? 1
404
+ JUMP SHOT
405
+ SHOT IS OFF TARGET.
406
+ REBOUND TO YALE
407
+
408
+ JUMP SHOT.
409
+ SHOT IS GOOD.
410
+ SCORE: 29 TO 43
411
+
412
+ YOUR SHOT? 1
413
+ JUMP SHOT
414
+ SHOOTER IS FOULED. TWO SHOTS.
415
+ SHOOTER MAKES BOTH SHOTS.
416
+ SCORE: 31 TO 43
417
+
418
+ JUMP SHOT.
419
+ SHOT IS OFF RIM.
420
+ DARTMOUTH CONTROLS THE REBOUND.
421
+
422
+ YOUR SHOT? 1
423
+ JUMP SHOT
424
+ SHOT IS OFF TARGET.
425
+ REBOUND TO YALE
426
+
427
+ JUMP SHOT.
428
+ SHOT IS GOOD.
429
+ SCORE: 31 TO 45
430
+
431
+ YOUR SHOT? 2
432
+ JUMP SHOT
433
+ SHOT IS OFF TARGET.
434
+ REBOUND TO YALE
435
+
436
+ LAY UP.
437
+ SHOT IS MISSED.
438
+ YALE CONTROLS THE REBOUND.
439
+ PASS BACK TO YALE GUARD.
440
+
441
+ JUMP SHOT.
442
+ SHOT IS GOOD.
443
+ SCORE: 31 TO 47
444
+
445
+ YOUR SHOT? 2
446
+ JUMP SHOT
447
+ SHOT IS GOOD.
448
+ SCORE: 33 TO 47
449
+
450
+ LAY UP.
451
+ SHOT IS MISSED.
452
+ YALE CONTROLS THE REBOUND.
453
+ PASS BACK TO YALE GUARD.
454
+
455
+ JUMP SHOT.
456
+ SHOT IS GOOD.
457
+ SCORE: 33 TO 49
458
+
459
+ YOUR SHOT? 2
460
+ JUMP SHOT
461
+ SHOT IS GOOD.
462
+ SCORE: 35 TO 49
463
+
464
+ LAY UP.
465
+ SHOT IS MISSED.
466
+ YALE CONTROLS THE REBOUND.
467
+ PASS BACK TO YALE GUARD.
468
+
469
+ JUMP SHOT.
470
+ SHOT IS OFF RIM.
471
+ DARTMOUTH CONTROLS THE REBOUND.
472
+
473
+ YOUR SHOT? 3
474
+ LAY UP.
475
+ SHOT IS OFF THE RIM.
476
+ DARTMOUTH CONTROLS THE REBOUND.
477
+ LAY UP.
478
+ SHOT IS OFF THE RIM.
479
+ YALE CONTROLS THE REBOUND.
480
+
481
+ SET SHOT.
482
+ SHOT IS MISSED.
483
+ DARTMOUTH CONTROLS THE REBOUND.
484
+
485
+ YOUR SHOT? 3
486
+ LAY UP.
487
+ SHOT IS OFF THE RIM.
488
+ DARTMOUTH CONTROLS THE REBOUND.
489
+ LAY UP.
490
+ SHOT IS GOOD. TWO POINTS.
491
+ SCORE: 37 TO 49
492
+
493
+ JUMP SHOT.
494
+ SHOT IS OFF RIM.
495
+ YALE CONTROLS THE REBOUND.
496
+ LAY UP.
497
+ SHOT IS MISSED.
498
+ YALE CONTROLS THE REBOUND.
499
+ PASS BACK TO YALE GUARD.
500
+
501
+ LAY UP.
502
+ SHOT IS GOOD.
503
+ SCORE: 37 TO 51
504
+
505
+ YOUR SHOT? 3
506
+
507
+ ***** END OF GAME *****
508
+ FINAL SCORE: DARTMOUTH: 37 YALE: 51
509
+ Break in line 520
@@ -0,0 +1,90 @@
1
+ 10 PRINT TAB(33);"BATNUM"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 110 PRINT "THIS PROGRAM IS A 'BATTLE OF NUMBERS' GAME, WHERE THE"
5
+ 120 PRINT "COMPUTER IS YOUR OPPONENT."
6
+ 130 PRINT
7
+ 140 PRINT "THE GAME STARTS WITH AN ASSUMED PILE OF OBJECTS. YOU"
8
+ 150 PRINT "AND YOUR OPPONENT ALTERNATELY REMOVE OBJECTS FROM THE PILE."
9
+ 160 PRINT "WINNING IS DEFINED IN ADVANCE AS TAKING THE LAST OBJECT OR"
10
+ 170 PRINT "NOT. YOU CAN ALSO SPECIFY SOME OTHER BEGINNING CONDITIONS."
11
+ 180 PRINT "DON'T USE ZERO, HOWEVER, IN PLAYING THE GAME."
12
+ 190 PRINT "ENTER A NEGATIVE NUMBER FOR NEW PILE SIZE TO STOP PLAYING."
13
+ 200 PRINT
14
+ 210 GOTO 330
15
+ 220 FOR I=1 TO 10
16
+ 230 PRINT
17
+ 240 NEXT I
18
+ 330 INPUT "ENTER PILE SIZE";N
19
+ 350 IF N>=1 THEN 370
20
+ 360 GOTO 330
21
+ 370 IF N<>INT(N) THEN 220
22
+ 380 IF N<1 THEN 220
23
+ 390 INPUT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ";M
24
+ 410 IF M=1 THEN 430
25
+ 420 IF M<>2 THEN 390
26
+ 430 INPUT "ENTER MIN AND MAX ";A,B
27
+ 450 IF A>B THEN 430
28
+ 460 IF A<1 THEN 430
29
+ 470 IF A<>INT(A) THEN 430
30
+ 480 IF B<>INT(B) THEN 430
31
+ 490 INPUT "ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST ";S
32
+ 500 PRINT:PRINT
33
+ 510 IF S=1 THEN 530
34
+ 520 IF S<>2 THEN 490
35
+ 530 C=A+B
36
+ 540 IF S=2 THEN 570
37
+ 550 GOSUB 600
38
+ 560 IF W=1 THEN 220
39
+ 570 GOSUB 810
40
+ 580 IF W=1 THEN 220
41
+ 590 GOTO 550
42
+ 600 Q=N
43
+ 610 IF M=1 THEN 630
44
+ 620 Q=Q-1
45
+ 630 IF M=1 THEN 680
46
+ 640 IF N>A THEN 720
47
+ 650 W=1
48
+ 660 PRINT "COMPUTER TAKES";N;"AND LOSES."
49
+ 670 RETURN
50
+ 680 IF N>B THEN 720
51
+ 690 W=1
52
+ 700 PRINT "COMPUTER TAKES";N;"AND WINS."
53
+ 710 RETURN
54
+ 720 P=Q-C*INT(Q/C)
55
+ 730 IF P>=A THEN 750
56
+ 740 P=A
57
+ 750 IF P<=B THEN 770
58
+ 760 P=B
59
+ 770 N=N-P
60
+ 780 PRINT "COMPUTER TAKES";P;"AND LEAVES";N
61
+ 790 W=0
62
+ 800 RETURN
63
+ 810 PRINT:PRINT "YOUR MOVE ";
64
+ 820 INPUT P
65
+ 830 IF P<>0 THEN 870
66
+ 840 PRINT "I TOLD YOU NOT TO USE ZERO! COMPUTER WINS BY FORFEIT."
67
+ 850 W=1
68
+ 860 RETURN
69
+ 870 IF P<>INT(P) THEN 920
70
+ 880 IF P>=A THEN 910
71
+ 890 IF P=N THEN 960
72
+ 900 GOTO 920
73
+ 910 IF P<=B THEN 940
74
+ 920 PRINT "ILLEGAL MOVE, REENTER IT ";
75
+ 930 GOTO 820
76
+ 940 N=N-P
77
+ 950 IF N<>0 THEN 1030
78
+ 960 IF M=1 THEN 1000
79
+ 970 PRINT "TOUGH LUCK, YOU LOSE."
80
+ 980 W=1
81
+ 990 RETURN
82
+ 1000 PRINT "CONGRATULATIONS, YOU WIN."
83
+ 1010 W=1
84
+ 1020 RETURN
85
+ 1030 IF N>=0 THEN 1060
86
+ 1040 N=N+P
87
+ 1050 GOTO 920
88
+ 1060 W=0
89
+ 1070 RETURN
90
+ 1080 END
@@ -0,0 +1,14 @@
1
+ 10
2
+ 1
3
+ 1,3
4
+ 1
5
+ 1
6
+ 3
7
+ 10
8
+ 2
9
+ 1,3
10
+ 2
11
+ 1
12
+ 3
13
+ 3
14
+
@@ -0,0 +1,67 @@
1
+ BATNUM
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS PROGRAM IS A 'BATTLE OF NUMBERS' GAME, WHERE THE
7
+ COMPUTER IS YOUR OPPONENT.
8
+
9
+ THE GAME STARTS WITH AN ASSUMED PILE OF OBJECTS. YOU
10
+ AND YOUR OPPONENT ALTERNATELY REMOVE OBJECTS FROM THE PILE.
11
+ WINNING IS DEFINED IN ADVANCE AS TAKING THE LAST OBJECT OR
12
+ NOT. YOU CAN ALSO SPECIFY SOME OTHER BEGINNING CONDITIONS.
13
+ DON'T USE ZERO, HOWEVER, IN PLAYING THE GAME.
14
+ ENTER A NEGATIVE NUMBER FOR NEW PILE SIZE TO STOP PLAYING.
15
+
16
+ ENTER PILE SIZE? 10
17
+ ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ? 1
18
+ ENTER MIN AND MAX ? 1,3
19
+ ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST ? 1
20
+
21
+
22
+ COMPUTER TAKES 2 AND LEAVES 8
23
+
24
+ YOUR MOVE ? 1
25
+ COMPUTER TAKES 3 AND LEAVES 4
26
+
27
+ YOUR MOVE ? 3
28
+ COMPUTER TAKES 1 AND WINS.
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ ENTER PILE SIZE? 10
40
+ ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ? 2
41
+ ENTER MIN AND MAX ? 1,3
42
+ ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST ? 2
43
+
44
+
45
+
46
+ YOUR MOVE ? 1
47
+ COMPUTER TAKES 1 AND LEAVES 8
48
+
49
+ YOUR MOVE ? 3
50
+ COMPUTER TAKES 1 AND LEAVES 4
51
+
52
+ YOUR MOVE ? 3
53
+ COMPUTER TAKES 1 AND LOSES.
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+ ENTER PILE SIZE?
65
+ Too few items, try again
66
+ ENTER PILE SIZE?
67
+ Error on line 330: No more input