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,144 @@
1
+ BLACK JACK
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ DO YOU WANT INSTRUCTIONS? YES
7
+ THIS IS THE GAME OF 21. AS MANY AS 7 PLAYERS MAY PLAY THE
8
+ GAME. ON EACH DEAL, BETS WILL BE ASKED FOR, AND THE
9
+ PLAYERS' BETS SHOULD BE TYPED IN. THE CARDS WILL THEN BE
10
+ DEALT, AND EACH PLAYER IN TURN PLAYS HIS HAND. THE
11
+ FIRST RESPONSE SHOULD BE EITHER 'D', INDICATING THAT THE
12
+ PLAYER IS DOUBLING DOWN, 'S', INDICATING THAT HE IS
13
+ STANDING, 'H', INDICATING HE WANTS ANOTHER CARD, OR '/',
14
+ INDICATING THAT HE WANTS TO SPLIT HIS CARDS. AFTER THE
15
+ INITIAL RESPONSE, ALL FURTHER RESPONSES SHOULD BE 'S' OR
16
+ 'H', UNLESS THE CARDS WERE SPLIT, IN WHICH CASE DOUBLING
17
+ DOWN IS AGAIN PERMITTED. IN ORDER TO COLLECT FOR
18
+ BLACKJACK, THE INITIAL RESPONSE SHOULD BE 'S'.
19
+ NUMBER OF PLAYERS? 1
20
+
21
+ RESHUFFLING
22
+ BETS:
23
+ # 1 ? 10
24
+ PLAYER 1 DEALER
25
+ 4 10
26
+ 7
27
+
28
+ NO DEALER BLACKJACK.
29
+ PLAYER 1 ? H
30
+ RECEIVED A Q HIT? N
31
+ TYPE H, OR S, PLEASE? S
32
+ TOTAL IS 21
33
+ DEALER HAS A 2 CONCEALED FOR A TOTAL OF 12
34
+ DRAWS A Q ...BUSTED
35
+
36
+ PLAYER 1 WINS 10 TOTAL= 10
37
+ DEALER'S TOTAL=-10
38
+
39
+ BETS:
40
+ # 1 ? 20
41
+ PLAYER 1 DEALER
42
+ Q J
43
+ 2
44
+
45
+ NO DEALER BLACKJACK.
46
+ PLAYER 1 ? H
47
+ RECEIVED A 2 HIT? H
48
+ RECEIVED A 3 HIT? H
49
+ RECEIVED A 9 ...BUSTED
50
+ DEALER HAD A 3 CONCEALED.
51
+
52
+ PLAYER 1 LOSES 20 TOTAL=-10
53
+ DEALER'S TOTAL= 10
54
+
55
+ BETS:
56
+ # 1 ? 40
57
+ PLAYER 1 DEALER
58
+ 4 5
59
+ 5
60
+ PLAYER 1 ? H
61
+ RECEIVED A 3 HIT? S
62
+ TOTAL IS 12
63
+ DEALER HAS A 9 CONCEALED FOR A TOTAL OF 14
64
+ DRAWS 9 ...BUSTED
65
+
66
+ PLAYER 1 WINS 40 TOTAL= 30
67
+ DEALER'S TOTAL=-30
68
+
69
+ BETS:
70
+ # 1 ? 50
71
+ PLAYER 1 DEALER
72
+ J 2
73
+ 3
74
+ PLAYER 1 ? S
75
+ TOTAL IS 13
76
+ DEALER HAS A 4 CONCEALED FOR A TOTAL OF 6
77
+ DRAWS 6 7 ---TOTAL IS 19
78
+
79
+
80
+ PLAYER 1 LOSES 50 TOTAL=-20
81
+ DEALER'S TOTAL= 20
82
+
83
+ BETS:
84
+ # 1 ? 60
85
+ PLAYER 1 DEALER
86
+ 5 10
87
+ 10
88
+
89
+ NO DEALER BLACKJACK.
90
+ PLAYER 1 ? H
91
+ RECEIVED A 7 ...BUSTED
92
+ DEALER HAD A 4 CONCEALED.
93
+
94
+ PLAYER 1 LOSES 60 TOTAL=-80
95
+ DEALER'S TOTAL= 80
96
+
97
+ BETS:
98
+ # 1 ? 70
99
+ PLAYER 1 DEALER
100
+ 8 K
101
+ K
102
+
103
+ NO DEALER BLACKJACK.
104
+ PLAYER 1 ? S
105
+ TOTAL IS 18
106
+ DEALER HAS AN 8 CONCEALED FOR A TOTAL OF 18
107
+
108
+
109
+ PLAYER 1 PUSHES TOTAL=-80
110
+ DEALER'S TOTAL= 80
111
+
112
+ BETS:
113
+ # 1 ? 10
114
+ PLAYER 1 DEALER
115
+ A A
116
+ A
117
+ ANY INSURANCE? NO
118
+
119
+ DEALER HAS A K IN THE HOLE FOR BLACKJACK
120
+
121
+ PLAYER 1 LOSES 10 TOTAL=-90
122
+ DEALER'S TOTAL= 90
123
+
124
+ BETS:
125
+ # 1 ? SPLIT
126
+ Not numeric: "SPLIT", try again
127
+ ? -1
128
+ BETS:
129
+ # 1 ? 10
130
+ PLAYER 1 DEALER
131
+ 6 6
132
+ 9
133
+ PLAYER 1 ? H
134
+ RECEIVED A J ...BUSTED
135
+ DEALER HAD A 5 CONCEALED.
136
+
137
+ PLAYER 1 LOSES 10 TOTAL=-100
138
+ DEALER'S TOTAL= 100
139
+
140
+ BETS:
141
+ # 1 ?
142
+ Too few items, try again
143
+ ?
144
+ Error on line 1890: No more input
@@ -0,0 +1,93 @@
1
+ 10 PRINT TAB(33);"BOMBARDMENT"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 PRINT "YOU ARE ON A BATTLEFIELD WITH 4 PLATOONS AND YOU"
5
+ 110 PRINT "HAVE 25 OUTPOSTS AVAILABLE WHERE THEY MAY BE PLACED."
6
+ 120 PRINT "YOU CAN ONLY PLACE ONE PLATOON AT ANY ONE OUTPOST."
7
+ 130 PRINT "THE COMPUTER DOES THE SAME WITH ITS FOUR PLATOONS."
8
+ 135 PRINT
9
+ 140 PRINT "THE OBJECT OF THE GAME IS TO FIRE MISSLES AT THE"
10
+ 150 PRINT "OUTPOSTS OF THE COMPUTER. IT WILL DO THE SAME TO YOU."
11
+ 160 PRINT "THE ONE WHO DESTROYS ALL FOUR OF THE ENEMY'S PLATOONS"
12
+ 170 PRINT "FIRST IS THE WINNER."
13
+ 180 PRINT
14
+ 190 PRINT "GOOD LUCK... AND TELL US WHERE YOU WANT THE BODIES SENT!"
15
+ 200 PRINT
16
+ 210 PRINT "TEAR OFF MATRIX AND USE IT TO CHECK OFF THE NUMBERS."
17
+ 220 FOR R=1 TO 5: PRINT: NEXT R
18
+ 260 DIM M(100)
19
+ 270 FOR R=1 TO 5
20
+ 280 I=(R-1)*5+1
21
+ 290 PRINT I,I+1,I+2,I+3,I+4
22
+ 300 NEXT R
23
+ 350 FOR R=1 TO 10: PRINT: NEXT R
24
+ 380 C=INT(RND(1)*25)+1
25
+ 390 D=INT(RND(1)*25)+1
26
+ 400 E=INT(RND(1)*25)+1
27
+ 410 F=INT(RND(1)*25)+1
28
+ 420 IF C=D THEN 390
29
+ 430 IF C=E THEN 400
30
+ 440 IF C=F THEN 410
31
+ 450 IF D=E THEN 400
32
+ 460 IF D=F THEN 410
33
+ 470 IF E=F THEN 410
34
+ 480 PRINT "WHAT ARE YOUR FOUR POSITIONS";
35
+ 490 INPUT G,H,K,L
36
+ 495 PRINT
37
+ 500 PRINT "WHERE DO YOU WISH TO FIRE YOUR MISSLE";
38
+ 510 INPUT Y
39
+ 520 IF Y=C THEN 710
40
+ 530 IF Y=D THEN 710
41
+ 540 IF Y=E THEN 710
42
+ 550 IF Y=F THEN 710
43
+ 560 GOTO 630
44
+ 570 M=INT(RND(1)*25)+1
45
+ 575 GOTO 1160
46
+ 580 IF X=G THEN 920
47
+ 590 IF X=H THEN 920
48
+ 600 IF X=L THEN 920
49
+ 610 IF X=K THEN 920
50
+ 620 GOTO 670
51
+ 630 PRINT "HA, HA YOU MISSED. MY TURN NOW:"
52
+ 640 PRINT: PRINT: GOTO 570
53
+ 670 PRINT "I MISSED YOU, YOU DIRTY RAT. I PICKED";M". YOUR TURN:"
54
+ 680 PRINT: PRINT: GOTO 500
55
+ 710 Q=Q+1
56
+ 720 IF Q=4 THEN 890
57
+ 730 PRINT "YOU GOT ONE OF MY OUTPOSTS!"
58
+ 740 IF Q=1 THEN 770
59
+ 750 IF Q=2 THEN 810
60
+ 760 IF Q=3 THEN 850
61
+ 770 PRINT "ONE DOWN, THREE TO GO."
62
+ 780 PRINT: PRINT: GOTO 570
63
+ 810 PRINT "TWO DOWN, TWO TO GO."
64
+ 820 PRINT: PRINT: GOTO 570
65
+ 850 PRINT "THREE DOWN, ONE TO GO."
66
+ 860 PRINT: PRINT: GOTO 570
67
+ 890 PRINT "YOU GOT ME, I'M GOING FAST. BUT I'LL GET YOU WHEN"
68
+ 900 PRINT "MY TRANSISTO&S RECUP%RA*E!"
69
+ 910 GOTO 1235
70
+ 920 Z=Z+1
71
+ 930 IF Z=4 THEN 1110
72
+ 940 PRINT "I GOT YOU. IT WON'T BE LONG NOW. POST";X;"WAS HIT."
73
+ 950 IF Z=1 THEN 990
74
+ 960 IF Z=2 THEN 1030
75
+ 970 IF Z=3 THEN 1070
76
+ 990 PRINT "YOU HAVE ONLY THREE OUTPOSTS LEFT."
77
+ 1000 PRINT: PRINT: GOTO 500
78
+ 1030 PRINT "YOU HAVE ONLY TWO OUTPOSTS LEFT."
79
+ 1040 PRINT: PRINT: GOTO 500
80
+ 1070 PRINT "YOU HAVE ONLY ONE OUTPOST LEFT."
81
+ 1080 PRINT: PRINT: GOTO 500
82
+ 1110 PRINT "YOU'RE DEAD. YOUR LAST OUTPOST WAS AT";X;". HA, HA, HA."
83
+ 1120 PRINT "BETTER LUCK NEXT TIME."
84
+ 1150 GOTO 1235
85
+ 1160 P=P+1
86
+ 1170 N=P-1
87
+ 1180 FOR T=1 TO N
88
+ 1190 IF M=M(T) THEN 570
89
+ 1200 NEXT T
90
+ 1210 X=M
91
+ 1220 M(P)=M
92
+ 1230 GOTO 580
93
+ 1235 END
@@ -0,0 +1,20 @@
1
+ 1,7,8,14
2
+ 1
3
+ 2
4
+ 3
5
+ 4
6
+ 5
7
+ 6
8
+ 7
9
+ 8
10
+ 9
11
+ 10
12
+ 11
13
+ 12
14
+ 13
15
+ 14
16
+ 15
17
+ 17
18
+ 18
19
+ 19
20
+ 16
@@ -0,0 +1,175 @@
1
+ BOMBARDMENT
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ YOU ARE ON A BATTLEFIELD WITH 4 PLATOONS AND YOU
7
+ HAVE 25 OUTPOSTS AVAILABLE WHERE THEY MAY BE PLACED.
8
+ YOU CAN ONLY PLACE ONE PLATOON AT ANY ONE OUTPOST.
9
+ THE COMPUTER DOES THE SAME WITH ITS FOUR PLATOONS.
10
+
11
+ THE OBJECT OF THE GAME IS TO FIRE MISSLES AT THE
12
+ OUTPOSTS OF THE COMPUTER. IT WILL DO THE SAME TO YOU.
13
+ THE ONE WHO DESTROYS ALL FOUR OF THE ENEMY'S PLATOONS
14
+ FIRST IS THE WINNER.
15
+
16
+ GOOD LUCK... AND TELL US WHERE YOU WANT THE BODIES SENT!
17
+
18
+ TEAR OFF MATRIX AND USE IT TO CHECK OFF THE NUMBERS.
19
+
20
+
21
+
22
+
23
+
24
+ 1 2 3 4 5
25
+ 6 7 8 9 10
26
+ 11 12 13 14 15
27
+ 16 17 18 19 20
28
+ 21 22 23 24 25
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ WHAT ARE YOUR FOUR POSITIONS? 1,7,8,14
40
+
41
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 1
42
+ HA, HA YOU MISSED. MY TURN NOW:
43
+
44
+
45
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 17 . YOUR TURN:
46
+
47
+
48
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 2
49
+ HA, HA YOU MISSED. MY TURN NOW:
50
+
51
+
52
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 11 . YOUR TURN:
53
+
54
+
55
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 3
56
+ HA, HA YOU MISSED. MY TURN NOW:
57
+
58
+
59
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 23 . YOUR TURN:
60
+
61
+
62
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 4
63
+ HA, HA YOU MISSED. MY TURN NOW:
64
+
65
+
66
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 25 . YOUR TURN:
67
+
68
+
69
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 5
70
+ HA, HA YOU MISSED. MY TURN NOW:
71
+
72
+
73
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 10 . YOUR TURN:
74
+
75
+
76
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 6
77
+ HA, HA YOU MISSED. MY TURN NOW:
78
+
79
+
80
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 20 . YOUR TURN:
81
+
82
+
83
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 7
84
+ HA, HA YOU MISSED. MY TURN NOW:
85
+
86
+
87
+ I GOT YOU. IT WON'T BE LONG NOW. POST 14 WAS HIT.
88
+ YOU HAVE ONLY THREE OUTPOSTS LEFT.
89
+
90
+
91
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 8
92
+ HA, HA YOU MISSED. MY TURN NOW:
93
+
94
+
95
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 15 . YOUR TURN:
96
+
97
+
98
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 9
99
+ HA, HA YOU MISSED. MY TURN NOW:
100
+
101
+
102
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 24 . YOUR TURN:
103
+
104
+
105
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 10
106
+ HA, HA YOU MISSED. MY TURN NOW:
107
+
108
+
109
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 2 . YOUR TURN:
110
+
111
+
112
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 11
113
+ YOU GOT ONE OF MY OUTPOSTS!
114
+ ONE DOWN, THREE TO GO.
115
+
116
+
117
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 3 . YOUR TURN:
118
+
119
+
120
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 12
121
+ HA, HA YOU MISSED. MY TURN NOW:
122
+
123
+
124
+ I GOT YOU. IT WON'T BE LONG NOW. POST 1 WAS HIT.
125
+ YOU HAVE ONLY TWO OUTPOSTS LEFT.
126
+
127
+
128
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 13
129
+ HA, HA YOU MISSED. MY TURN NOW:
130
+
131
+
132
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 21 . YOUR TURN:
133
+
134
+
135
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 14
136
+ YOU GOT ONE OF MY OUTPOSTS!
137
+ TWO DOWN, TWO TO GO.
138
+
139
+
140
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 22 . YOUR TURN:
141
+
142
+
143
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 15
144
+ HA, HA YOU MISSED. MY TURN NOW:
145
+
146
+
147
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 12 . YOUR TURN:
148
+
149
+
150
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 17
151
+ HA, HA YOU MISSED. MY TURN NOW:
152
+
153
+
154
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 16 . YOUR TURN:
155
+
156
+
157
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 18
158
+ YOU GOT ONE OF MY OUTPOSTS!
159
+ THREE DOWN, ONE TO GO.
160
+
161
+
162
+ I MISSED YOU, YOU DIRTY RAT. I PICKED 4 . YOUR TURN:
163
+
164
+
165
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 19
166
+ HA, HA YOU MISSED. MY TURN NOW:
167
+
168
+
169
+ I GOT YOU. IT WON'T BE LONG NOW. POST 7 WAS HIT.
170
+ YOU HAVE ONLY ONE OUTPOST LEFT.
171
+
172
+
173
+ WHERE DO YOU WISH TO FIRE YOUR MISSLE? 16
174
+ YOU GOT ME, I'M GOING FAST. BUT I'LL GET YOU WHEN
175
+ MY TRANSISTO&S RECUP%RA*E!
@@ -0,0 +1,53 @@
1
+ 10 PRINT TAB(33);"BOUNCE"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 90 DIM T(20)
5
+ 100 PRINT "THIS SIMULATION LETS YOU SPECIFY THE INITIAL VELOCITY"
6
+ 110 PRINT "OF A BALL THROWN STRAIGHT UP, AND THE COEFFICIENT OF"
7
+ 120 PRINT "ELASTICITY OF THE BALL. PLEASE USE A DECIMAL FRACTION"
8
+ 130 PRINT "COEFFICIENCY (LESS THAN 1)."
9
+ 131 PRINT
10
+ 132 PRINT "YOU ALSO SPECIFY THE TIME INCREMENT TO BE USED IN"
11
+ 133 PRINT "'STROBING' THE BALL'S FLIGHT (TRY .1 INITIALLY)."
12
+ 134 PRINT
13
+ 135 INPUT "TIME INCREMENT (SEC)";S2
14
+ 140 PRINT
15
+ 150 INPUT "VELOCITY (FPS)";V
16
+ 160 PRINT
17
+ 170 INPUT "COEFFICIENT";C
18
+ 180 PRINT
19
+ 182 PRINT "FEET"
20
+ 184 PRINT
21
+ 186 S1=INT(70/(V/(16*S2)))
22
+ 190 FOR I=1 TO S1
23
+ 200 T(I)=V*C^(I-1)/16
24
+ 210 NEXT I
25
+ 220 FOR H=INT(-16*(V/32)^2+V^2/32+.5) TO 0 STEP -.5
26
+ 221 IF INT(H)<>H THEN 225
27
+ 222 PRINT H;
28
+ 225 L=0
29
+ 230 FOR I=1 TO S1
30
+ 240 FOR T=0 TO T(I) STEP S2
31
+ 245 L=L+S2
32
+ 250 IF ABS(H-(.5*(-32)*T^2+V*C^(I-1)*T))>.25 THEN 270
33
+ 260 PRINT TAB(L/S2);"0";
34
+ 270 NEXT T
35
+ 275 T=T(I+1)/2
36
+ 276 IF -16*T^2+V*C^(I-1)*T<H THEN 290
37
+ 280 NEXT I
38
+ 290 PRINT
39
+ 300 NEXT H
40
+ 310 PRINT TAB(1);
41
+ 320 FOR I=1 TO INT(L+1)/S2+1
42
+ 330 PRINT ".";
43
+ 340 NEXT I
44
+ 350 PRINT
45
+ 355 PRINT " 0";
46
+ 360 FOR I=1 TO INT(L+.9995)
47
+ 380 PRINT TAB(INT(I/S2));I;
48
+ 390 NEXT I
49
+ 400 PRINT
50
+ 410 PRINT TAB(INT(L+1)/(2*S2)-2);"SECONDS"
51
+ 420 PRINT
52
+ 430 GOTO 135
53
+ 440 END
@@ -0,0 +1,15 @@
1
+ BOUNCE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS SIMULATION LETS YOU SPECIFY THE INITIAL VELOCITY
7
+ OF A BALL THROWN STRAIGHT UP, AND THE COEFFICIENT OF
8
+ ELASTICITY OF THE BALL. PLEASE USE A DECIMAL FRACTION
9
+ COEFFICIENCY (LESS THAN 1).
10
+
11
+ YOU ALSO SPECIFY THE TIME INCREMENT TO BE USED IN
12
+ 'STROBING' THE BALL'S FLIGHT (TRY .1 INITIALLY).
13
+
14
+ TIME INCREMENT (SEC)?
15
+ Error on line 135: No more input
@@ -0,0 +1,101 @@
1
+ 10 PRINT TAB(34);"BOWL"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 270 DIM C(15),A(100,6)
5
+ 360 PRINT "WELCOME TO THE ALLEY"
6
+ 450 PRINT "BRING YOUR FRIENDS"
7
+ 540 PRINT "OKAY LET'S FIRST GET ACQUAINTED"
8
+ 630 PRINT ""
9
+ 720 PRINT "THE INSTRUCTIONS (Y/N)"
10
+ 810 INPUT Z$
11
+ 900 IF Z$="Y" THEN 990
12
+ 960 IF Z$="N" THEN 1530
13
+ 990 PRINT "THE GAME OF BOWLING TAKES MIND AND SKILL.DURING THE GAME"
14
+ 1080 PRINT "THE COMPUTER WILL KEEP SCORE.YOU MAY COMPETE WITH"
15
+ 1170 PRINT "OTHER PLAYERS[UP TO FOUR].YOU WILL BE PLAYING TEN FRAMES"
16
+ 1260 PRINT "ON THE PIN DIAGRAM 'O' MEANS THE PIN IS DOWN...'+' MEANS THE"
17
+ 1350 PRINT "PIN IS STANDING.AFTER THE GAME THE COMPUTER WILL SHOW YOUR"
18
+ 1440 PRINT "SCORES ."
19
+ 1530 PRINT "FIRST OF ALL...HOW MANY ARE PLAYING";
20
+ 1620 INPUT R
21
+ 1710 PRINT
22
+ 1800 PRINT "VERY GOOD..."
23
+ 1890 FOR I=1 TO 100: FOR J=1 TO 6: A(I,J)=0: NEXT J: NEXT I
24
+ 1980 F=1
25
+ 2070 FOR P=1 TO R
26
+ 2160 M=0
27
+ 2250 B=1
28
+ 2340 M=0: Q=0
29
+ 2430 FOR I=1 TO 15: C(I)=0: NEXT I
30
+ 2520 REM ARK BALL GENERATOR USING MOD '15' SYSTEM
31
+ 2610 PRINT "TYPE ROLL TO GET THE BALL GOING."
32
+ 2700 INPUT N$
33
+ 2790 K=0: D=0
34
+ 2880 FOR I=1 TO 20
35
+ 2970 X=INT(RND(1)*100)
36
+ 3060 FOR J=1 TO 10
37
+ 3150 IF X<15*J THEN 3330
38
+ 3240 NEXT J
39
+ 3330 C(15*J-X)=1
40
+ 3420 NEXT I
41
+ 3510 REM ARK PIN DIAGRAM
42
+ 3600 PRINT "PLAYER:"P;"FRAME:";F"BALL:"B
43
+ 3690 FOR I=0 TO 3
44
+ 3780 PRINT
45
+ 3870 FOR J=1 TO 4-I
46
+ 3960 K=K+1
47
+ 4050 IF C(K)=1 THEN 4320
48
+ 4140 PRINT TAB(I);"+ ";
49
+ 4230 GOTO 4410
50
+ 4320 PRINT TAB(I);"O ";
51
+ 4410 NEXT J
52
+ 4500 NEXT I
53
+ 4590 PRINT ""
54
+ 4680 REM ARK ROLL ANALYSIS
55
+ 4770 FOR I=1 TO 10
56
+ 4860 D=D+C(I)
57
+ 4950 NEXT I
58
+ 5040 IF D-M <> 0 THEN 5220
59
+ 5130 PRINT "GUTTER!!"
60
+ 5220 IF B<>1 OR D<>10 THEN 5490
61
+ 5310 PRINT "STRIKE!!!!!"
62
+ 5400 Q=3
63
+ 5490 IF B<>2 OR D<>10 THEN 5760
64
+ 5580 PRINT "SPARE!!!!"
65
+ 5670 Q=2
66
+ 5760 IF B<>2 OR D>=10 THEN 6030
67
+ 5850 PRINT "ERROR!!!"
68
+ 5940 Q=1
69
+ 6030 IF B<>1 OR D>=10 THEN 6210
70
+ 6120 PRINT "ROLL YOUR 2ND BALL"
71
+ 6210 REM ARK STORAGE OF THE SCORES
72
+ 6300 PRINT
73
+ 6390 A(F*P,B)=D
74
+ 6480 IF B=2 THEN 7020
75
+ 6570 B=2
76
+ 6660 M=D
77
+ 6750 IF Q=3 THEN 6210
78
+ 6840 A(F*P,B)=D-M
79
+ 6930 IF Q=0 THEN 2520
80
+ 7020 A(F*P,3)=Q
81
+ 7110 NEXT P
82
+ 7200 F=F+1
83
+ 7290 IF F<11 THEN 2070
84
+ 7295 PRINT "FRAMES"
85
+ 7380 FOR I=1 TO 10
86
+ 7470 PRINT I;
87
+ 7560 NEXT I
88
+ 7650 PRINT
89
+ 7740 FOR P=1 TO R
90
+ 7830 FOR I=1 TO 3
91
+ 7920 FOR J=1 TO 10
92
+ 8010 PRINT A(J*P,I);
93
+ 8100 NEXT J
94
+ 8105 PRINT
95
+ 8190 NEXT I
96
+ 8280 PRINT
97
+ 8370 NEXT P
98
+ 8460 PRINT "DO YOU WANT ANOTHER GAME"
99
+ 8550 INPUT A$
100
+ 8640 IF LEFT$(A$,1)="Y" THEN 2610
101
+ 8730 END
@@ -0,0 +1,23 @@
1
+ Y
2
+ 1
3
+ ROLL
4
+ R
5
+ R
6
+ R
7
+ R
8
+ R
9
+ R
10
+ R
11
+ R
12
+ R
13
+ R
14
+ R
15
+ R
16
+ R
17
+ R
18
+ R
19
+ R
20
+ R
21
+ R
22
+ R
23
+ NO