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,115 @@
1
+ H-I-Q
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ HERE IS THE BOARD:
7
+
8
+ ! ! !
9
+ 13 14 15
10
+
11
+ ! ! !
12
+ 22 23 24
13
+
14
+ ! ! ! ! ! ! !
15
+ 29 30 31 32 33 34 35
16
+
17
+ ! ! ! ! ! ! !
18
+ 38 39 40 41 42 43 44
19
+
20
+ ! ! ! ! ! ! !
21
+ 47 48 49 50 51 52 53
22
+
23
+ ! ! !
24
+ 58 59 60
25
+
26
+ ! ! !
27
+ 67 68 69
28
+
29
+ TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD
30
+ WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG
31
+ NUMBERS. OK, LET'S BEGIN.
32
+
33
+ ! ! !
34
+ ! ! !
35
+ ! ! ! ! ! ! !
36
+ ! ! ! O ! ! !
37
+ ! ! ! ! ! ! !
38
+ ! ! !
39
+ ! ! !
40
+
41
+ MOVE WHICH PIECE?
42
+ Too few items, try again
43
+ MOVE WHICH PIECE? 23
44
+ TO WHERE? 41
45
+
46
+ ! ! !
47
+ ! O !
48
+ ! ! ! O ! ! !
49
+ ! ! ! ! ! ! !
50
+ ! ! ! ! ! ! !
51
+ ! ! !
52
+ ! ! !
53
+
54
+ MOVE WHICH PIECE? 50
55
+ TO WHERE? 32
56
+
57
+ ! ! !
58
+ ! O !
59
+ ! ! ! ! ! ! !
60
+ ! ! ! O ! ! !
61
+ ! ! ! O ! ! !
62
+ ! ! !
63
+ ! ! !
64
+
65
+ MOVE WHICH PIECE? 68
66
+ TO WHERE? 50
67
+
68
+ ! ! !
69
+ ! O !
70
+ ! ! ! ! ! ! !
71
+ ! ! ! O ! ! !
72
+ ! ! ! ! ! ! !
73
+ ! O !
74
+ ! O !
75
+
76
+ MOVE WHICH PIECE? 39
77
+ TO WHERE? 41
78
+
79
+ ! ! !
80
+ ! O !
81
+ ! ! ! ! ! ! !
82
+ ! O O ! ! ! !
83
+ ! ! ! ! ! ! !
84
+ ! O !
85
+ ! O !
86
+
87
+ MOVE WHICH PIECE? 42
88
+ TO WHERE? 40
89
+
90
+ ! ! !
91
+ ! O !
92
+ ! ! ! ! ! ! !
93
+ ! O ! O O ! !
94
+ ! ! ! ! ! ! !
95
+ ! O !
96
+ ! O !
97
+
98
+ MOVE WHICH PIECE? 44
99
+ TO WHERE? 42
100
+
101
+ ! ! !
102
+ ! O !
103
+ ! ! ! ! ! ! !
104
+ ! O ! O ! O O
105
+ ! ! ! ! ! ! !
106
+ ! O !
107
+ ! O !
108
+
109
+ THE GAME IS OVER.
110
+ YOU HAD 26 PIECES REMAINING.
111
+
112
+ PLAY AGAIN (YES OR NO)? NO
113
+
114
+ SO LONG FOR NOW.
115
+
@@ -0,0 +1,29 @@
1
+ 10 PRINT TAB(34);"HI LO"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 PRINT "THIS IS THE GAME OF HI LO.":PRINT
5
+ 110 PRINT "YOU WILL HAVE 6 TRIES TO GUESS THE AMOUNT OF MONEY IN THE"
6
+ 120 PRINT "HI LO JACKPOT, WHICH IS BETWEEN 1 AND 100 DOLLARS. IF YOU"
7
+ 130 PRINT "GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!"
8
+ 140 PRINT "THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER,"
9
+ 150 PRINT "IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS.":PRINT
10
+ 160 R=0
11
+ 170 B=0:PRINT
12
+ 180 Y=INT(100*RND(1))
13
+ 200 PRINT "YOUR GUESS";
14
+ 210 INPUT A
15
+ 220 B=B+1
16
+ 230 IF A=Y THEN 300
17
+ 240 IF A>Y THEN 270
18
+ 250 PRINT "YOUR GUESS IS TOO LOW.":GOTO 280
19
+ 270 PRINT "YOUR GUESS IS TOO HIGH."
20
+ 280 PRINT:IF B<6 THEN 200
21
+ 290 PRINT "YOU BLEW IT...TOO BAD...THE NUMBER WAS";Y
22
+ 295 R=0:GOTO 350
23
+ 300 PRINT "GOT IT!!!!!!!!!! YOU WIN";Y;"DOLLARS."
24
+ 310 R=R+Y
25
+ 320 PRINT "YOUR TOTAL WINNINGS ARE NOW";R;"DOLLARS."
26
+ 350 PRINT:PRINT "PLAY AGAIN (YES OR NO)";
27
+ 360 INPUT A$:IF A$="YES" THEN 170
28
+ 380 PRINT:PRINT "SO LONG. HOPE YOU ENJOYED YOURSELF!!!"
29
+ 390 END
@@ -0,0 +1,20 @@
1
+ 50
2
+ 75
3
+ 62
4
+ 56
5
+ 53
6
+ 54
7
+ YES
8
+ 50
9
+ 75
10
+ 62
11
+ 68
12
+ 71
13
+ YES
14
+ 50
15
+ 75
16
+ 62
17
+ 56
18
+ 59
19
+ 61
20
+ NO
@@ -0,0 +1,76 @@
1
+ HI LO
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS IS THE GAME OF HI LO.
7
+
8
+ YOU WILL HAVE 6 TRIES TO GUESS THE AMOUNT OF MONEY IN THE
9
+ HI LO JACKPOT, WHICH IS BETWEEN 1 AND 100 DOLLARS. IF YOU
10
+ GUESS THE AMOUNT, YOU WIN ALL THE MONEY IN THE JACKPOT!
11
+ THEN YOU GET ANOTHER CHANCE TO WIN MORE MONEY. HOWEVER,
12
+ IF YOU DO NOT GUESS THE AMOUNT, THE GAME ENDS.
13
+
14
+
15
+ YOUR GUESS? 50
16
+ YOUR GUESS IS TOO LOW.
17
+
18
+ YOUR GUESS? 75
19
+ YOUR GUESS IS TOO HIGH.
20
+
21
+ YOUR GUESS? 62
22
+ YOUR GUESS IS TOO HIGH.
23
+
24
+ YOUR GUESS? 56
25
+ YOUR GUESS IS TOO HIGH.
26
+
27
+ YOUR GUESS? 53
28
+ YOUR GUESS IS TOO LOW.
29
+
30
+ YOUR GUESS? 54
31
+ GOT IT!!!!!!!!!! YOU WIN 54 DOLLARS.
32
+ YOUR TOTAL WINNINGS ARE NOW 54 DOLLARS.
33
+
34
+ PLAY AGAIN (YES OR NO)? YES
35
+
36
+ YOUR GUESS? 50
37
+ YOUR GUESS IS TOO LOW.
38
+
39
+ YOUR GUESS? 75
40
+ YOUR GUESS IS TOO HIGH.
41
+
42
+ YOUR GUESS? 62
43
+ YOUR GUESS IS TOO LOW.
44
+
45
+ YOUR GUESS? 68
46
+ YOUR GUESS IS TOO LOW.
47
+
48
+ YOUR GUESS? 71
49
+ GOT IT!!!!!!!!!! YOU WIN 71 DOLLARS.
50
+ YOUR TOTAL WINNINGS ARE NOW 125 DOLLARS.
51
+
52
+ PLAY AGAIN (YES OR NO)? YES
53
+
54
+ YOUR GUESS? 50
55
+ YOUR GUESS IS TOO LOW.
56
+
57
+ YOUR GUESS? 75
58
+ YOUR GUESS IS TOO HIGH.
59
+
60
+ YOUR GUESS? 62
61
+ YOUR GUESS IS TOO HIGH.
62
+
63
+ YOUR GUESS? 56
64
+ YOUR GUESS IS TOO LOW.
65
+
66
+ YOUR GUESS? 59
67
+ YOUR GUESS IS TOO LOW.
68
+
69
+ YOUR GUESS? 61
70
+ YOUR GUESS IS TOO HIGH.
71
+
72
+ YOU BLEW IT...TOO BAD...THE NUMBER WAS 60
73
+
74
+ PLAY AGAIN (YES OR NO)? NO
75
+
76
+ SO LONG. HOPE YOU ENJOYED YOURSELF!!!
@@ -0,0 +1,210 @@
1
+ 2 PRINT TAB(33);"HOCKEY"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT:PRINT:PRINT
4
+ 10 REM ROBERT PUOPOLO ALG. 1 140 MCCOWAN 6/7/73 HOCKEY
5
+ 30 LET X=1
6
+ 40 PRINT:PRINT:PRINT
7
+ 50 PRINT "WOULD YOU LIKE THE INSTRUCTIONS";:INPUT C$
8
+ 55 PRINT
9
+ 60 IF C$="NO" THEN 90
10
+ 65 IF C$="YES" THEN 80
11
+ 70 PRINT "ANSWER YES OR NO!!":GOTO 50
12
+ 80 GOTO 1720
13
+ 90 DIM A$(7),B$(7),H(20),T(5),T1(5),T2(5),T3(5)
14
+ 100 PRINT "ENTER THE TWO TEAMS";:INPUT A$(7),B$(7)
15
+ 105 PRINT
16
+ 110 PRINT "ENTER THE NUMBER OF MINUTES IN A GAME";:INPUT T6
17
+ 115 PRINT
18
+ 120 IF T6<1 THEN 110:PRINT
19
+ 130 PRINT "WOULD THE " A$(7) " COACH ENTER HIS TEAM"
20
+ 135 PRINT
21
+ 140 FOR I=1 TO 6:PRINT "PLAYER"I;:INPUT A$(I):NEXT I:PRINT
22
+ 150 PRINT "WOULD THE " B$(7) " COACH DO THE SAME"
23
+ 155 PRINT
24
+ 160 FOR T=1 TO 6:PRINT "PLAYER"T;:INPUT B$(T):NEXT T:PRINT
25
+ 170 PRINT "INPUT THE REFEREE FOR THIS GAME";:INPUT R$
26
+ 180 PRINT:PRINT TAB(10);A$(7) " STARTING LINEUP"
27
+ 190 FOR T=1 TO 6:PRINT A$(T):NEXT T
28
+ 200 PRINT:PRINT TAB(10);B$(7)" STARTING LINEUP"
29
+ 210 FOR T=1 TO 6:PRINT B$(T):NEXT T:PRINT
30
+ 220 PRINT "WE'RE READY FOR TONIGHTS OPENING FACE-OFF."
31
+ 230 PRINT R$ " WILL DROP THE PUCK BETWEEN " A$(2) " AND " B$(2)
32
+ 240 FOR L=1 TO T6:IF L=1 THEN 260
33
+ 250 PRINT "AND WE'RE READY FOR THE FACE-OFF"
34
+ 260 C=INT(2*RND(X))+1:ON C GOTO 270,280
35
+ 270 PRINT A$(7) " HAS CONTROL OF THE PUCK":GOTO 290
36
+ 280 PRINT B$(7) " HAS CONTROL."
37
+ 290 PRINT "PASS";:INPUT P:FOR N=1 TO 3:H(N)=0:NEXT N
38
+ 300 IF P<0 THEN 290
39
+ 305 IF P>3 THEN 290
40
+ 310 FOR J=1 TO (P+2)
41
+ 320 H(J)=INT(5*RND(X))+1
42
+ 330 NEXT J:IF H(J-1)=H(J-2) THEN 310
43
+ 331 IF P+2<3 THEN 350
44
+ 335 IF H(J-1)=H(J-3) THEN 310
45
+ 340 IF H(J-2)=H(J-3) THEN 310
46
+ 350 IF P=0 THEN 360
47
+ 355 GOTO 490
48
+ 360 INPUT "SHOT";S:IF S<1 THEN 360
49
+ 365 IF S>4 THEN 360
50
+ 370 ON C GOTO 380,480
51
+ 380 PRINT A$(H(J-1));:G=H(J-1):G1=0:G2=0
52
+ 390 ON S GOTO 400,420,440,460
53
+ 400 PRINT " LET'S A BOOMER GO FROM THE RED LINE!!"
54
+ 410 Z=10:GOTO 890
55
+ 420 PRINT " FLIPS A WRISTSHOT DOWN THE ICE"
56
+ 440 PRINT " BACKHANDS ONE IN ON THE GOALTENDER"
57
+ 450 Z=25:GOTO 890
58
+ 460 PRINT " SNAPS A LONG FLIP SHOT"
59
+ 470 Z=17:GOTO 890
60
+ 480 PRINT B$(H(J-1));:G1=0:G2=0:G=H(J-1):GOTO 390
61
+ 490 ON C GOTO 500,640
62
+ 500 ON P GOTO 510,540,570
63
+ 510 PRINT A$(H(J-2)) " LEADS " A$(H(J-1)) " WITH A PERFECT PASS."
64
+ 520 PRINT A$(H(J-1)) " CUTTING IN!!!"
65
+ 530 G=H(J-1):G1=H(J-2):G2=0:Z1=3:GOTO 770
66
+ 540 PRINT A$(H(J-2)) " GIVES TO A STREAKING " A$(H(J-1))
67
+ 550 PRINT A$(H(J-3)) " COMES DOWN ON " B$(5) " AND " B$(4)
68
+ 560 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=2:GOTO 770
69
+ 570 PRINT "OH MY GOD!! A ' 4 ON 2 ' SITUATION"
70
+ 580 PRINT A$(H(J-3)) " LEADS " A$(H(J-2))
71
+ 590 PRINT A$(H(J-2)) " IS WHEEELING THROUGH CENTER."
72
+ 600 PRINT A$(H(J-2)) " GIVES AND GOES WITH " A$(H(J-1))
73
+ 610 PRINT "PRETTY PASSING!"
74
+ 620 PRINT A$(H(J-1)) " DROPS IT TO " A$(H(J-4))
75
+ 630 G=H(J-4):G1=J(J-1):G2=H(J-2):Z1=1:GOTO 770
76
+ 640 ON P GOTO 650,670,720
77
+ 650 PRINT B$(H(J-1)) " HITS " B$(H(J-2)) " FLYING DOWN THE LEFT SIDE"
78
+ 660 G=H(J-2):G1=H(J-1):G2=0:Z1=3:GOTO 770
79
+ 670 PRINT "IT'S A ' 3 ON 2 '!"
80
+ 680 PRINT "ONLY " A$(4) " AND " A$(5) " ARE BACK."
81
+ 690 PRINT B$(H(J-2)) " GIVES OFF TO " B$(H(J-1))
82
+ 700 PRINT B$(H(J-1)) " DROPS TO " B$(H(J-3))
83
+ 710 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=2:GOTO 770
84
+ 720 PRINT " A ' 3 ON 2 ' WITH A ' TRAILER '!"
85
+ 730 PRINT B$(H(J-4)) " GIVES TO " B$(H(J-2)) " WHO SHUFFLES IT OFF TO"
86
+ 740 PRINT B$(H(J-1)) " WHO FIRES A WING TO WING PASS TO "
87
+ 750 PRINT B$(H(J-3)) " AS HE CUTS IN ALONE!!"
88
+ 760 G=H(J-3):G1=H(J-1):G2=H(J-2):Z1=1:GOTO 770
89
+ 770 PRINT "SHOT";:INPUT S:IF S>4 THEN 770:IF S<1 THEN 770
90
+ 780 ON C GOTO 790,880
91
+ 790 PRINT A$(G);:ON S GOTO 800,820,840,860
92
+ 800 PRINT " LET'S A BIG SLAP SHOT GO!!"
93
+ 810 Z=4:Z=Z+Z1:GOTO 890
94
+ 820 PRINT " RIPS A WRIST SHOT OFF"
95
+ 830 Z=2:Z=Z+Z1:GOTO 890
96
+ 840 PRINT " GETS A BACKHAND OFF"
97
+ 850 Z=3:Z=Z+Z1:GOTO 890
98
+ 860 PRINT " SNAPS OFF A SNAP SHOT"
99
+ 870 Z=2:Z=Z+Z1:GOTO 890
100
+ 880 PRINT B$(G);:ON S GOTO 800,820,840,860
101
+ 890 PRINT "AREA";:INPUT A:IF A<1 THEN 890
102
+ 895 IF A>4 THEN 890
103
+ 900 ON C GOTO 910,920
104
+ 910 S2=S2+1:GOTO 930
105
+ 920 S3=S3+1
106
+ 930 A1=INT(4*RND(X))+1:IF A<>A1 THEN 1200
107
+ 940 H(20)=INT(100*RND(X))+1
108
+ 950 IF INT(H(20)/Z)=H(20)/Z THEN 1160
109
+ 960 ON C GOTO 970,980
110
+ 970 PRINT "GOAL " A$(7):H(9)=H(9)+1:GOTO 990
111
+ 980 PRINT "SCORE " B$(7):H(8)=H(8)+1
112
+ 990 FOR B1=1 TO 25:PRINT CHR$(7);:NEXT B1:PRINT
113
+ 1000 PRINT "SCORE: ";:IF H(8)>H(9) THEN 1020
114
+ 1010 PRINT A$(7)":";H(9),B$(7)":";H(8):GOTO 1030
115
+ 1020 PRINT B$(7)":";H(8),A$(7)":";H(9)
116
+ 1030 ON C GOTO 1040,1100
117
+ 1040 PRINT "GOAL SCORED BY: " A$(G):IF G1=0 THEN 1070
118
+ 1050 IF G2=0 THEN 1080
119
+ 1060 PRINT " ASSISTED BY: " A$(G1) " AND " A$(G2):GOTO 1090
120
+ 1070 PRINT " UNASSISTED.":GOTO 1090
121
+ 1080 PRINT " ASSISTED BY: " A$(G1)
122
+ 1090 T(G)=T(G)+1:T1(G1)=T1(G1)+1:T1(G2)=T1(G2)+1:GOTO 1540
123
+ 1100 PRINT "GOAL SCORED BY: " B$(G);
124
+ 1110 IF G1=0 THEN 1130
125
+ 1115 IF G2=0 THEN 1140
126
+ 1120 PRINT " ASSISTED BY: " B$(G1) " AND " B$(G2):GOTO 1150
127
+ 1130 PRINT " UNASSISTED":GOTO 1150
128
+ 1140 PRINT " ASSISTED BY: " B$(G1):GOTO 1150
129
+ 1150 T2(G)=T2(G)+1:T3(G1)=T3(G1)+1:T3(G2)=T3(G2)+1:GOTO 1540
130
+ 1160 A2=INT(100*RND(X))+1:IF INT(A2/4)=A2/4 THEN 1170
131
+ 1165 GOTO 1200
132
+ 1170 ON C GOTO 1180,1190
133
+ 1180 PRINT "SAVE " B$(6) " -- REBOUND":GOTO 940
134
+ 1190 PRINT "SAVE " A$(6) " -- FOLLOW UP":GOTO 940
135
+ 1200 S1=INT(6*RND(X))+1
136
+ 1210 ON C GOTO 1220,1380
137
+ 1220 ON S1 GOTO 1230,1260,1290,1300,1330,1350
138
+ 1230 PRINT "KICK SAVE AND A BEAUTY BY " B$(6)
139
+ 1240 PRINT "CLEARED OUT BY " B$(3)
140
+ 1250 GOTO 260
141
+ 1260 PRINT "WHAT A SPECTACULAR GLOVE SAVE BY " B$(6)
142
+ 1270 PRINT "AND " B$(6) " GOLFS IT INTO THE CROWD"
143
+ 1280 GOTO 1540
144
+ 1290 PRINT "SKATE SAVE ON A LOW STEAMER BY " B$(6):GOTO 260
145
+ 1300 PRINT "PAD SAVE BY " B$(6) " OFF THE STICK"
146
+ 1310 PRINT "OF "A$(G) " AND " B$(6) " COVERS UP"
147
+ 1320 GOTO 1540
148
+ 1330 PRINT "WHISTLES ONE OVER THE HEAD OF " B$(6)
149
+ 1340 GOTO 260
150
+ 1350 PRINT B$(6) " MAKES A FACE SAVE!! AND HE IS HURT"
151
+ 1360 PRINT "THE DEFENSEMAN " B$(5) " COVERS UP FOR HIM"
152
+ 1370 GOTO 1540
153
+ 1380 ON S1 GOTO 1390,1410,1440,1470,1490,1520
154
+ 1390 PRINT "STICK SAVE BY " A$(6)
155
+ 1400 PRINT "AND CLEARED OUT BY " A$(4):GOTO 260
156
+ 1410 PRINT "OH MY GOD!! " B$(G) " RATTLES ONE OFF THE POST"
157
+ 1420 PRINT "TO THE RIGHT OF " A$(6) " AND " A$(6) " COVERS ";
158
+ 1430 PRINT "ON THE LOOSE PUCK!":GOTO 1540
159
+ 1440 PRINT "SKATE SAVE BY " A$(6)
160
+ 1450 PRINT A$(6) " WHACKS THE LOOSE PUCK INTO THE STANDS"
161
+ 1460 GOTO 1540
162
+ 1470 PRINT "STICK SAVE BY " A$(6) " AND HE CLEARS IT OUT HIMSELF"
163
+ 1480 GOTO 260
164
+ 1490 PRINT "KICKED OUT BY " A$(6)
165
+ 1500 PRINT "AND IT REBOUNDS ALL THE WAY TO CENTER ICE"
166
+ 1510 GOTO 260
167
+ 1520 PRINT "GLOVE SAVE " A$(6) " AND HE HANGS ON"
168
+ 1530 GOTO 1540
169
+ 1540 NEXT L:FOR N=1 TO 30:PRINT CHR$(7);:NEXT N:PRINT "THAT'S THE SIREN"
170
+ 1550 PRINT:PRINT TAB(15);"FINAL SCORE:"
171
+ 1560 IF H(8)>H(9) THEN 1580
172
+ 1570 PRINT A$(7)":";H(9),B$(7)":";H(8):GOTO 1590
173
+ 1580 PRINT B$(7)":";H(8),A$(7)":";H(9)
174
+ 1590 PRINT: PRINT TAB(10);"SCORING SUMMARY":PRINT
175
+ 1600 PRINT TAB(25);A$(7)
176
+ 1610 PRINT TAB(5);"NAME";TAB(20);"GOALS";TAB(35);"ASSISTS"
177
+ 1620 PRINT TAB(5);"----";TAB(20);"-----";TAB(35);"-------"
178
+ 1630 FOR I=1 TO 5:PRINT TAB(5);A$(I);TAB(21);T(I);TAB(36);T1(I)
179
+ 1640 NEXT I:PRINT
180
+ 1650 PRINT TAB(25);B$(7)
181
+ 1660 PRINT TAB(5);"NAME";TAB(20);"GOALS";TAB(35);"ASSISTS"
182
+ 1670 PRINT TAB(5);"----";TAB(20);"-----";TAB(35);"-------"
183
+ 1680 FOR T=1 TO 5:PRINT TAB(5);B$(T);TAB(21);T2(T);TAB(36);T3(T)
184
+ 1690 NEXT T:PRINT
185
+ 1700 PRINT "SHOTS ON NET":PRINT A$(7)":";S2:PRINT B$(7)":";S3
186
+ 1710 END
187
+ 1720 PRINT: PRINT "THIS IS A SIMULATED HOCKEY GAME."
188
+ 1730 PRINT "QUESTION RESPONSE"
189
+ 1740 PRINT "PASS TYPE IN THE NUMBER OF PASSES YOU WOULD"
190
+ 1750 PRINT " LIKE TO MAKE, FROM 0 TO 3."
191
+ 1760 PRINT "SHOT TYPE THE NUMBER CORRESPONDING TO THE SHOT"
192
+ 1770 PRINT " YOU WANT TO MAKE. ENTER:"
193
+ 1780 PRINT " 1 FOR A SLAPSHOT"
194
+ 1790 PRINT " 2 FOR A WRISTSHOT"
195
+ 1800 PRINT " 3 FOR A BACKHAND"
196
+ 1810 PRINT " 4 FOR A SNAP SHOT"
197
+ 1820 PRINT "AREA TYPE IN THE NUMBER CORRESPONDING TO"
198
+ 1830 PRINT " THE AREA YOU ARE AIMING AT. ENTER:"
199
+ 1840 PRINT " 1 FOR UPPER LEFT HAND CORNER"
200
+ 1850 PRINT " 2 FOR UPPER RIGHT HAND CORNER"
201
+ 1860 PRINT " 3 FOR LOWER LEFT HAND CORNER"
202
+ 1870 PRINT " 4 FOR LOWER RIGHT HAND CORNER"
203
+ 1880 PRINT
204
+ 1890 PRINT "AT THE START OF THE GAME, YOU WILL BE ASKED FOR THE NAMES"
205
+ 1900 PRINT "OF YOUR PLAYERS. THEY ARE ENTERED IN THE ORDER: "
206
+ 1910 PRINT "LEFT WING, CENTER, RIGHT WING, LEFT DEFENSE,"
207
+ 1920 PRINT "RIGHT DEFENSE, GOALKEEPER. ANY OTHER INPUT REQUIRED WILL"
208
+ 1930 PRINT "HAVE EXPLANATORY INSTRUCTIONS."
209
+ 1940 GOTO 90
210
+ 1950 END
@@ -0,0 +1,59 @@
1
+ YES
2
+ FOO,BAR
3
+ 5
4
+ #1
5
+ #2
6
+ #3
7
+ #4
8
+ #5
9
+ #6
10
+ #A
11
+ #B
12
+ #C
13
+ #D
14
+ #E
15
+ #F
16
+ #REF
17
+ NO
18
+ 2
19
+ 4
20
+ 2
21
+ 0
22
+ 2
23
+ 1
24
+ 1
25
+ 3
26
+ 3
27
+ 2
28
+ 4
29
+ 4
30
+ 3
31
+ 1
32
+ 1
33
+ 3
34
+ 1
35
+ 2
36
+ 0
37
+ 2
38
+ 2
39
+ 2
40
+ 4
41
+ 4
42
+ 1
43
+ 2
44
+ 3
45
+ 1
46
+ 3
47
+ 2
48
+ 0
49
+ 2
50
+ 4
51
+ 1
52
+ 2
53
+ 3
54
+ 2
55
+ 3
56
+ 4
57
+ 3
58
+ 2
59
+ 1