basic101 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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