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,149 @@
1
+ ROCKET
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ LUNAR LANDING SIMULATION
7
+ ----- ------- ----------
8
+
9
+ DO YOU WANT INSTRUCTIONS (YES OR NO)? YES
10
+
11
+ YOU ARE LANDING ON THE MOON AND AND HAVE TAKEN OVER MANUAL
12
+ CONTROL 1000 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A DOWN-
13
+ WARD VELOCITY OF 50 FEET/SEC. 150 UNITS OF FUEL REMAIN.
14
+
15
+ HERE ARE THE RULES THAT GOVERN YOUR APOLLO SPACE-CRAFT:
16
+
17
+ (1) AFTER EACH SECOND THE HEIGHT, VELOCITY, AND REMAINING FUEL
18
+ WILL BE REPORTED VIA DIGBY YOUR ON-BOARD COMPUTER.
19
+ (2) AFTER THE REPORT A '?' WILL APPEAR. ENTER THE NUMBER
20
+ OF UNITS OF FUEL YOU WISH TO BURN DURING THE NEXT
21
+ SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT BY
22
+ 1 FOOT/SEC.
23
+ (3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FEET/SEC/SEC
24
+ OR 30 UNITS OF FUEL PER SECOND.
25
+ (4) WHEN YOU CONTACT THE LUNAR SURFACE. YOUR DESCENT ENGINE
26
+ WILL AUTOMATICALLY SHUT DOWN AND YOU WILL BE GIVEN A
27
+ REPORT OF YOUR LANDING SPEED AND REMAINING FUEL.
28
+ (5) IF YOU RUN OUT OF FUEL THE '?' WILL NO LONGER APPEAR
29
+ BUT YOUR SECOND BY SECOND REPORT WILL CONTINUE UNTIL
30
+ YOU CONTACT THE LUNAR SURFACE.
31
+
32
+ BEGINNING LANDING PROCEDURE..........
33
+
34
+ G O O D L U C K ! ! !
35
+
36
+
37
+ SEC FEET SPEED FUEL PLOT OF DISTANCE
38
+
39
+ 0 1000 50 150 I *
40
+ ? 0
41
+ 1 947.5 55 150 I *
42
+ ? 0
43
+ 2 890 60 150 I *
44
+ ? 0
45
+ 3 827.5 65 150 I *
46
+ ? 0
47
+ 4 760 70 150 I *
48
+ ? 0
49
+ 5 687.5 75 150 I *
50
+ ? 0
51
+ 6 610 80 150 I *
52
+ ? 30
53
+ 7 542.5 55 120 I*
54
+ ? 5
55
+ 8 487.5 55 115 I*
56
+ ? 5
57
+ 9 432.5 55 110 I*
58
+ ? 5
59
+ 10 377.5 55 105 I*
60
+ ? 5
61
+ 11 322.5 55 100 I*
62
+ ? 5
63
+ 12 267.5 55 95 I*
64
+ ? 5
65
+ 13 212.5 55 90 I*
66
+ ? 5
67
+ 14 157.5 55 85 I*
68
+ ? 5
69
+ 15 102.5 55 80 I*
70
+ ? 5
71
+ 16 47.5 55 75 I*
72
+ ? 5
73
+ ***** CONTACT *****
74
+ TOUCHDOWN AT 16.86364 SECONDS.
75
+ LANDING VELOCITY= 55 FEET/SEC.
76
+ 70 UNITS OF FUEL REMAINING.
77
+ ***** SORRY, BUT YOU BLEW IT!!!!
78
+ APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN.
79
+
80
+
81
+
82
+ ANOTHER MISSION? YES
83
+ BEGINNING LANDING PROCEDURE..........
84
+
85
+ G O O D L U C K ! ! !
86
+
87
+
88
+ SEC FEET SPEED FUEL PLOT OF DISTANCE
89
+
90
+ 0 1000 50 150 I *
91
+ ? 0
92
+ 1 947.5 55 150 I *
93
+ ? 0
94
+ 2 890 60 150 I *
95
+ ? 0
96
+ 3 827.5 65 150 I *
97
+ ? 0
98
+ 4 760 70 150 I *
99
+ ? 0
100
+ 5 687.5 75 150 I *
101
+ ? 0
102
+ 6 610 80 150 I *
103
+ ? 0
104
+ 7 527.5 85 150 I*
105
+ ? 0
106
+ 8 440 90 150 I*
107
+ ? 0
108
+ 9 347.5 95 150 I*
109
+ ? 30
110
+ 10 265 70 120 I*
111
+ ? 30
112
+ 11 207.5 45 90 I*
113
+ ? 20
114
+ 12 170 30 70 I*
115
+ ? 20
116
+ 13 147.5 15 50 I*
117
+ ? 5
118
+ 14 132.5 15 45 I*
119
+ ? 5
120
+ 15 117.5 15 40 I*
121
+ ? 5
122
+ 16 102.5 15 35 I*
123
+ ? 5
124
+ 17 87.5 15 30 I*
125
+ ? 5
126
+ 18 72.5 15 25 I*
127
+ ? 5
128
+ 19 57.5 15 20 I*
129
+ ? 10
130
+ 20 45 10 10 I*
131
+ ? 5
132
+ 21 35 10 5 I*
133
+ ? 5
134
+ **** OUT OF FUEL ****
135
+ 22 25 10 0 I *
136
+ 23 12.5 15 0 I*
137
+ ***** CONTACT *****
138
+ TOUCHDOWN AT 23.74166 SECONDS.
139
+ LANDING VELOCITY= 18.70829 FEET/SEC.
140
+ 0 UNITS OF FUEL REMAINING.
141
+ ***** SORRY, BUT YOU BLEW IT!!!!
142
+ APPROPRIATE CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN.
143
+
144
+
145
+
146
+ ANOTHER MISSION? NO
147
+
148
+ CONTROL OUT.
149
+
@@ -0,0 +1,33 @@
1
+ 10 PRINT TAB(21);"GAME OF ROCK, SCISSORS, PAPER"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 25 PRINT:PRINT:PRINT
4
+ 30 INPUT "HOW MANY GAMES";Q
5
+ 40 IF Q<11 THEN 60
6
+ 50 PRINT "SORRY, BUT WE AREN'T ALLOWED TO PLAY THAT MANY.": GOTO 30
7
+ 60 FOR G=1 TO Q
8
+ 70 PRINT: PRINT "GAME NUMBER";G
9
+ 80 X=INT(RND(1)*3+1)
10
+ 90 PRINT "3=ROCK...2=SCISSORS...1=PAPER"
11
+ 100 INPUT "1...2...3...WHAT'S YOUR CHOICE";K
12
+ 110 IF (K-1)*(K-2)*(K-3)<>0 THEN PRINT "INVALID.": GOTO 90
13
+ 120 PRINT "THIS IS MY CHOICE..."
14
+ 130 ON X GOTO 140,150,160
15
+ 140 PRINT "...PAPER": GOTO 170
16
+ 150 PRINT "...SCISSORS": GOTO 170
17
+ 160 PRINT "...ROCK"
18
+ 170 IF X=K THEN 250
19
+ 180 IF X>K THEN 230
20
+ 190 IF X=1 THEN 210
21
+ 200 PRINT "YOU WIN!!!":H=H+1: GOTO 260
22
+ 210 IF K<>3 THEN 200
23
+ 220 PRINT "WOW! I WIN!!!":C=C+1:GOTO 260
24
+ 230 IF K<>1 OR X<>3 THEN 220
25
+ 240 GOTO 200
26
+ 250 PRINT "TIE GAME. NO WINNER."
27
+ 260 NEXT G
28
+ 270 PRINT: PRINT "HERE IS THE FINAL GAME SCORE:"
29
+ 280 PRINT "I HAVE WON";C;"GAME(S)."
30
+ 290 PRINT "YOU HAVE WON";H;"GAME(S)."
31
+ 300 PRINT "AND";Q-(C+H);"GAME(S) ENDED IN A TIE."
32
+ 310 PRINT: PRINT "THANKS FOR PLAYING!!"
33
+ 320 END
@@ -0,0 +1,69 @@
1
+ GAME OF ROCK, SCISSORS, PAPER
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ HOW MANY GAMES? 8
7
+
8
+ GAME NUMBER 1
9
+ 3=ROCK...2=SCISSORS...1=PAPER
10
+ 1...2...3...WHAT'S YOUR CHOICE? 1
11
+ THIS IS MY CHOICE...
12
+ ...SCISSORS
13
+ WOW! I WIN!!!
14
+
15
+ GAME NUMBER 2
16
+ 3=ROCK...2=SCISSORS...1=PAPER
17
+ 1...2...3...WHAT'S YOUR CHOICE? 2
18
+ THIS IS MY CHOICE...
19
+ ...ROCK
20
+ WOW! I WIN!!!
21
+
22
+ GAME NUMBER 3
23
+ 3=ROCK...2=SCISSORS...1=PAPER
24
+ 1...2...3...WHAT'S YOUR CHOICE? 3
25
+ THIS IS MY CHOICE...
26
+ ...SCISSORS
27
+ YOU WIN!!!
28
+
29
+ GAME NUMBER 4
30
+ 3=ROCK...2=SCISSORS...1=PAPER
31
+ 1...2...3...WHAT'S YOUR CHOICE? 2
32
+ THIS IS MY CHOICE...
33
+ ...SCISSORS
34
+ TIE GAME. NO WINNER.
35
+
36
+ GAME NUMBER 5
37
+ 3=ROCK...2=SCISSORS...1=PAPER
38
+ 1...2...3...WHAT'S YOUR CHOICE? 1
39
+ THIS IS MY CHOICE...
40
+ ...SCISSORS
41
+ WOW! I WIN!!!
42
+
43
+ GAME NUMBER 6
44
+ 3=ROCK...2=SCISSORS...1=PAPER
45
+ 1...2...3...WHAT'S YOUR CHOICE? 2
46
+ THIS IS MY CHOICE...
47
+ ...SCISSORS
48
+ TIE GAME. NO WINNER.
49
+
50
+ GAME NUMBER 7
51
+ 3=ROCK...2=SCISSORS...1=PAPER
52
+ 1...2...3...WHAT'S YOUR CHOICE? 3
53
+ THIS IS MY CHOICE...
54
+ ...SCISSORS
55
+ YOU WIN!!!
56
+
57
+ GAME NUMBER 8
58
+ 3=ROCK...2=SCISSORS...1=PAPER
59
+ 1...2...3...WHAT'S YOUR CHOICE? 2
60
+ THIS IS MY CHOICE...
61
+ ...ROCK
62
+ WOW! I WIN!!!
63
+
64
+ HERE IS THE FINAL GAME SCORE:
65
+ I HAVE WON 4 GAME(S).
66
+ YOU HAVE WON 2 GAME(S).
67
+ AND 2 GAME(S) ENDED IN A TIE.
68
+
69
+ THANKS FOR PLAYING!!
@@ -0,0 +1,239 @@
1
+ 10 PRINT TAB(32);"ROULETTE"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 40 PRINT "ENTER THE CURRENT DATE (AS IN 'JANUARY 23, 1979') -";
5
+ 50 INPUT D$,E$
6
+ 1000 REM-ROULETTE
7
+ 1010 REM-DAVID JOSLIN
8
+ 1020 PRINT "WELCOME TO THE ROULETTE TABLE"
9
+ 1030 PRINT
10
+ 1040 PRINT "DO YOU WANT INSTRUCTIONS";
11
+ 1050 INPUT Y$
12
+ 1060 IF LEFT$(Y$,1)="N" THEN 1550
13
+ 1070 PRINT
14
+ 1080 PRINT "THIS IS THE BETTING LAYOUT"
15
+ 1090 PRINT " (*=RED)"
16
+ 1100 PRINT
17
+ 1110 PRINT " 1* 2 3*"
18
+ 1120 PRINT " 4 5* 6 "
19
+ 1130 PRINT " 7* 8 9*"
20
+ 1140 PRINT "10 11 12*"
21
+ 1150 PRINT "---------------"
22
+ 1160 PRINT "13 14* 15 "
23
+ 1170 PRINT "16* 17 18*"
24
+ 1180 PRINT "19* 20 21*"
25
+ 1190 PRINT "22 23* 24 "
26
+ 1200 PRINT "---------------"
27
+ 1210 PRINT "25* 26 27*"
28
+ 1220 PRINT "28 29 30*"
29
+ 1230 PRINT "31 32* 33 "
30
+ 1240 PRINT "34* 35 36*"
31
+ 1250 PRINT "---------------"
32
+ 1260 PRINT " 00 0 "
33
+ 1270 PRINT
34
+ 1280 PRINT "TYPES OF BETS"
35
+ 1290 PRINT
36
+ 1300 PRINT "THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET"
37
+ 1310 PRINT "ON THAT NUMBER."
38
+ 1320 PRINT "THESE PAY OFF 35:1"
39
+ 1330 PRINT
40
+ 1340 PRINT "THE 2:1 BETS ARE:"
41
+ 1350 PRINT " 37) 1-12 40) FIRST COLUMN"
42
+ 1360 PRINT " 38) 13-24 41) SECOND COLUMN"
43
+ 1370 PRINT " 39) 25-36 42) THIRD COLUMN"
44
+ 1380 PRINT
45
+ 1390 PRINT "THE EVEN MONEY BETS ARE:"
46
+ 1400 PRINT " 43) 1-18 46) ODD"
47
+ 1410 PRINT " 44) 19-36 47) RED"
48
+ 1420 PRINT " 45) EVEN 48) BLACK"
49
+ 1430 PRINT
50
+ 1440 PRINT " 49)0 AND 50)00 PAY OFF 35:1"
51
+ 1450 PRINT " NOTE: 0 AND 00 DO NOT COUNT UNDER ANY"
52
+ 1460 PRINT " BETS EXCEPT THEIR OWN."
53
+ 1470 PRINT
54
+ 1480 PRINT "WHEN I ASK FOR EACH BET, TYPE THE NUMBER"
55
+ 1490 PRINT "AND THE AMOUNT, SEPARATED BY A COMMA."
56
+ 1500 PRINT "FOR EXAMPLE: TO BET $500 ON BLACK, TYPE 48,500"
57
+ 1510 PRINT "WHEN I ASK FOR A BET."
58
+ 1520 PRINT
59
+ 1530 PRINT "THE MINIMUM BET IS $5, THE MAXIMUM IS $500."
60
+ 1540 PRINT
61
+ 1550 REM-PROGRAM BEGINS HERE
62
+ 1560 REM-TYPE OF BET(NUMBER) ODDS
63
+ 1570 REM DON'T NEED TO DIMENSION STRINGS
64
+ 1580 DIM B(100),C(100),T(100),X(38)
65
+ 1590 DIM A(50)
66
+ 1600 FOR I=1 TO 38: X(I)=0: NEXT I: REM MAT X=ZER
67
+ 1610 P=1000
68
+ 1620 D=100000.
69
+ 1630 PRINT "HOW MANY BETS";
70
+ 1640 INPUT Y
71
+ 1650 IF Y<1 OR Y<>INT(Y) THEN 1630
72
+ 1660 FOR I=1 TO 50: A(I)=0: NEXT I: REM MAT A=ZER
73
+ 1670 FOR C=1 TO Y
74
+ 1680 PRINT "NUMBER";C;
75
+ 1690 INPUT X,Z
76
+ 1700 B(C)=Z
77
+ 1710 T(C)=X
78
+ 1720 IF X<1 OR X>50 OR X<>INT(X) THEN 1680
79
+ 1730 IF Z<1 OR Z<>INT(Z) THEN 1680
80
+ 1740 IF Z<5 OR Z>500 THEN 1680
81
+ 1750 IF A(X)=0 THEN 1780
82
+ 1760 PRINT "YOU MADE THAT BET ONCE ALREADY,DUM-DUM"
83
+ 1770 GOTO 1680
84
+ 1780 A(X)=1
85
+ 1790 NEXT C
86
+ 1800 PRINT "SPINNING"
87
+ 1810 PRINT
88
+ 1820 PRINT
89
+ 1830 S=INT(RND(1)*100)
90
+ 1840 IF S=0 OR S>38 THEN 1830
91
+ 1850 X(S)=X(S)+1
92
+ 1860 IF S<37 THEN 1920
93
+ 1870 IF S=37 THEN 1900
94
+ 1880 PRINT "00"
95
+ 1890 GOTO 2020
96
+ 1900 PRINT "0"
97
+ 1910 GOTO 2020
98
+ 1920 RESTORE
99
+ 1930 FOR I1=1 TO 18
100
+ 1940 READ R
101
+ 1950 IF R=S THEN 2000
102
+ 1960 NEXT I1
103
+ 1970 A$="BLACK"
104
+ 1980 PRINT S;A$
105
+ 1990 GOTO 2020
106
+ 2000 A$="RED"
107
+ 2010 GOTO 1980
108
+ 2020 PRINT
109
+ 2030 FOR C=1 TO Y
110
+ 2040 IF T(C)<37 THEN 2710
111
+ 2050 ON T(C)-36 GOTO 2090,2190,2220,2250,2300,2350,2400,2470,2500
112
+ 2060 ON T(C)-45 GOTO 2530,2560,2630
113
+ 2070 GOTO 2710
114
+ 2080 STOP
115
+ 2090 REM 1-12(37) 2:1
116
+ 2100 IF S <= 12 THEN 2150
117
+ 2110 PRINT "YOU LOSE";B(C);"DOLLARS ON BET";C
118
+ 2120 D=D+B(C)
119
+ 2130 P=P-B(C)
120
+ 2140 GOTO 2180
121
+ 2150 PRINT "YOU WIN";B(C)*2;"DOLLARS ON BET"C
122
+ 2160 D=D-B(C)*2
123
+ 2170 P=P+B(C)*2
124
+ 2180 GOTO 2810
125
+ 2190 REM 13-24(38) 2:1
126
+ 2200 IF S>12 AND S<25 THEN 2150
127
+ 2210 GOTO 2110
128
+ 2220 REM 25-36(39) 2:1
129
+ 2230 IF S>24 AND S<37 THEN 2150
130
+ 2240 GOTO 2110
131
+ 2250 REM FIRST COLUMN(40) 2:1
132
+ 2260 FOR I=1 TO 34 STEP 3
133
+ 2270 IF S=I THEN 2150
134
+ 2280 NEXT I
135
+ 2290 GOTO 2110
136
+ 2300 REM SECOND COLUMN(41) 2:1
137
+ 2310 FOR I=2 TO 35 STEP 3
138
+ 2320 IF S=I THEN 2150
139
+ 2330 NEXT I
140
+ 2340 GOTO 2110
141
+ 2350 REM THIRD COLUMN(42) 2:1
142
+ 2360 FOR I=3 TO 36 STEP 3
143
+ 2370 IF S=I THEN 2150
144
+ 2380 NEXT I
145
+ 2390 GOTO 2110
146
+ 2400 REM 1-18(43) 1:1
147
+ 2410 IF S<19 THEN 2430
148
+ 2420 GOTO 2110
149
+ 2430 PRINT "YOU WIN";B(C);"DOLLARS ON BET";C
150
+ 2440 D=D-B(C)
151
+ 2450 P=P+B(C)
152
+ 2460 GOTO 2810
153
+ 2470 REM 19-36(44) 1:1
154
+ 2480 IF S<37 AND S>18 THEN 2430
155
+ 2490 GOTO 2110
156
+ 2500 REM EVEN(45) 1:1
157
+ 2510 IF S/2=INT(S/2) AND S<37 THEN 2430
158
+ 2520 GOTO 2110
159
+ 2530 REM ODD(46) 1:1
160
+ 2540 IF S/2<>INT(S/2) AND S<37 THEN 2430
161
+ 2550 GOTO 2110
162
+ 2560 REM RED(47) 1:1
163
+ 2570 RESTORE
164
+ 2580 FOR I=1 TO 18
165
+ 2590 READ R
166
+ 2600 IF S=R THEN 2430
167
+ 2610 NEXT I
168
+ 2620 GOTO 2110
169
+ 2630 REM BLACK(48) 1:1
170
+ 2640 RESTORE
171
+ 2650 FOR I=1 TO 18
172
+ 2660 READ R
173
+ 2670 IF S=R THEN 2110
174
+ 2680 NEXT I
175
+ 2690 IF S>36 THEN 2110
176
+ 2700 GOTO 2430
177
+ 2710 REM--1TO36,0,00(1-36,49,50)35:1
178
+ 2720 IF T(C)<49 THEN 2760
179
+ 2730 IF T(C)=49 AND S=37 THEN 2780
180
+ 2740 IF T(C)=50 AND S=38 THEN 2780
181
+ 2750 GOTO 2110
182
+ 2760 IF T(C)=S THEN 2780
183
+ 2770 GOTO 2110
184
+ 2780 PRINT "YOU WIN";B(C)*35;"DOLLARS ON BET";C
185
+ 2790 D=D-B(C)*35
186
+ 2800 P=P+B(C)*35
187
+ 2810 NEXT C
188
+ 2820 PRINT
189
+ 2830 PRINT "TOTALS:","ME","YOU"
190
+ 2840 PRINT " ",D,P
191
+ 2850 IF P>0 THEN 2880
192
+ 2860 PRINT "OOPS! YOU JUST SPENT YOUR LAST DOLLAR!"
193
+ 2870 GOTO 3190
194
+ 2880 IF D>0 THEN 2920
195
+ 2890 PRINT "YOU BROKE THE HOUSE!"
196
+ 2900 P=101000.
197
+ 2910 GOTO 2960
198
+ 2920 PRINT "AGAIN";
199
+ 2930 INPUT Y$
200
+ 2940 IF LEFT$(Y$,1)="Y" THEN 1630
201
+ 2950 DATA 1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36
202
+ 2960 IF P<1 THEN 3190
203
+ 2970 PRINT "TO WHOM SHALL I MAKE THE CHECK";
204
+ 2980 INPUT B$
205
+ 2990 PRINT
206
+ 3000 FOR I=1 TO 72: PRINT "-";: NEXT I: REM PRINT 72 DASHES
207
+ 3010 PRINT TAB(50);"CHECK NO. ";INT(RND(1)*100)
208
+ 3020 PRINT
209
+ 3030 GOSUB 3230
210
+ 3040 PRINT TAB(40);M$
211
+ 3050 PRINT
212
+ 3060 PRINT
213
+ 3070 PRINT "PAY TO THE ORDER OF-----";B$;"-----$ ";
214
+ 3080 PRINT P
215
+ 3090 PRINT
216
+ 3100 PRINT
217
+ 3110 PRINT TAB(10),"THE MEMORY BANK OF NEW YORK"
218
+ 3120 PRINT
219
+ 3130 PRINT TAB(40),"THE COMPUTER"
220
+ 3140 PRINT TAB(40)"----------X-----"
221
+ 3150 PRINT
222
+ 3160 FOR I=1 TO 62: PRINT "-";: NEXT I
223
+ 3170 PRINT "COME BACK SOON!"
224
+ 3180 GOTO 3210
225
+ 3190 PRINT "THANKS FOR YOUR MONEY."
226
+ 3200 PRINT "I'LL USE IT TO BUY A SOLID GOLD ROULETTE WHEEL"
227
+ 3210 PRINT
228
+ 3220 GOTO 3420
229
+ 3230 REM
230
+ 3240 REM THIS ROUTINE RETURNS THE CURRENT DATE IN M$
231
+ 3250 REM IF YOU HAVE SYSTEM FUNCTIONS TO HANDLE THIS
232
+ 3260 REM THEY CAN BE USED HERE. HOWEVER IN THIS
233
+ 3270 REM PROGRAM, WE JUST INPUT THE DATE AT THE START
234
+ 3280 REM THE GAME
235
+ 3290 REM
236
+ 3300 REM THE DATE IS RETURNED IN VARIABLE M$
237
+ 3310 M$=D$+", "+E$
238
+ 3320 RETURN
239
+ 3420 END
@@ -0,0 +1,9 @@
1
+ MARCH 1, 2014
2
+ YES
3
+ 1
4
+ 45,10
5
+ YES
6
+ 1
7
+ 47,10
8
+ NO
9
+ FRED FLINSTONE
@@ -0,0 +1,98 @@
1
+ ROULETTE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ ENTER THE CURRENT DATE (AS IN 'JANUARY 23, 1979') -? MARCH 1, 2014
7
+ WELCOME TO THE ROULETTE TABLE
8
+
9
+ DO YOU WANT INSTRUCTIONS? YES
10
+
11
+ THIS IS THE BETTING LAYOUT
12
+ (*=RED)
13
+
14
+ 1* 2 3*
15
+ 4 5* 6
16
+ 7* 8 9*
17
+ 10 11 12*
18
+ ---------------
19
+ 13 14* 15
20
+ 16* 17 18*
21
+ 19* 20 21*
22
+ 22 23* 24
23
+ ---------------
24
+ 25* 26 27*
25
+ 28 29 30*
26
+ 31 32* 33
27
+ 34* 35 36*
28
+ ---------------
29
+ 00 0
30
+
31
+ TYPES OF BETS
32
+
33
+ THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET
34
+ ON THAT NUMBER.
35
+ THESE PAY OFF 35:1
36
+
37
+ THE 2:1 BETS ARE:
38
+ 37) 1-12 40) FIRST COLUMN
39
+ 38) 13-24 41) SECOND COLUMN
40
+ 39) 25-36 42) THIRD COLUMN
41
+
42
+ THE EVEN MONEY BETS ARE:
43
+ 43) 1-18 46) ODD
44
+ 44) 19-36 47) RED
45
+ 45) EVEN 48) BLACK
46
+
47
+ 49)0 AND 50)00 PAY OFF 35:1
48
+ NOTE: 0 AND 00 DO NOT COUNT UNDER ANY
49
+ BETS EXCEPT THEIR OWN.
50
+
51
+ WHEN I ASK FOR EACH BET, TYPE THE NUMBER
52
+ AND THE AMOUNT, SEPARATED BY A COMMA.
53
+ FOR EXAMPLE: TO BET $500 ON BLACK, TYPE 48,500
54
+ WHEN I ASK FOR A BET.
55
+
56
+ THE MINIMUM BET IS $5, THE MAXIMUM IS $500.
57
+
58
+ HOW MANY BETS? 1
59
+ NUMBER 1 ? 45,10
60
+ SPINNING
61
+
62
+
63
+ 00
64
+
65
+ YOU LOSE 10 DOLLARS ON BET 1
66
+
67
+ TOTALS: ME YOU
68
+ 100010 990
69
+ AGAIN? YES
70
+ HOW MANY BETS? 1
71
+ NUMBER 1 ? 47,10
72
+ SPINNING
73
+
74
+
75
+ 7 RED
76
+
77
+ YOU WIN 10 DOLLARS ON BET 1
78
+
79
+ TOTALS: ME YOU
80
+ 100000 1000
81
+ AGAIN? NO
82
+ TO WHOM SHALL I MAKE THE CHECK? FRED FLINSTONE
83
+
84
+ ------------------------------------------------------------------------CHECK NO. 8
85
+
86
+ MARCH 1, 2014
87
+
88
+
89
+ PAY TO THE ORDER OF-----FRED FLINSTONE-----$ 1000
90
+
91
+
92
+ THE MEMORY BANK OF NEW YORK
93
+
94
+ THE COMPUTER
95
+ ----------X-----
96
+
97
+ --------------------------------------------------------------COME BACK SOON!
98
+
@@ -0,0 +1,26 @@
1
+ 1 PRINT TAB(28);"RUSSIAN ROULETTE"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 5 PRINT "THIS IS A GAME OF >>>>>>>>>>RUSSIAN ROULETTE."
5
+ 10 PRINT:PRINT "HERE IS A REVOLVER."
6
+ 20 PRINT "TYPE '1' TO SPIN CHAMBER AND PULL TRIGGER."
7
+ 22 PRINT "TYPE '2' TO GIVE UP."
8
+ 23 PRINT "GO";
9
+ 25 N=0
10
+ 30 INPUT I
11
+ 31 IF I<>2 THEN 35
12
+ 32 PRINT " CHICKEN!!!!!"
13
+ 33 GOTO 72
14
+ 35 N=N+1
15
+ 40 IF RND(1)>.833333 THEN 70
16
+ 45 IF N>10 THEN 80
17
+ 50 PRINT "- CLICK -"
18
+ 60 PRINT: GOTO 30
19
+ 70 PRINT " BANG!!!!! YOU'RE DEAD!"
20
+ 71 PRINT "CONDOLENCES WILL BE SENT TO YOUR RELATIVES."
21
+ 72 PRINT:PRINT:PRINT
22
+ 75 PRINT "...NEXT VICTIM...":GOTO 20
23
+ 80 PRINT "YOU WIN!!!!!"
24
+ 85 PRINT "LET SOMEONE ELSE BLOW HIS BRAINS OUT."
25
+ 90 GOTO 10
26
+ 99 END
@@ -0,0 +1,50 @@
1
+ RUSSIAN ROULETTE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS IS A GAME OF >>>>>>>>>>RUSSIAN ROULETTE.
7
+
8
+ HERE IS A REVOLVER.
9
+ TYPE '1' TO SPIN CHAMBER AND PULL TRIGGER.
10
+ TYPE '2' TO GIVE UP.
11
+ GO? 1
12
+ - CLICK -
13
+
14
+ ? 1
15
+ - CLICK -
16
+
17
+ ? 1
18
+ - CLICK -
19
+
20
+ ? 1
21
+ - CLICK -
22
+
23
+ ? 1
24
+ - CLICK -
25
+
26
+ ? 2
27
+ CHICKEN!!!!!
28
+
29
+
30
+
31
+ ...NEXT VICTIM...
32
+ TYPE '1' TO SPIN CHAMBER AND PULL TRIGGER.
33
+ TYPE '2' TO GIVE UP.
34
+ GO? 1
35
+ - CLICK -
36
+
37
+ ? 1
38
+ - CLICK -
39
+
40
+ ? 1
41
+ BANG!!!!! YOU'RE DEAD!
42
+ CONDOLENCES WILL BE SENT TO YOUR RELATIVES.
43
+
44
+
45
+
46
+ ...NEXT VICTIM...
47
+ TYPE '1' TO SPIN CHAMBER AND PULL TRIGGER.
48
+ TYPE '2' TO GIVE UP.
49
+ GO?
50
+ Error on line 30: No more input