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,229 @@
1
+ BOWL
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ WELCOME TO THE ALLEY
7
+ BRING YOUR FRIENDS
8
+ OKAY LET'S FIRST GET ACQUAINTED
9
+
10
+ THE INSTRUCTIONS (Y/N)
11
+ ? Y
12
+ THE GAME OF BOWLING TAKES MIND AND SKILL.DURING THE GAME
13
+ THE COMPUTER WILL KEEP SCORE.YOU MAY COMPETE WITH
14
+ OTHER PLAYERS[UP TO FOUR].YOU WILL BE PLAYING TEN FRAMES
15
+ ON THE PIN DIAGRAM 'O' MEANS THE PIN IS DOWN...'+' MEANS THE
16
+ PIN IS STANDING.AFTER THE GAME THE COMPUTER WILL SHOW YOUR
17
+ SCORES .
18
+ FIRST OF ALL...HOW MANY ARE PLAYING? 1
19
+
20
+ VERY GOOD...
21
+ TYPE ROLL TO GET THE BALL GOING.
22
+ ? ROLL
23
+ PLAYER: 1 FRAME: 1 BALL: 1
24
+
25
+ O O O O
26
+ + O O
27
+ O O
28
+ +
29
+ ROLL YOUR 2ND BALL
30
+
31
+ TYPE ROLL TO GET THE BALL GOING.
32
+ ? R
33
+ PLAYER: 1 FRAME: 1 BALL: 2
34
+
35
+ O O O O
36
+ + O O
37
+ O O
38
+ +
39
+ GUTTER!!
40
+ ERROR!!!
41
+
42
+ TYPE ROLL TO GET THE BALL GOING.
43
+ ? R
44
+ PLAYER: 1 FRAME: 2 BALL: 1
45
+
46
+ + O O +
47
+ O O O
48
+ O O
49
+ O
50
+ ROLL YOUR 2ND BALL
51
+
52
+ TYPE ROLL TO GET THE BALL GOING.
53
+ ? R
54
+ PLAYER: 1 FRAME: 2 BALL: 2
55
+
56
+ O O O O
57
+ O O O
58
+ O O
59
+ O
60
+ SPARE!!!!
61
+
62
+ TYPE ROLL TO GET THE BALL GOING.
63
+ ? R
64
+ PLAYER: 1 FRAME: 3 BALL: 1
65
+
66
+ + O O O
67
+ + O +
68
+ O O
69
+ +
70
+ ROLL YOUR 2ND BALL
71
+
72
+ TYPE ROLL TO GET THE BALL GOING.
73
+ ? R
74
+ PLAYER: 1 FRAME: 3 BALL: 2
75
+
76
+ O O O O
77
+ + O +
78
+ O O
79
+ O
80
+ ERROR!!!
81
+
82
+ TYPE ROLL TO GET THE BALL GOING.
83
+ ? R
84
+ PLAYER: 1 FRAME: 4 BALL: 1
85
+
86
+ O O O O
87
+ + + +
88
+ + O
89
+ O
90
+ ROLL YOUR 2ND BALL
91
+
92
+ TYPE ROLL TO GET THE BALL GOING.
93
+ ? R
94
+ PLAYER: 1 FRAME: 4 BALL: 2
95
+
96
+ O O O O
97
+ O O +
98
+ + O
99
+ O
100
+ ERROR!!!
101
+
102
+ TYPE ROLL TO GET THE BALL GOING.
103
+ ? R
104
+ PLAYER: 1 FRAME: 5 BALL: 1
105
+
106
+ + + O O
107
+ O O +
108
+ O +
109
+ O
110
+ ROLL YOUR 2ND BALL
111
+
112
+ TYPE ROLL TO GET THE BALL GOING.
113
+ ? R
114
+ PLAYER: 1 FRAME: 5 BALL: 2
115
+
116
+ + O O O
117
+ O O O
118
+ O +
119
+ O
120
+ ERROR!!!
121
+
122
+ TYPE ROLL TO GET THE BALL GOING.
123
+ ? R
124
+ PLAYER: 1 FRAME: 6 BALL: 1
125
+
126
+ O O + O
127
+ + O O
128
+ O O
129
+ +
130
+ ROLL YOUR 2ND BALL
131
+
132
+ TYPE ROLL TO GET THE BALL GOING.
133
+ ? R
134
+ PLAYER: 1 FRAME: 6 BALL: 2
135
+
136
+ O O O O
137
+ O O O
138
+ O O
139
+ O
140
+ SPARE!!!!
141
+
142
+ TYPE ROLL TO GET THE BALL GOING.
143
+ ? R
144
+ PLAYER: 1 FRAME: 7 BALL: 1
145
+
146
+ O O + O
147
+ O O O
148
+ + O
149
+ O
150
+ ROLL YOUR 2ND BALL
151
+
152
+ TYPE ROLL TO GET THE BALL GOING.
153
+ ? R
154
+ PLAYER: 1 FRAME: 7 BALL: 2
155
+
156
+ O O O O
157
+ O O O
158
+ O O
159
+ O
160
+ SPARE!!!!
161
+
162
+ TYPE ROLL TO GET THE BALL GOING.
163
+ ? R
164
+ PLAYER: 1 FRAME: 8 BALL: 1
165
+
166
+ O O + O
167
+ + O O
168
+ O O
169
+ +
170
+ ROLL YOUR 2ND BALL
171
+
172
+ TYPE ROLL TO GET THE BALL GOING.
173
+ ? R
174
+ PLAYER: 1 FRAME: 8 BALL: 2
175
+
176
+ O O O O
177
+ O O O
178
+ O O
179
+ O
180
+ SPARE!!!!
181
+
182
+ TYPE ROLL TO GET THE BALL GOING.
183
+ ? R
184
+ PLAYER: 1 FRAME: 9 BALL: 1
185
+
186
+ + O O O
187
+ O O O
188
+ O +
189
+ O
190
+ ROLL YOUR 2ND BALL
191
+
192
+ TYPE ROLL TO GET THE BALL GOING.
193
+ ? R
194
+ PLAYER: 1 FRAME: 9 BALL: 2
195
+
196
+ + O O O
197
+ O O O
198
+ O O
199
+ O
200
+ ERROR!!!
201
+
202
+ TYPE ROLL TO GET THE BALL GOING.
203
+ ? R
204
+ PLAYER: 1 FRAME: 10 BALL: 1
205
+
206
+ O O O +
207
+ + O +
208
+ + +
209
+ O
210
+ ROLL YOUR 2ND BALL
211
+
212
+ TYPE ROLL TO GET THE BALL GOING.
213
+ ? R
214
+ PLAYER: 1 FRAME: 10 BALL: 2
215
+
216
+ O O O +
217
+ O O +
218
+ O O
219
+ O
220
+ ERROR!!!
221
+
222
+ FRAMES
223
+ 1 2 3 4 5 6 7 8 9 10
224
+ 8 8 6 6 6 7 8 7 8 5
225
+ 8 10 8 8 8 10 10 10 9 8
226
+ 1 2 1 1 1 2 2 2 1 1
227
+
228
+ DO YOU WANT ANOTHER GAME
229
+ ? NO
@@ -0,0 +1,142 @@
1
+ 1 PRINT TAB(33);"BOXING"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 4 PRINT "BOXING OLYMPIC STYLE (3 ROUNDS -- 2 OUT OF 3 WINS)"
5
+ 5 J=0
6
+ 6 L=0
7
+ 8 PRINT
8
+ 10 PRINT "WHAT IS YOUR OPPONENT'S NAME";
9
+ 20 INPUT J$
10
+ 30 PRINT "INPUT YOUR MAN'S NAME";
11
+ 40 INPUT L$
12
+ 50 PRINT "DIFFERENT PUNCHES ARE: (1) FULL SWING; (2) HOOK; (3) UPPERCUT; (4) JAB."
13
+ 60 PRINT "WHAT IS YOUR MANS BEST";
14
+ 64 INPUT B
15
+ 70 PRINT "WHAT IS HIS VULNERABILITY";
16
+ 80 INPUT D
17
+ 90 B1=INT(4*RND(1)+1)
18
+ 100 D1=INT(4*RND(1)+1)
19
+ 110 IF B1=D1 THEN 90
20
+ 120 PRINT J$;"'S ADVANTAGE IS";B1;"AND VULNERABILITY IS SECRET.":PRINT
21
+ 130 FOR R=1 TO 3
22
+ 140 IF J>= 2 THEN 1040
23
+ 150 IF L>=2 THEN 1060
24
+ 160 X=0
25
+ 170 Y=0
26
+ 180 PRINT "ROUND";R;"BEGINS..."
27
+ 185 FOR R1= 1 TO 7
28
+ 190 I=INT(10*RND(1)+1)
29
+ 200 IF I>5 THEN 600
30
+ 210 PRINT L$;"'S PUNCH";
31
+ 220 INPUT P
32
+ 221 IF P=B THEN 225
33
+ 222 GOTO 230
34
+ 225 X=X+2
35
+ 230 IF P=1 THEN 340
36
+ 240 IF P=2 THEN 450
37
+ 250 IF P=3 THEN 520
38
+ 270 PRINT L$;" JABS AT ";J$"'S HEAD ";
39
+ 271 IF D1=4 THEN 290
40
+ 275 C=INT(8*RND(1)+1)
41
+ 280 IF C<4 THEN 310
42
+ 290 X=X+3
43
+ 300 GOTO 950
44
+ 310 PRINT "IT'S BLOCKED."
45
+ 330 GOTO 950
46
+ 340 PRINT L$ " SWINGS AND ";
47
+ 341 IF D1=4 THEN 410
48
+ 345 X3=INT(30*RND(1)+1)
49
+ 350 IF X3<10 THEN 410
50
+ 360 PRINT "HE MISSES ";
51
+ 370 PRINT
52
+ 375 IF X=1 THEN 950
53
+ 380 PRINT
54
+ 390 PRINT
55
+ 400 GOTO 300
56
+ 410 PRINT "HE CONNECTS!"
57
+ 420 IF X>35 THEN 980
58
+ 425 X=X+15
59
+ 440 GOTO 300
60
+ 450 PRINT L$;" GIVES THE HOOK... ";
61
+ 455 IF D1=2 THEN 480
62
+ 460 H1=INT(2*RND(1)+1)
63
+ 470 IF H1=1 THEN 500
64
+ 475 PRINT "CONNECTS..."
65
+ 480 X=X+7
66
+ 490 GOTO 300
67
+ 500 PRINT "BUT IT'S BLOCKED!!!!!!!!!!!!!"
68
+ 510 GOTO 300
69
+ 520 PRINT L$ " TRIES AN UPPERCUT ";
70
+ 530 IF D1=3 THEN 570
71
+ 540 D5=INT(100*RND(1)+1)
72
+ 550 IF D5<51 THEN 570
73
+ 560 PRINT "AND IT'S BLOCKED (LUCKY BLOCK!)"
74
+ 565 GOTO 300
75
+ 570 PRINT "AND HE CONNECTS!"
76
+ 580 X=X+4
77
+ 590 GOTO 300
78
+ 600 J7=INT(4*RND(1)+1)
79
+ 601 IF J7 =B1 THEN 605
80
+ 602 GOTO 610
81
+ 605 Y=Y+2
82
+ 610 IF J7=1 THEN 720
83
+ 620 IF J7=2 THEN 810
84
+ 630 IF J7 =3 THEN 860
85
+ 640 PRINT J$;" JABS AND ";
86
+ 645 IF D=4 THEN 700
87
+ 650 Z4=INT(7*RND(1)+1)
88
+ 655 IF Z4>4 THEN 690
89
+ 660 PRINT "IT'S BLOCKED!"
90
+ 670 GOTO 300
91
+ 690 PRINT " BLOOD SPILLS !!!"
92
+ 700 Y=Y+5
93
+ 710 GOTO 300
94
+ 720 PRINT J$" TAKES A FULL SWING AND";
95
+ 730 IF D=1 THEN 770
96
+ 740 R6=INT(60*RND(1)+1)
97
+ 745 IF R6 <30 THEN 770
98
+ 750 PRINT " IT'S BLOCKED!"
99
+ 760 GOTO 300
100
+ 770 PRINT " POW!!!!! HE HITS HIM RIGHT IN THE FACE!"
101
+ 780 IF Y>35 THEN 1010
102
+ 790 Y=Y+15
103
+ 800 GOTO 300
104
+ 810 PRINT J$;" GETS ";L$;" IN THE JAW (OUCH!)"
105
+ 820 Y=Y+7
106
+ 830 PRINT "....AND AGAIN!"
107
+ 835 Y=Y+5
108
+ 840 IF Y>35 THEN 1010
109
+ 850 PRINT
110
+ 860 PRINT L$;" IS ATTACKED BY AN UPPERCUT (OH,OH)..."
111
+ 865 IF D=3 THEN 890
112
+ 870 Q4=INT(200*RND(1)+1)
113
+ 880 IF Q4>75 THEN 920
114
+ 890 PRINT "AND ";J$;" CONNECTS..."
115
+ 900 Y=Y+8
116
+ 910 GOTO 300
117
+ 920 PRINT " BLOCKS AND HITS ";J$;" WITH A HOOK."
118
+ 930 X=X+5
119
+ 940 GOTO 300
120
+ 950 NEXT R1
121
+ 951 IF X>Y THEN 955
122
+ 952 PRINT:PRINT J$" WINS ROUND" R
123
+ 953 J=J+1
124
+ 954 GOTO 960
125
+ 955 PRINT:PRINT L$" WINS ROUND"R
126
+ 956 L=L+1
127
+ 960 NEXT R
128
+ 961 IF J>= 2 THEN 1040
129
+ 962 IF L>=2 THEN 1060
130
+ 980 PRINT J$ " IS KNOCKED COLD AND " L$" IS THE WINNER AND CHAMP!";
131
+ 1000 GOTO 1080
132
+ 1010 PRINT L$ " IS KNOCKED COLD AND " J$" IS THE WINNER AND CHAMP!";
133
+ 1030 GOTO 1000
134
+ 1040 PRINT J$ " WINS (NICE GOING," J$;")."
135
+ 1050 GOTO 1000
136
+ 1060 PRINT L$ " AMAZINGLY WINS!!"
137
+ 1070 GOTO 1000
138
+ 1080 PRINT
139
+ 1085 PRINT
140
+ 1090 PRINT "AND NOW GOODBYE FROM THE OLYMPIC ARENA."
141
+ 1100 PRINT
142
+ 1110 END
@@ -0,0 +1,8 @@
1
+ ROCKEM SOCKEM ROBOT
2
+ GLASSJAW GARY
3
+ 4
4
+ 3
5
+ 4
6
+ 1
7
+ 2
8
+ 3
@@ -0,0 +1,47 @@
1
+ BOXING
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ BOXING OLYMPIC STYLE (3 ROUNDS -- 2 OUT OF 3 WINS)
7
+
8
+ WHAT IS YOUR OPPONENT'S NAME? ROCKEM SOCKEM ROBOT
9
+ INPUT YOUR MAN'S NAME? GLASSJAW GARY
10
+ DIFFERENT PUNCHES ARE: (1) FULL SWING; (2) HOOK; (3) UPPERCUT; (4) JAB.
11
+ WHAT IS YOUR MANS BEST? 4
12
+ WHAT IS HIS VULNERABILITY? 3
13
+ ROCKEM SOCKEM ROBOT'S ADVANTAGE IS 2 AND VULNERABILITY IS SECRET.
14
+
15
+ ROUND 1 BEGINS...
16
+ GLASSJAW GARY'S PUNCH? 4
17
+ GLASSJAW GARY JABS AT ROCKEM SOCKEM ROBOT'S HEAD ROCKEM SOCKEM ROBOT GETS GLASSJAW GARY IN THE JAW (OUCH!)
18
+ ....AND AGAIN!
19
+
20
+ GLASSJAW GARY IS ATTACKED BY AN UPPERCUT (OH,OH)...
21
+ AND ROCKEM SOCKEM ROBOT CONNECTS...
22
+ GLASSJAW GARY IS ATTACKED BY AN UPPERCUT (OH,OH)...
23
+ AND ROCKEM SOCKEM ROBOT CONNECTS...
24
+ ROCKEM SOCKEM ROBOT JABS AND IT'S BLOCKED!
25
+ GLASSJAW GARY'S PUNCH? 1
26
+ GLASSJAW GARY SWINGS AND HE CONNECTS!
27
+ ROCKEM SOCKEM ROBOT JABS AND BLOOD SPILLS !!!
28
+ ROCKEM SOCKEM ROBOT JABS AND IT'S BLOCKED!
29
+
30
+ ROCKEM SOCKEM ROBOT WINS ROUND 1
31
+ ROUND 2 BEGINS...
32
+ ROCKEM SOCKEM ROBOT TAKES A FULL SWING AND IT'S BLOCKED!
33
+ GLASSJAW GARY'S PUNCH? 2
34
+ GLASSJAW GARY GIVES THE HOOK... CONNECTS...
35
+ ROCKEM SOCKEM ROBOT GETS GLASSJAW GARY IN THE JAW (OUCH!)
36
+ ....AND AGAIN!
37
+
38
+ GLASSJAW GARY IS ATTACKED BY AN UPPERCUT (OH,OH)...
39
+ AND ROCKEM SOCKEM ROBOT CONNECTS...
40
+ GLASSJAW GARY'S PUNCH? 3
41
+ GLASSJAW GARY TRIES AN UPPERCUT AND HE CONNECTS!
42
+ ROCKEM SOCKEM ROBOT GETS GLASSJAW GARY IN THE JAW (OUCH!)
43
+ ....AND AGAIN!
44
+ GLASSJAW GARY IS KNOCKED COLD AND ROCKEM SOCKEM ROBOT IS THE WINNER AND CHAMP!
45
+
46
+ AND NOW GOODBYE FROM THE OLYMPIC ARENA.
47
+
@@ -0,0 +1,256 @@
1
+ 10 PRINT TAB(34);"BUG"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 40 REM
5
+ 50 A=0: B=0: H=0: L=0: N=0: P=0: Q=0: R=0: S=0: T=0: U=0: V=0: Y=0
6
+ 60 PRINT "THE GAME BUG"
7
+ 70 PRINT "I HOPE YOU ENJOY THIS GAME."
8
+ 80 PRINT
9
+ 90 PRINT "DO YOU WANT INSTRUCTIONS";
10
+ 100 INPUT Z$
11
+ 110 IF Z$="NO" THEN 300
12
+ 120 PRINT "THE OBJECT OF BUG IS TO FINISH YOUR BUG BEFORE I FINISH"
13
+ 130 PRINT "MINE. EACH NUMBER STANDS FOR A PART OF THE BUG BODY."
14
+ 140 PRINT "I WILL ROLL THE DIE FOR YOU, TELL YOU WHAT I ROLLED FOR YOU"
15
+ 150 PRINT "WHAT THE NUMBER STANDS FOR, AND IF YOU CAN GET THE PART."
16
+ 160 PRINT "IF YOU CAN GET THE PART I WILL GIVE IT TO YOU."
17
+ 170 PRINT "THE SAME WILL HAPPEN ON MY TURN."
18
+ 180 PRINT "IF THERE IS A CHANGE IN EITHER BUG I WILL GIVE YOU THE"
19
+ 190 PRINT "OPTION OF SEEING THE PICTURES OF THE BUGS."
20
+ 200 PRINT "THE NUMBERS STAND FOR PARTS AS FOLLOWS:"
21
+ 210 PRINT "NUMBER","PART","NUMBER OF PART NEEDED"
22
+ 220 PRINT "1","BODY","1"
23
+ 230 PRINT "2","NECK","1"
24
+ 240 PRINT "3","HEAD","1"
25
+ 250 PRINT "4","FEELERS","2"
26
+ 260 PRINT "5","TAIL","1"
27
+ 270 PRINT "6","LEGS","6"
28
+ 280 PRINT
29
+ 290 PRINT
30
+ 300 IF Y>0 THEN 2480
31
+ 310 Z=INT(6*RND(1)+1)
32
+ 320 C=1
33
+ 330 PRINT "YOU ROLLED A";Z
34
+ 340 ON Z GOTO 350,430,540,650,760,870
35
+ 350 PRINT "1=BODY"
36
+ 360 IF B=1 THEN 410
37
+ 370 PRINT "YOU NOW HAVE A BODY."
38
+ 380 B=1
39
+ 390 C=0
40
+ 400 GOTO 970
41
+ 410 PRINT "YOU DO NOT NEED A BODY."
42
+ 420 GOTO 970
43
+ 430 PRINT "2=NECK"
44
+ 440 IF N=1 THEN 500
45
+ 450 IF B=0 THEN 520
46
+ 460 PRINT "YOU NOW HAVE A NECK."
47
+ 470 N=1
48
+ 480 C=0
49
+ 490 GOTO 970
50
+ 500 PRINT "YOU DO NOT NEED A NECK."
51
+ 510 GOTO 970
52
+ 520 PRINT "YOU DO NOT HAVE A BODY."
53
+ 530 GOTO 970
54
+ 540 PRINT "3=HEAD"
55
+ 550 IF N=0 THEN 610
56
+ 560 IF H=1 THEN 630
57
+ 570 PRINT "YOU NEEDED A HEAD."
58
+ 580 H=1
59
+ 590 C=0
60
+ 600 GOTO 970
61
+ 610 PRINT "YOU DO NOT HAVE A NECK."
62
+ 620 GOTO 970
63
+ 630 PRINT "YOU HAVE A HEAD."
64
+ 640 GOTO 970
65
+ 650 PRINT "4=FEELERS"
66
+ 660 IF H=0 THEN 740
67
+ 670 IF A=2 THEN 720
68
+ 680 PRINT "I NOW GIVE YOU A FEELER."
69
+ 690 A=A+1
70
+ 700 C=0
71
+ 710 GOTO 970
72
+ 720 PRINT "YOU HAVE TWO FEELERS ALREADY."
73
+ 730 GOTO 970
74
+ 740 PRINT "YOU DO NOT HAVE A HEAD."
75
+ 750 GOTO 970
76
+ 760 PRINT "5=TAIL"
77
+ 770 IF B=0 THEN 830
78
+ 780 IF T=1 THEN 850
79
+ 790 PRINT "I NOW GIVE YOU A TAIL."
80
+ 800 T=T+1
81
+ 810 C=0
82
+ 820 GOTO 970
83
+ 830 PRINT "YOU DO NOT HAVE A BODY."
84
+ 840 GOTO 970
85
+ 850 PRINT "YOU ALREADY HAVE A TAIL."
86
+ 860 GOTO 970
87
+ 870 PRINT "6=LEG"
88
+ 880 IF L=6 THEN 940
89
+ 890 IF B=0 THEN 960
90
+ 900 L=L+1
91
+ 910 C=0
92
+ 920 PRINT "YOU NOW HAVE";L;"LEGS."
93
+ 930 GOTO 970
94
+ 940 PRINT "YOU HAVE 6 FEET ALREADY."
95
+ 950 GOTO 970
96
+ 960 PRINT "YOU DO NOT HAVE A BODY."
97
+ 970 X=INT(6*RND(1)+1)
98
+ 971 PRINT
99
+ 975 FOR DELAY=1 TO 2000:NEXT DELAY
100
+ 980 PRINT "I ROLLED A";X
101
+ 990 ON X GOTO 1000,1080,1190,1300,1410,1520
102
+ 1000 PRINT "1=BODY"
103
+ 1010 IF P=1 THEN 1060
104
+ 1020 PRINT "I NOW HAVE A BODY."
105
+ 1030 C=0
106
+ 1040 P=1
107
+ 1050 GOTO 1630
108
+ 1060 PRINT "I DO NOT NEED A BODY."
109
+ 1070 GOTO 1630
110
+ 1080 PRINT "2=NECK"
111
+ 1090 IF Q=1 THEN 1150
112
+ 1100 IF P=0 THEN 1170
113
+ 1110 PRINT "I NOW HAVE A NECK."
114
+ 1120 Q=1
115
+ 1130 C=0
116
+ 1140 GOTO 1630
117
+ 1150 PRINT "I DO NOT NEED A NECK."
118
+ 1160 GOTO 1630
119
+ 1170 PRINT "I DO NOT HAVE A BODY."
120
+ 1180 GOTO 1630
121
+ 1190 PRINT "3=HEAD"
122
+ 1200 IF Q=0 THEN 1260
123
+ 1210 IF R=1 THEN 1280
124
+ 1220 PRINT "I NEEDED A HEAD."
125
+ 1230 R=1
126
+ 1240 C=0
127
+ 1250 GOTO 1630
128
+ 1260 PRINT "I DO NOT HAVE A NECK."
129
+ 1270 GOTO 1630
130
+ 1280 PRINT "I DO NOT NEED A HEAD."
131
+ 1290 GOTO 1630
132
+ 1300 PRINT "4=FEELERS"
133
+ 1310 IF R=0 THEN 1390
134
+ 1320 IF S=2 THEN 1370
135
+ 1330 PRINT "I GET A FEELER."
136
+ 1340 S=S+1
137
+ 1350 C=0
138
+ 1360 GOTO 1630
139
+ 1370 PRINT "I HAVE 2 FEELERS ALREADY."
140
+ 1380 GOTO 1630
141
+ 1390 PRINT "I DO NOT HAVE A HEAD."
142
+ 1400 GOTO 1630
143
+ 1410 PRINT "5=TAIL"
144
+ 1420 IF P=0 THEN 1480
145
+ 1430 IF U=1 THEN 1500
146
+ 1440 PRINT "I NOW HAVE A TAIL."
147
+ 1450 U=1
148
+ 1460 C=0
149
+ 1470 GOTO 1630
150
+ 1480 PRINT "I DO NOT HAVE A BODY."
151
+ 1490 GOTO 1630
152
+ 1500 PRINT "I DO NOT NEED A TAIL."
153
+ 1510 GOTO 1630
154
+ 1520 PRINT "6=LEGS"
155
+ 1530 IF V=6 THEN 1590
156
+ 1540 IF P=0 THEN 1610
157
+ 1550 V=V+1
158
+ 1560 C=0
159
+ 1570 PRINT "I NOW HAVE";V;"LEGS."
160
+ 1580 GOTO 1630
161
+ 1590 PRINT "I HAVE 6 FEET."
162
+ 1600 GOTO 1630
163
+ 1610 PRINT "I DO NOT HAVE A BODY."
164
+ 1620 GOTO 1630
165
+ 1630 IF A=2 AND T=1 AND L=6 THEN 1650
166
+ 1640 GOTO 1670
167
+ 1650 PRINT "YOUR BUG IS FINISHED."
168
+ 1660 Y=Y+1
169
+ 1670 IF S=2 AND P=1 AND V=6 THEN 1690
170
+ 1680 GOTO 1710
171
+ 1690 PRINT "MY BUG IS FINISHED."
172
+ 1700 Y=Y+2
173
+ 1710 IF C=1 THEN 300
174
+ 1720 PRINT "DO YOU WANT THE PICTURES";
175
+ 1730 INPUT Z$
176
+ 1740 IF Z$="NO" THEN 300
177
+ 1750 PRINT "*****YOUR BUG*****"
178
+ 1760 PRINT
179
+ 1770 PRINT
180
+ 1780 IF A=0 THEN 1860
181
+ 1790 FOR Z=1 TO 4
182
+ 1800 FOR X=1 TO A
183
+ 1810 PRINT TAB(10);
184
+ 1820 PRINT "A ";
185
+ 1830 NEXT X
186
+ 1840 PRINT
187
+ 1850 NEXT Z
188
+ 1860 IF H=0 THEN 1880
189
+ 1870 GOSUB 2470
190
+ 1880 IF N=0 THEN 1920
191
+ 1890 FOR Z=1 TO 2
192
+ 1900 PRINT " N N"
193
+ 1910 NEXT Z
194
+ 1920 IF B=0 THEN 2000
195
+ 1930 PRINT " BBBBBBBBBBBB"
196
+ 1940 FOR Z=1 TO 2
197
+ 1950 PRINT " B B"
198
+ 1960 NEXT Z
199
+ 1970 IF T<>1 THEN 1990
200
+ 1980 PRINT "TTTTTB B"
201
+ 1990 PRINT " BBBBBBBBBBBB"
202
+ 2000 IF L=0 THEN 2080
203
+ 2010 FOR Z=1 TO 2
204
+ 2020 PRINT TAB(5);
205
+ 2030 FOR X=1 TO L
206
+ 2040 PRINT " L";
207
+ 2050 NEXT X
208
+ 2060 PRINT
209
+ 2070 NEXT Z
210
+ 2080 FOR Z=1 TO 4
211
+ 2090 PRINT
212
+ 2100 NEXT Z
213
+ 2110 PRINT "*****MY BUG*****"
214
+ 2120 PRINT
215
+ 2130 PRINT
216
+ 2140 PRINT
217
+ 2150 IF S=0 THEN 2230
218
+ 2160 FOR Z=1 TO 4
219
+ 2170 PRINT TAB(10);
220
+ 2180 FOR X=1 TO S
221
+ 2190 PRINT "F ";
222
+ 2200 NEXT X
223
+ 2210 PRINT
224
+ 2220 NEXT Z
225
+ 2230 IF R<>1 THEN 2250
226
+ 2240 GOSUB 2470
227
+ 2250 IF Q=0 THEN 2280
228
+ 2260 PRINT " N N"
229
+ 2270 PRINT " N N"
230
+ 2280 IF P=0 THEN 2360
231
+ 2290 PRINT " BBBBBBBBBBBB"
232
+ 2300 FOR Z=1 TO 2
233
+ 2310 PRINT " B B"
234
+ 2320 NEXT Z
235
+ 2330 IF U<>1 THEN 2350
236
+ 2340 PRINT "TTTTTB B"
237
+ 2350 PRINT " BBBBBBBBBBBB"
238
+ 2360 IF V=0 THEN 2450
239
+ 2370 FOR Z=1 TO 2
240
+ 2380 PRINT TAB(5);
241
+ 2390 FOR X=1 TO V
242
+ 2400 PRINT " L";
243
+ 2410 NEXT X
244
+ 2420 PRINT
245
+ 2430 NEXT Z
246
+ 2450 IF Y<>0 THEN 2540
247
+ 2460 GOTO 300
248
+ 2470 PRINT " HHHHHHH"
249
+ 2480 PRINT " H H"
250
+ 2490 PRINT " H O O H"
251
+ 2500 PRINT " H H"
252
+ 2510 PRINT " H V H"
253
+ 2520 PRINT " HHHHHHH"
254
+ 2530 RETURN
255
+ 2540 PRINT "I HOPE YOU ENJOYED THE GAME, PLAY IT AGAIN SOON!!"
256
+ 2550 END
@@ -0,0 +1,17 @@
1
+ YES
2
+ YES
3
+ YES
4
+ YES
5
+ Y
6
+ Y
7
+ Y
8
+ Y
9
+ Y
10
+ Y
11
+ Y
12
+ Y
13
+ Y
14
+ Y
15
+ Y
16
+ Y
17
+ Y