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,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