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,243 @@
1
+ HOCKEY
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+
7
+
8
+
9
+ WOULD YOU LIKE THE INSTRUCTIONS? YES
10
+
11
+
12
+ THIS IS A SIMULATED HOCKEY GAME.
13
+ QUESTION RESPONSE
14
+ PASS TYPE IN THE NUMBER OF PASSES YOU WOULD
15
+ LIKE TO MAKE, FROM 0 TO 3.
16
+ SHOT TYPE THE NUMBER CORRESPONDING TO THE SHOT
17
+ YOU WANT TO MAKE. ENTER:
18
+ 1 FOR A SLAPSHOT
19
+ 2 FOR A WRISTSHOT
20
+ 3 FOR A BACKHAND
21
+ 4 FOR A SNAP SHOT
22
+ AREA TYPE IN THE NUMBER CORRESPONDING TO
23
+ THE AREA YOU ARE AIMING AT. ENTER:
24
+ 1 FOR UPPER LEFT HAND CORNER
25
+ 2 FOR UPPER RIGHT HAND CORNER
26
+ 3 FOR LOWER LEFT HAND CORNER
27
+ 4 FOR LOWER RIGHT HAND CORNER
28
+
29
+ AT THE START OF THE GAME, YOU WILL BE ASKED FOR THE NAMES
30
+ OF YOUR PLAYERS. THEY ARE ENTERED IN THE ORDER:
31
+ LEFT WING, CENTER, RIGHT WING, LEFT DEFENSE,
32
+ RIGHT DEFENSE, GOALKEEPER. ANY OTHER INPUT REQUIRED WILL
33
+ HAVE EXPLANATORY INSTRUCTIONS.
34
+ ENTER THE TWO TEAMS? FOO,BAR
35
+
36
+ ENTER THE NUMBER OF MINUTES IN A GAME? 5
37
+
38
+
39
+ WOULD THE FOO COACH ENTER HIS TEAM
40
+
41
+ PLAYER 1 ? #1
42
+ PLAYER 2 ? #2
43
+ PLAYER 3 ? #3
44
+ PLAYER 4 ? #4
45
+ PLAYER 5 ? #5
46
+ PLAYER 6 ? #6
47
+
48
+ WOULD THE BAR COACH DO THE SAME
49
+
50
+ PLAYER 1 ? #A
51
+ PLAYER 2 ? #B
52
+ PLAYER 3 ? #C
53
+ PLAYER 4 ? #D
54
+ PLAYER 5 ? #E
55
+ PLAYER 6 ? #F
56
+
57
+ INPUT THE REFEREE FOR THIS GAME? #REF
58
+
59
+ FOO STARTING LINEUP
60
+ #1
61
+ #2
62
+ #3
63
+ #4
64
+ #5
65
+ #6
66
+
67
+ BAR STARTING LINEUP
68
+ #A
69
+ #B
70
+ #C
71
+ #D
72
+ #E
73
+ #F
74
+
75
+ WE'RE READY FOR TONIGHTS OPENING FACE-OFF.
76
+ #REF WILL DROP THE PUCK BETWEEN #2 AND #B
77
+ BAR HAS CONTROL.
78
+ PASS? NO
79
+ Not numeric: "NO", try again
80
+ ? 2
81
+ IT'S A ' 3 ON 2 '!
82
+ ONLY #4 AND #5 ARE BACK.
83
+ #D GIVES OFF TO #A
84
+ #A DROPS TO #C
85
+ SHOT? 4
86
+ #C SNAPS OFF A SNAP SHOT
87
+ AREA? 2
88
+ STICK SAVE BY #6
89
+ AND CLEARED OUT BY #4
90
+ BAR HAS CONTROL.
91
+ PASS? 0
92
+ SHOT? 2
93
+ #D FLIPS A WRISTSHOT DOWN THE ICE
94
+ BACKHANDS ONE IN ON THE GOALTENDER
95
+ AREA? 1
96
+ STICK SAVE BY #6 AND HE CLEARS IT OUT HIMSELF
97
+ FOO HAS CONTROL OF THE PUCK
98
+ PASS? 1
99
+ #4 LEADS #2 WITH A PERFECT PASS.
100
+ #2 CUTTING IN!!!
101
+ SHOT? 3
102
+ #2 GETS A BACKHAND OFF
103
+ AREA? 3
104
+ WHISTLES ONE OVER THE HEAD OF #F
105
+ FOO HAS CONTROL OF THE PUCK
106
+ PASS? 2
107
+ #2 GIVES TO A STREAKING #1
108
+ #4 COMES DOWN ON #E AND #D
109
+ SHOT? 4
110
+ #4 SNAPS OFF A SNAP SHOT
111
+ AREA? 4
112
+ SKATE SAVE ON A LOW STEAMER BY #F
113
+ BAR HAS CONTROL.
114
+ PASS? 3
115
+ A ' 3 ON 2 ' WITH A ' TRAILER '!
116
+ #B GIVES TO #B WHO SHUFFLES IT OFF TO
117
+ #A WHO FIRES A WING TO WING PASS TO
118
+ #C AS HE CUTS IN ALONE!!
119
+ SHOT? 1
120
+ #C LET'S A BIG SLAP SHOT GO!!
121
+ AREA? 1
122
+ SCORE BAR
123
+ 
124
+ SCORE: BAR: 1 FOO: 0
125
+ GOAL SCORED BY: #C ASSISTED BY: #A AND #B
126
+ AND WE'RE READY FOR THE FACE-OFF
127
+ FOO HAS CONTROL OF THE PUCK
128
+ PASS? 3
129
+ OH MY GOD!! A ' 4 ON 2 ' SITUATION
130
+ #3 LEADS #5
131
+ #5 IS WHEEELING THROUGH CENTER.
132
+ #5 GIVES AND GOES WITH #4
133
+ PRETTY PASSING!
134
+ #4 DROPS IT TO #5
135
+ SHOT? 1
136
+ #5 LET'S A BIG SLAP SHOT GO!!
137
+ AREA? 2
138
+ KICK SAVE AND A BEAUTY BY #F
139
+ CLEARED OUT BY #C
140
+ FOO HAS CONTROL OF THE PUCK
141
+ PASS? 0
142
+ SHOT? 2
143
+ #2 FLIPS A WRISTSHOT DOWN THE ICE
144
+ BACKHANDS ONE IN ON THE GOALTENDER
145
+ AREA? 2
146
+ WHAT A SPECTACULAR GLOVE SAVE BY #F
147
+ AND #F GOLFS IT INTO THE CROWD
148
+ AND WE'RE READY FOR THE FACE-OFF
149
+ FOO HAS CONTROL OF THE PUCK
150
+ PASS? 2
151
+ #3 GIVES TO A STREAKING #2
152
+ #4 COMES DOWN ON #E AND #D
153
+ SHOT? 4
154
+ #4 SNAPS OFF A SNAP SHOT
155
+ AREA? 4
156
+ KICK SAVE AND A BEAUTY BY #F
157
+ CLEARED OUT BY #C
158
+ BAR HAS CONTROL.
159
+ PASS? 1
160
+ #D HITS #B FLYING DOWN THE LEFT SIDE
161
+ SHOT? 2
162
+ #B RIPS A WRIST SHOT OFF
163
+ AREA? 3
164
+ KICKED OUT BY #6
165
+ AND IT REBOUNDS ALL THE WAY TO CENTER ICE
166
+ FOO HAS CONTROL OF THE PUCK
167
+ PASS? 1
168
+ #1 LEADS #4 WITH A PERFECT PASS.
169
+ #4 CUTTING IN!!!
170
+ SHOT? 3
171
+ #4 GETS A BACKHAND OFF
172
+ AREA? 2
173
+ GOAL FOO
174
+ 
175
+ SCORE: FOO: 1 BAR: 1
176
+ GOAL SCORED BY: #4
177
+ ASSISTED BY: #1
178
+ AND WE'RE READY FOR THE FACE-OFF
179
+ BAR HAS CONTROL.
180
+ PASS? 0
181
+ SHOT? 2
182
+ #C FLIPS A WRISTSHOT DOWN THE ICE
183
+ BACKHANDS ONE IN ON THE GOALTENDER
184
+ AREA? 4
185
+ STICK SAVE BY #6 AND HE CLEARS IT OUT HIMSELF
186
+ FOO HAS CONTROL OF THE PUCK
187
+ PASS? 1
188
+ #2 LEADS #5 WITH A PERFECT PASS.
189
+ #5 CUTTING IN!!!
190
+ SHOT? 2
191
+ #5 RIPS A WRIST SHOT OFF
192
+ AREA? 3
193
+ #F MAKES A FACE SAVE!! AND HE IS HURT
194
+ THE DEFENSEMAN #E COVERS UP FOR HIM
195
+ AND WE'RE READY FOR THE FACE-OFF
196
+ BAR HAS CONTROL.
197
+ PASS? 2
198
+ IT'S A ' 3 ON 2 '!
199
+ ONLY #4 AND #5 ARE BACK.
200
+ #A GIVES OFF TO #B
201
+ #B DROPS TO #C
202
+ SHOT? 3
203
+ #C GETS A BACKHAND OFF
204
+ AREA? 4
205
+ STICK SAVE BY #6 AND HE CLEARS IT OUT HIMSELF
206
+ BAR HAS CONTROL.
207
+ PASS? 3
208
+ A ' 3 ON 2 ' WITH A ' TRAILER '!
209
+ #D GIVES TO #E WHO SHUFFLES IT OFF TO
210
+ #B WHO FIRES A WING TO WING PASS TO
211
+ #C AS HE CUTS IN ALONE!!
212
+ SHOT? 2
213
+ #C RIPS A WRIST SHOT OFF
214
+ AREA? 1
215
+ GLOVE SAVE #6 AND HE HANGS ON
216
+ THAT'S THE SIREN
217
+
218
+ FINAL SCORE:
219
+ FOO: 1 BAR: 1
220
+
221
+ SCORING SUMMARY
222
+
223
+ FOO
224
+ NAME GOALS ASSISTS
225
+ ---- ----- -------
226
+ #1 0 1
227
+ #2 0 0
228
+ #3 0 0
229
+ #4 1 0
230
+ #5 0 0
231
+
232
+ BAR
233
+ NAME GOALS ASSISTS
234
+ ---- ----- -------
235
+ #A 0 1
236
+ #B 0 1
237
+ #C 1 0
238
+ #D 0 0
239
+ #E 0 0
240
+
241
+ SHOTS ON NET
242
+ FOO: 7
243
+ BAR: 7
@@ -0,0 +1,130 @@
1
+ 100 PRINT TAB(31);"HORSERACE"
2
+ 110 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 120 PRINT:PRINT:PRINT
4
+ 210 DIM S(8)
5
+ 220 PRINT "WELCOME TO SOUTH PORTLAND HIGH RACETRACK"
6
+ 230 PRINT " ...OWNED BY LAURIE CHEVALIER"
7
+ 240 PRINT "DO YOU WANT DIRECTIONS";
8
+ 250 INPUT X$
9
+ 260 IF X$="NO" THEN 320
10
+ 270 PRINT"UP TO 10 MAY PLAY. A TABLE OF ODDS WILL BE PRINTED. YOU"
11
+ 280 PRINT"MAY BET ANY + AMOUNT UNDER 100000 ON ONE HORSE."
12
+ 290 PRINT "DURING THE RACE, A HORSE WILL BE SHOWN BY ITS"
13
+ 300 PRINT"NUMBER. THE HORSES RACE DOWN THE PAPER!"
14
+ 310 PRINT
15
+ 320 PRINT "HOW MANY WANT TO BET";
16
+ 330 INPUT C
17
+ 340 PRINT "WHEN ? APPEARS,TYPE NAME"
18
+ 350 FOR A=1 TO C
19
+ 360 INPUT W$(A)
20
+ 370 NEXT A
21
+ 380 PRINT
22
+ 390 PRINT"HORSE",,"NUMBER","ODDS"
23
+ 400 PRINT
24
+ 410 FOR I=1 TO 8: S(I)=0: NEXT I
25
+ 420 LET R=0
26
+ 430 FOR A=1 TO 8
27
+ 440 LET D(A)=INT(10*RND(1)+1)
28
+ 450 NEXT A
29
+ 460 FOR A=1 TO 8
30
+ 470 LET R=R+D(A)
31
+ 480 NEXT A
32
+ 490 LET V$(1)="JOE MAW"
33
+ 500 LET V$(2)="L.B.J."
34
+ 510 LET V$(3)="MR.WASHBURN"
35
+ 520 LET V$(4)="MISS KAREN"
36
+ 530 LET V$(5)="JOLLY"
37
+ 540 LET V$(6)="HORSE"
38
+ 550 LET V$(7)="JELLY DO NOT"
39
+ 560 LET V$(8)="MIDNIGHT"
40
+ 570 FOR N=1 TO 8
41
+ 580 PRINT V$(N),,N,R/D(N);":1"
42
+ 590 NEXT N
43
+ 600 PRINT"--------------------------------------------------"
44
+ 610 PRINT "PLACE YOUR BETS...HORSE # THEN AMOUNT"
45
+ 620 FOR J=1 TO C
46
+ 630 PRINT W$(J);
47
+ 640 INPUT Q(J),P(J)
48
+ 650 IF P(J)<1 THEN 670
49
+ 660 IF P(J)<100000 THEN 690
50
+ 670 PRINT" YOU CAN'T DO THAT!"
51
+ 680 GOTO 630
52
+ 690 NEXT J
53
+ 700 PRINT
54
+ 710 PRINT"1 2 3 4 5 6 7 8"
55
+ 720 PRINT"XXXXSTARTXXXX"
56
+ 730 FOR I=1 TO 8
57
+ 740 LET M=I
58
+ 750 LET M(I)=M
59
+ 760 LET Y(M(I))=INT(100*RND(1)+1)
60
+ 770 IF Y(M(I))<10 THEN 860
61
+ 780 LET S=INT(R/D(I)+.5)
62
+ 790 IF Y(M(I))<S+17 THEN 880
63
+ 800 IF Y(M(I))<S+37 THEN 900
64
+ 810 IF Y(M(I))<S+57 THEN 920
65
+ 820 IF Y(M(I))<77+S THEN 940
66
+ 830 IF Y(M(I))<S+92 THEN 960
67
+ 840 LET Y(M(I))=7
68
+ 850 GOTO 970
69
+ 860 LET Y(M(I))=1
70
+ 870 GOTO 970
71
+ 880 LET Y(M(I))=2
72
+ 890 GOTO 970
73
+ 900 LET Y(M(I))=3
74
+ 910 GOTO 970
75
+ 920 LET Y(M(I))=4
76
+ 930 GOTO 970
77
+ 940 LET Y(M(I))=5
78
+ 950 GOTO 970
79
+ 960 LET Y(M(I))=6
80
+ 970 NEXT I
81
+ 980 LET M=I
82
+ 990 FOR I=1 TO 8
83
+ 1000 LET S(M(I))=S(M(I))+Y(M(I))
84
+ 1010 NEXT I
85
+ 1020 LET I=1
86
+ 1030 FOR L=1 TO 8
87
+ 1040 FOR I=1 TO 8-L
88
+ 1050 IF S(M(I))<S(M(I+1))THEN 1090
89
+ 1060 LET H=M(I)
90
+ 1070 LET M(I)=M(I+1)
91
+ 1080 LET M(I+1)=H
92
+ 1090 NEXT I
93
+ 1100 NEXT L
94
+ 1110 LET T=S(M(8))
95
+ 1120 FOR I=1 TO 8
96
+ 1130 LET B=S(M(I))-S(M(I-1))
97
+ 1140 IF B=0 THEN 1190
98
+ 1150 FOR A=1 TO B
99
+ 1160 PRINT
100
+ 1170 IF S(M(I))>27 THEN 1240
101
+ 1180 NEXT A
102
+ 1190 PRINT M(I);
103
+ 1200 NEXT I
104
+ 1210 FOR A=1 TO 28-T
105
+ 1220 PRINT
106
+ 1230 NEXT A
107
+ 1240 PRINT "XXXXFINISHXXXX";
108
+ 1242 PRINT
109
+ 1243 PRINT
110
+ 1244 PRINT "---------------------------------------------"
111
+ 1245 PRINT
112
+ 1250 IF T<28 THEN 720
113
+ 1270 PRINT "THE RACE RESULTS ARE:"
114
+ 1272 LET Z9=1
115
+ 1280 FOR I=8 TO 1 STEP-1
116
+ 1290 LET F=M(I)
117
+ 1300 PRINT
118
+ 1310 PRINT Z9;"PLACE HORSE NO.";F,"AT ";R/D(F);":1"
119
+ 1312 LET Z9=Z9+1
120
+ 1320 NEXT I
121
+ 1330 FOR J=1 TO C
122
+ 1340 IF Q(J)<>M(8) THEN 1370
123
+ 1350 LET N=Q(J)
124
+ 1355 PRINT
125
+ 1360 PRINT W$(J);" WINS $";(R/D(N))*P(J)
126
+ 1370 NEXT J
127
+ 1372 PRINT "DO YOU WANT TO BET ON THE NEXT RACE ?"
128
+ 1374 INPUT "YES OR NO"; O$
129
+ 1376 IF O$="YES" THEN 380
130
+ 1380 END
@@ -0,0 +1,11 @@
1
+ YES
2
+ 2
3
+ FRED
4
+ ETHEL
5
+ 10
6
+ 1,10
7
+ 2,20
8
+ YES
9
+ 1,10
10
+ 7,10
11
+ NO