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,78 @@
1
+ 10 PRINT TAB(33);"DIGITS"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 210 PRINT "THIS IS A GAME OF GUESSING."
5
+ 220 PRINT "FOR INSTRUCTIONS, TYPE '1', ELSE TYPE '0'";
6
+ 230 INPUT E
7
+ 240 IF E=0 THEN 360
8
+ 250 PRINT
9
+ 260 PRINT "PLEASE TAKE A PIECE OF PAPER AND WRITE DOWN"
10
+ 270 PRINT "THE DIGITS '0', '1', OR '2' THIRTY TIMES AT RANDOM."
11
+ 280 PRINT "ARRANGE THEM IN THREE LINES OF TEN DIGITS EACH."
12
+ 290 PRINT "I WILL ASK FOR THEN TEN AT A TIME."
13
+ 300 PRINT "I WILL ALWAYS GUESS THEM FIRST AND THEN LOOK AT YOUR"
14
+ 310 PRINT "NEXT NUMBER TO SEE IF I WAS RIGHT. BY PURE LUCK,"
15
+ 320 PRINT "I OUGHT TO BE RIGHT TEN TIMES. BUT I HOPE TO DO BETTER"
16
+ 330 PRINT "THAN THAT *****"
17
+ 340 PRINT:PRINT
18
+ 360 READ A,B,C
19
+ 370 DATA 0,1,3
20
+ 380 DIM M(26,2),K(2,2),L(8,2)
21
+ 400 FOR I=0 TO 26: FOR J=0 TO 2: M(I,J)=1: NEXT J: NEXT I
22
+ 410 FOR I=0 TO 2: FOR J=0 TO 2: K(I,J)=9: NEXT J: NEXT I
23
+ 420 FOR I=0 TO 8: FOR J=0 TO 2: L(I,J)=3: NEXT J: NEXT I
24
+ 450 L(0,0)=2: L(4,1)=2: L(8,2)=2
25
+ 480 Z=26: Z1=8: Z2=2
26
+ 510 X=0
27
+ 520 FOR T=1 TO 3
28
+ 530 PRINT
29
+ 540 PRINT "TEN NUMBERS, PLEASE";
30
+ 550 INPUT N(1),N(2),N(3),N(4),N(5),N(6),N(7),N(8),N(9),N(10)
31
+ 560 FOR I=1 TO 10
32
+ 570 W=N(I)-1
33
+ 580 IF W=SGN(W) THEN 620
34
+ 590 PRINT "ONLY USE THE DIGITS '0', '1', OR '2'."
35
+ 600 PRINT "LET'S TRY AGAIN.":GOTO 530
36
+ 620 NEXT I
37
+ 630 PRINT: PRINT "MY GUESS","YOUR NO.","RESULT","NO. RIGHT":PRINT
38
+ 660 FOR U=1 TO 10
39
+ 670 N=N(U): S=0
40
+ 690 FOR J=0 TO 2
41
+ 700 S1=A*K(Z2,J)+B*L(Z1,J)+C*M(Z,J)
42
+ 710 IF S>S1 THEN 760
43
+ 720 IF S<S1 THEN 740
44
+ 730 IF RND(1)<.5 THEN 760
45
+ 740 S=S1: G=J
46
+ 760 NEXT J
47
+ 770 PRINT " ";G," ";N(U),
48
+ 780 IF G=N(U) THEN 810
49
+ 790 PRINT " WRONG",X
50
+ 800 GOTO 880
51
+ 810 X=X+1
52
+ 820 PRINT " RIGHT",X
53
+ 830 M(Z,N)=M(Z,N)+1
54
+ 840 L(Z1,N)=L(Z1,N)+1
55
+ 850 K(Z2,N)=K(Z2,N)+1
56
+ 860 Z=Z-INT(Z/9)*9
57
+ 870 Z=3*Z+N(U)
58
+ 880 Z1=Z-INT(Z/9)*9
59
+ 890 Z2=N(U)
60
+ 900 NEXT U
61
+ 910 NEXT T
62
+ 920 PRINT
63
+ 930 IF X>10 THEN 980
64
+ 940 IF X<10 THEN 1010
65
+ 950 PRINT "I GUESSED EXACTLY 1/3 OF YOUR NUMBERS."
66
+ 960 PRINT "IT'S A TIE GAME."
67
+ 970 GOTO 1030
68
+ 980 PRINT "I GUESSED MORE THAN 1/3 OF YOUR NUMBERS."
69
+ 990 PRINT "I WIN.": FOR Q=1 TO 10: PRINT CHR$(7);: NEXT Q
70
+ 1000 GOTO 1030
71
+ 1010 PRINT "I GUESSED LESS THAN 1/3 OF YOUR NUMBERS."
72
+ 1020 PRINT "YOU BEAT ME. CONGRATULATIONS *****"
73
+ 1030 PRINT
74
+ 1040 PRINT "DO YOU WANT TO TRY AGAIN (1 FOR YES, 0 FOR NO)";
75
+ 1060 INPUT X
76
+ 1070 IF X=1 THEN 400
77
+ 1080 PRINT:PRINT "THANKS FOR THE GAME."
78
+ 1090 END
@@ -0,0 +1,5 @@
1
+ 1
2
+ 0,1,1,2,1,0,2,1,2,0
3
+ 1,0,2,0,2,0,1,0,2,0
4
+ 2,2,2,1,1,1,0,1,1,2
5
+ 0
@@ -0,0 +1,70 @@
1
+ DIGITS
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS IS A GAME OF GUESSING.
7
+ FOR INSTRUCTIONS, TYPE '1', ELSE TYPE '0'? 1
8
+
9
+ PLEASE TAKE A PIECE OF PAPER AND WRITE DOWN
10
+ THE DIGITS '0', '1', OR '2' THIRTY TIMES AT RANDOM.
11
+ ARRANGE THEM IN THREE LINES OF TEN DIGITS EACH.
12
+ I WILL ASK FOR THEN TEN AT A TIME.
13
+ I WILL ALWAYS GUESS THEM FIRST AND THEN LOOK AT YOUR
14
+ NEXT NUMBER TO SEE IF I WAS RIGHT. BY PURE LUCK,
15
+ I OUGHT TO BE RIGHT TEN TIMES. BUT I HOPE TO DO BETTER
16
+ THAN THAT *****
17
+
18
+
19
+
20
+ TEN NUMBERS, PLEASE? 0,1,1,2,1,0,2,1,2,0
21
+
22
+ MY GUESS YOUR NO. RESULT NO. RIGHT
23
+
24
+ 1 0 WRONG 0
25
+ 1 1 RIGHT 1
26
+ 2 1 WRONG 1
27
+ 2 2 RIGHT 2
28
+ 2 1 WRONG 2
29
+ 1 0 WRONG 2
30
+ 2 2 RIGHT 3
31
+ 1 1 RIGHT 4
32
+ 2 2 RIGHT 5
33
+ 2 0 WRONG 5
34
+
35
+ TEN NUMBERS, PLEASE? 1,0,2,0,2,0,1,0,2,0
36
+
37
+ MY GUESS YOUR NO. RESULT NO. RIGHT
38
+
39
+ 2 1 WRONG 5
40
+ 2 0 WRONG 5
41
+ 2 2 RIGHT 6
42
+ 1 0 WRONG 6
43
+ 1 2 WRONG 6
44
+ 1 0 WRONG 6
45
+ 1 1 RIGHT 7
46
+ 2 0 WRONG 7
47
+ 2 2 RIGHT 8
48
+ 2 0 WRONG 8
49
+
50
+ TEN NUMBERS, PLEASE? 2,2,2,1,1,1,0,1,1,2
51
+
52
+ MY GUESS YOUR NO. RESULT NO. RIGHT
53
+
54
+ 2 2 RIGHT 9
55
+ 1 2 WRONG 9
56
+ 1 2 WRONG 9
57
+ 1 1 RIGHT 10
58
+ 2 1 WRONG 10
59
+ 2 1 WRONG 10
60
+ 2 0 WRONG 10
61
+ 2 1 WRONG 10
62
+ 2 1 WRONG 10
63
+ 2 2 RIGHT 11
64
+
65
+ I GUESSED MORE THAN 1/3 OF YOUR NUMBERS.
66
+ I WIN.
67
+ 
68
+ DO YOU WANT TO TRY AGAIN (1 FOR YES, 0 FOR NO)? 0
69
+
70
+ THANKS FOR THE GAME.
@@ -0,0 +1,128 @@
1
+ 1 PRINT TAB(31);"EVEN WINS"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT
4
+ 4 Y1=0
5
+ 10 M1=0
6
+ 20 DIM M(20),Y(20)
7
+ 30 PRINT " THIS IS A TWO PERSON GAME CALLED 'EVEN WINS.'"
8
+ 40 PRINT "TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR"
9
+ 50 PRINT "OTHER OBJECTS ON A TABLE."
10
+ 60 PRINT
11
+ 70 PRINT
12
+ 80 PRINT " THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER"
13
+ 90 PRINT "REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME"
14
+ 100 PRINT "ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER"
15
+ 110 PRINT "IS THE ONE WITH AN EVEN NUMBER OF MARBLES."
16
+ 120 PRINT
17
+ 130 PRINT
18
+ 140 PRINT " THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS,"
19
+ 150 PRINT "(2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN,"
20
+ 160 PRINT "AND (3) YOU CANNOT SKIP A TURN."
21
+ 170 PRINT
22
+ 180 PRINT
23
+ 190 PRINT
24
+ 200 PRINT " TYPE A '1' IF YOU WANT TO GO FIRST, AND TYPE"
25
+ 210 PRINT "A '0' IF YOU WANT ME TO GO FIRST."
26
+ 220 INPUT C
27
+ 225 PRINT
28
+ 230 IF C=0 THEN 250
29
+ 240 GOTO 1060
30
+ 250 T=27
31
+ 260 M=2
32
+ 270 PRINT:PRINT "TOTAL=";T:PRINT
33
+ 280 M1=M1+M
34
+ 290 T=T-M
35
+ 300 PRINT "I PICK UP";M;"MARBLES."
36
+ 310 IF T=0 THEN 880
37
+ 320 PRINT:PRINT "TOTAL=";T
38
+ 330 PRINT
39
+ 340 PRINT " AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS";M1
40
+ 350 INPUT Y
41
+ 360 PRINT
42
+ 370 IF Y<1 THEN 1160
43
+ 380 IF Y>4 THEN 1160
44
+ 390 IF Y<=T THEN 430
45
+ 400 PRINT " YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE"
46
+ 410 PRINT "LEFT. TRY AGAIN."
47
+ 420 GOTO 350
48
+ 430 Y1=Y1+Y
49
+ 440 T=T-Y
50
+ 450 IF T=0 THEN 880
51
+ 460 PRINT "TOTAL=";T
52
+ 470 PRINT
53
+ 480 PRINT "YOUR TOTAL IS";Y1
54
+ 490 IF T<.5 THEN 880
55
+ 500 R=T-6*INT(T/6)
56
+ 510 IF INT(Y1/2)=Y1/2 THEN 700
57
+ 520 IF T<4.2 THEN 580
58
+ 530 IF R>3.4 THEN 620
59
+ 540 M=R+1
60
+ 550 M1=M1+M
61
+ 560 T=T-M
62
+ 570 GOTO 300
63
+ 580 M=T
64
+ 590 T=T-M
65
+ 600 GOTO 830
66
+ 610 REM 250 IS WHERE I WIN.
67
+ 620 IF R<4.7 THEN 660
68
+ 630 IF R>3.5 THEN 660
69
+ 640 M=1
70
+ 650 GOTO 670
71
+ 660 M=4
72
+ 670 T=T-M
73
+ 680 M1=M1+M
74
+ 690 GOTO 300
75
+ 700 REM I AM READY TO ENCODE THE STRAT FOR WHEN OPP TOT IS EVEN
76
+ 710 IF R<1.5 THEN 1020
77
+ 720 IF R>5.3 THEN 1020
78
+ 730 M=R-1
79
+ 740 M1=M1+M
80
+ 750 T=T-M
81
+ 760 IF T<.2 THEN 790
82
+ 770 REM IS # ZERO HERE
83
+ 780 GOTO 300
84
+ 790 REM IS = ZERO HERE
85
+ 800 PRINT "I PICK UP";M;"MARBLES."
86
+ 810 PRINT
87
+ 820 GOTO 880
88
+ 830 REM THIS IS WHERE I WIN
89
+ 840 PRINT "I PICK UP";M;"MARBLES."
90
+ 850 PRINT
91
+ 860 PRINT "TOTAL = 0"
92
+ 870 M1=M1+M
93
+ 880 PRINT "THAT IS ALL OF THE MARBLES."
94
+ 890 PRINT
95
+ 900 PRINT " MY TOTAL IS";M1;", YOUR TOTAL IS";Y1
96
+ 910 PRINT
97
+ 920 IF INT(M1/2)=M1/2 THEN 950
98
+ 930 PRINT " YOU WON. DO YOU WANT TO PLAY"
99
+ 940 GOTO 960
100
+ 950 PRINT " I WON. DO YOU WANT TO PLAY"
101
+ 960 PRINT "AGAIN? TYPE 1 FOR YES AND 0 FOR NO."
102
+ 970 INPUT A1
103
+ 980 IF A1=0 THEN 1030
104
+ 990 M1=0
105
+ 1000 Y1=0
106
+ 1010 GOTO 200
107
+ 1020 GOTO 640
108
+ 1030 PRINT
109
+ 1040 PRINT "OK. SEE YOU LATER."
110
+ 1050 GOTO 1230
111
+ 1060 T=27
112
+ 1070 PRINT
113
+ 1080 PRINT
114
+ 1090 PRINT
115
+ 1100 PRINT "TOTAL=";T
116
+ 1110 PRINT
117
+ 1120 PRINT
118
+ 1130 PRINT "WHAT IS YOUR FIRST MOVE";
119
+ 1140 INPUT Y
120
+ 1150 GOTO 360
121
+ 1160 PRINT
122
+ 1170 PRINT "THE NUMBER OF MARBLES YOU TAKE MUST BE A POSITIVE"
123
+ 1180 PRINT "INTEGER BETWEEN 1 AND 4."
124
+ 1190 PRINT
125
+ 1200 PRINT " WHAT IS YOUR NEXT MOVE?"
126
+ 1210 PRINT
127
+ 1220 GOTO 350
128
+ 1230 END
@@ -0,0 +1,13 @@
1
+ 1
2
+ 3
3
+ 3
4
+ 1
5
+ 1
6
+ 2
7
+ 4
8
+ 4
9
+ 3
10
+ 2
11
+ 1
12
+ NO
13
+ 0
@@ -0,0 +1,116 @@
1
+ EVEN WINS
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+ THIS IS A TWO PERSON GAME CALLED 'EVEN WINS.'
6
+ TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR
7
+ OTHER OBJECTS ON A TABLE.
8
+
9
+
10
+ THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER
11
+ REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME
12
+ ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER
13
+ IS THE ONE WITH AN EVEN NUMBER OF MARBLES.
14
+
15
+
16
+ THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS,
17
+ (2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN,
18
+ AND (3) YOU CANNOT SKIP A TURN.
19
+
20
+
21
+
22
+ TYPE A '1' IF YOU WANT TO GO FIRST, AND TYPE
23
+ A '0' IF YOU WANT ME TO GO FIRST.
24
+ ? 1
25
+
26
+
27
+
28
+
29
+ TOTAL= 27
30
+
31
+
32
+ WHAT IS YOUR FIRST MOVE? 3
33
+
34
+ TOTAL= 24
35
+
36
+ YOUR TOTAL IS 3
37
+ I PICK UP 1 MARBLES.
38
+
39
+ TOTAL= 23
40
+
41
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 1
42
+ ? 3
43
+
44
+ TOTAL= 20
45
+
46
+ YOUR TOTAL IS 6
47
+ I PICK UP 1 MARBLES.
48
+
49
+ TOTAL= 19
50
+
51
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 2
52
+ ? 1
53
+
54
+ TOTAL= 18
55
+
56
+ YOUR TOTAL IS 7
57
+ I PICK UP 1 MARBLES.
58
+
59
+ TOTAL= 17
60
+
61
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 3
62
+ ? 1
63
+
64
+ TOTAL= 16
65
+
66
+ YOUR TOTAL IS 8
67
+ I PICK UP 3 MARBLES.
68
+
69
+ TOTAL= 13
70
+
71
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 6
72
+ ? 2
73
+
74
+ TOTAL= 11
75
+
76
+ YOUR TOTAL IS 10
77
+ I PICK UP 4 MARBLES.
78
+
79
+ TOTAL= 7
80
+
81
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 10
82
+ ? 4
83
+
84
+ TOTAL= 3
85
+
86
+ YOUR TOTAL IS 14
87
+ I PICK UP 2 MARBLES.
88
+
89
+ TOTAL= 1
90
+
91
+ AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS 12
92
+ ? 4
93
+
94
+ YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE
95
+ LEFT. TRY AGAIN.
96
+ ? 3
97
+
98
+ YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE
99
+ LEFT. TRY AGAIN.
100
+ ? 2
101
+
102
+ YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE
103
+ LEFT. TRY AGAIN.
104
+ ? 1
105
+
106
+ THAT IS ALL OF THE MARBLES.
107
+
108
+ MY TOTAL IS 12 , YOUR TOTAL IS 15
109
+
110
+ I WON. DO YOU WANT TO PLAY
111
+ AGAIN? TYPE 1 FOR YES AND 0 FOR NO.
112
+ ? NO
113
+ Not numeric: "NO", try again
114
+ ? 0
115
+
116
+ OK. SEE YOU LATER.
@@ -0,0 +1,70 @@
1
+ 1 PRINT TAB(28);"GAME OF EVEN WINS"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT
4
+ 4 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO)";A$:PRINT
5
+ 5 IF A$="NO" THEN 20
6
+ 6 PRINT "THE GAME IS PLAYED AS FOLLOWS:":PRINT
7
+ 7 PRINT "AT THE BEGINNING OF THE GAME, A RANDOM NUMBER OF CHIPS ARE"
8
+ 8 PRINT "PLACED ON THE BOARD. THE NUMBER OF CHIPS ALWAYS STARTS"
9
+ 9 PRINT "AS AN ODD NUMBER. ON EACH TURN, A PLAYER MUST TAKE ONE,"
10
+ 10 PRINT "TWO, THREE, OR FOUR CHIPS. THE WINNER IS THE PLAYER WHO"
11
+ 11 PRINT "FINISHES WITH A TOTAL NUMBER OF CHIPS THAT IS EVEN."
12
+ 12 PRINT "THE COMPUTER STARTS OUT KNOWING ONLY THE RULES OF THE"
13
+ 13 PRINT "GAME. IT GRADUALLY LEARNS TO PLAY WELL. IT SHOULD BE"
14
+ 14 PRINT "DIFFICULT TO BEAT THE COMPUTER AFTER TWENTY GAMES IN A ROW."
15
+ 15 PRINT "TRY IT!!!!": PRINT
16
+ 16 PRINT "TO QUIT AT ANY TIME, TYPE A '0' AS YOUR MOVE.": PRINT
17
+ 20 DIM R(1,5)
18
+ 25 L=0: B=0
19
+ 30 FOR I=0 TO 5
20
+ 40 R(1,I)=4
21
+ 50 R(0,I)=4
22
+ 60 NEXT I
23
+ 70 A=0: B=0
24
+ 90 P=INT((13*RND(1)+9)/2)*2+1
25
+ 100 IF P=1 THEN 530
26
+ 110 PRINT "THERE ARE";P;"CHIPS ON THE BOARD."
27
+ 120 E1=E
28
+ 130 L1=L
29
+ 140 E=(A/2-INT(A/2))*2
30
+ 150 L=INT((P/6-INT(P/6))*6+.5)
31
+ 160 IF R(E,L)>=P THEN 320
32
+ 170 M=R(E,L)
33
+ 180 IF M<=0 THEN 370
34
+ 190 P=P-M
35
+ 200 IF M=1 THEN 510
36
+ 210 PRINT "COMPUTER TAKES";M;"CHIPS LEAVING";P;"... YOUR MOVE";
37
+ 220 B=B+M
38
+ 230 INPUT M
39
+ 240 M=INT(M)
40
+ 250 IF M<1 THEN 450
41
+ 260 IF M>4 THEN 460
42
+ 270 IF M>P THEN 460
43
+ 280 IF M=P THEN 360
44
+ 290 P=P-M
45
+ 300 A=A+M
46
+ 310 GOTO 100
47
+ 320 IF P=1 THEN 550
48
+ 330 PRINT "COMPUTER TAKES";P;"CHIPS."
49
+ 340 R(E,L)=P
50
+ 350 B=B+P
51
+ 360 IF B/2=INT(B/2) THEN 420
52
+ 370 PRINT "GAME OVER ... YOU WIN!!!": PRINT
53
+ 390 IF R(E,L)=1 THEN 480
54
+ 400 R(E,L)=R(E,L)-1
55
+ 410 GOTO 70
56
+ 420 PRINT "GAME OVER ... I WIN!!!": PRINT
57
+ 430 GOTO 70
58
+ 450 IF M=0 THEN 570
59
+ 460 PRINT M;"IS AN ILLEGAL MOVE ... YOUR MOVE";
60
+ 470 GOTO 230
61
+ 480 IF R(E1,L1)=1 THEN 70
62
+ 490 R(E1,L1)=R(E1,L1)-1
63
+ 500 GOTO 70
64
+ 510 PRINT "COMPUTER TAKES 1 CHIP LEAVING";P;"... YOUR MOVE";
65
+ 520 GOTO 220
66
+ 530 PRINT "THERE IS 1 CHIP ON THE BOARD."
67
+ 540 GOTO 120
68
+ 550 PRINT "COMPUTER TAKES 1 CHIP."
69
+ 560 GOTO 340
70
+ 570 END
@@ -0,0 +1,14 @@
1
+ YES
2
+ 4
3
+ 4
4
+ 4
5
+ 4
6
+ 4
7
+ 3
8
+ 2
9
+ 4
10
+ 4
11
+ 4
12
+ 4
13
+ 1
14
+ 0
@@ -0,0 +1,56 @@
1
+ GAME OF EVEN WINS
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+ DO YOU WANT INSTRUCTIONS (YES OR NO)? YES
6
+
7
+ THE GAME IS PLAYED AS FOLLOWS:
8
+
9
+ AT THE BEGINNING OF THE GAME, A RANDOM NUMBER OF CHIPS ARE
10
+ PLACED ON THE BOARD. THE NUMBER OF CHIPS ALWAYS STARTS
11
+ AS AN ODD NUMBER. ON EACH TURN, A PLAYER MUST TAKE ONE,
12
+ TWO, THREE, OR FOUR CHIPS. THE WINNER IS THE PLAYER WHO
13
+ FINISHES WITH A TOTAL NUMBER OF CHIPS THAT IS EVEN.
14
+ THE COMPUTER STARTS OUT KNOWING ONLY THE RULES OF THE
15
+ GAME. IT GRADUALLY LEARNS TO PLAY WELL. IT SHOULD BE
16
+ DIFFICULT TO BEAT THE COMPUTER AFTER TWENTY GAMES IN A ROW.
17
+ TRY IT!!!!
18
+
19
+ TO QUIT AT ANY TIME, TYPE A '0' AS YOUR MOVE.
20
+
21
+ THERE ARE 17 CHIPS ON THE BOARD.
22
+ COMPUTER TAKES 4 CHIPS LEAVING 13 ... YOUR MOVE? 4
23
+ THERE ARE 9 CHIPS ON THE BOARD.
24
+ COMPUTER TAKES 4 CHIPS LEAVING 5 ... YOUR MOVE? 4
25
+ THERE IS 1 CHIP ON THE BOARD.
26
+ COMPUTER TAKES 1 CHIP.
27
+ GAME OVER ... YOU WIN!!!
28
+
29
+ THERE ARE 19 CHIPS ON THE BOARD.
30
+ COMPUTER TAKES 1 CHIP LEAVING 18 ... YOUR MOVE? 4
31
+ THERE ARE 14 CHIPS ON THE BOARD.
32
+ COMPUTER TAKES 4 CHIPS LEAVING 10 ... YOUR MOVE? 4
33
+ THERE ARE 6 CHIPS ON THE BOARD.
34
+ COMPUTER TAKES 4 CHIPS LEAVING 2 ... YOUR MOVE? 4
35
+ 4 IS AN ILLEGAL MOVE ... YOUR MOVE? 3
36
+ 3 IS AN ILLEGAL MOVE ... YOUR MOVE? 2
37
+ GAME OVER ... YOU WIN!!!
38
+
39
+ THERE ARE 17 CHIPS ON THE BOARD.
40
+ COMPUTER TAKES 4 CHIPS LEAVING 13 ... YOUR MOVE? 4
41
+ THERE ARE 9 CHIPS ON THE BOARD.
42
+ COMPUTER TAKES 3 CHIPS LEAVING 6 ... YOUR MOVE? 4
43
+ THERE ARE 2 CHIPS ON THE BOARD.
44
+ COMPUTER TAKES 2 CHIPS.
45
+ GAME OVER ... YOU WIN!!!
46
+
47
+ THERE ARE 17 CHIPS ON THE BOARD.
48
+ COMPUTER TAKES 4 CHIPS LEAVING 13 ... YOUR MOVE? 4
49
+ THERE ARE 9 CHIPS ON THE BOARD.
50
+ COMPUTER TAKES 3 CHIPS LEAVING 6 ... YOUR MOVE? 4
51
+ THERE ARE 2 CHIPS ON THE BOARD.
52
+ COMPUTER TAKES 1 CHIP LEAVING 1 ... YOUR MOVE? 1
53
+ GAME OVER ... I WIN!!!
54
+
55
+ THERE ARE 15 CHIPS ON THE BOARD.
56
+ COMPUTER TAKES 3 CHIPS LEAVING 12 ... YOUR MOVE? 0
@@ -0,0 +1,79 @@
1
+ 2 PRINT TAB(32);"FLIPFLOP"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT
4
+ 10 REM *** CREATED BY MICHAEL CASS
5
+ 15 DIM A$(20)
6
+ 20 PRINT "THE OBJECT OF THIS PUZZLE IS TO CHANGE THIS:"
7
+ 30 PRINT
8
+ 40 PRINT "X X X X X X X X X X"
9
+ 50 PRINT
10
+ 60 PRINT "TO THIS:"
11
+ 70 PRINT
12
+ 80 PRINT "O O O O O O O O O O"
13
+ 90 PRINT
14
+ 100 PRINT "BY TYPING THE NUMBER CORRESPONDING TO THE POSITION OF THE"
15
+ 110 PRINT "LETTER ON SOME NUMBERS, ONE POSITION WILL CHANGE, ON"
16
+ 120 PRINT "OTHERS, TWO WILL CHANGE. TO RESET LINE TO ALL X'S, TYPE 0"
17
+ 130 PRINT "(ZERO) AND TO START OVER IN THE MIDDLE OF A GAME, TYPE "
18
+ 140 PRINT "11 (ELEVEN)."
19
+ 170 PRINT
20
+ 180 REM
21
+ 190 Q=RND(1)
22
+ 200 PRINT "HERE IS THE STARTING LINE OF X'S."
23
+ 210 PRINT
24
+ 220 C=0
25
+ 230 PRINT "1 2 3 4 5 6 7 8 9 10"
26
+ 240 PRINT "X X X X X X X X X X"
27
+ 250 PRINT
28
+ 260 REM
29
+ 270 FOR X=1 TO 10
30
+ 280 A$(X)="X"
31
+ 290 NEXT X
32
+ 300 GOTO 320
33
+ 310 PRINT "ILLEGAL ENTRY--TRY AGAIN."
34
+ 320 PRINT "INPUT THE NUMBER";
35
+ 330 INPUT N
36
+ 340 IF N<>INT(N) THEN 310
37
+ 350 IF N=11 THEN 180
38
+ 360 IF N>11 THEN 310
39
+ 370 IF N=0 THEN 230
40
+ 380 IF M=N THEN 510
41
+ 390 M=N
42
+ 400 IF A$(N)="O" THEN 480
43
+ 410 A$(N)="O"
44
+ 420 R=TAN(Q+N/Q-N)-SIN(Q/N)+336*SIN(8*N)
45
+ 430 N=R-INT(R)
46
+ 440 N=INT(10*N)
47
+ 450 IF A$(N)="O" THEN 480
48
+ 460 A$(N)="O"
49
+ 470 GOTO 610
50
+ 480 A$(N)="X"
51
+ 490 IF M=N THEN 420
52
+ 500 GOTO 610
53
+ 510 IF A$(N)="O" THEN 590
54
+ 520 A$(N)="O"
55
+ 530 R=.592*(1/TAN(Q/N+Q))/SIN(N*2+Q)-COS(N)
56
+ 540 N=R-INT(R)
57
+ 550 N=INT(10*N)
58
+ 560 IF A$(N)="O" THEN 590
59
+ 570 A$(N)="O"
60
+ 580 GOTO 610
61
+ 590 A$(N)="X"
62
+ 600 IF M=N THEN 530
63
+ 610 PRINT "1 2 3 4 5 6 7 8 9 10"
64
+ 620 FOR Z=1 TO 10: PRINT A$(Z);" ";: NEXT Z
65
+ 630 C=C+1
66
+ 640 PRINT
67
+ 650 FOR Z=1 TO 10
68
+ 660 IF A$(Z)<>"O" THEN 320
69
+ 670 NEXT Z
70
+ 680 IF C>12 THEN 710
71
+ 690 PRINT "VERY GOOD. YOU GUESSED IT IN ONLY";C;"GUESSES."
72
+ 700 GOTO 720
73
+ 710 PRINT "TRY HARDER NEXT TIME. IT TOOK YOU";C;"GUESSES."
74
+ 720 PRINT "DO YOU WANT TO TRY ANOTHER PUZZLE";
75
+ 730 INPUT X$
76
+ 740 IF LEFT$(X$,1)="N" THEN 780
77
+ 760 PRINT
78
+ 770 GOTO 180
79
+ 780 END
@@ -0,0 +1,45 @@
1
+ FLIPFLOP
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+ THE OBJECT OF THIS PUZZLE IS TO CHANGE THIS:
5
+
6
+ X X X X X X X X X X
7
+
8
+ TO THIS:
9
+
10
+ O O O O O O O O O O
11
+
12
+ BY TYPING THE NUMBER CORRESPONDING TO THE POSITION OF THE
13
+ LETTER ON SOME NUMBERS, ONE POSITION WILL CHANGE, ON
14
+ OTHERS, TWO WILL CHANGE. TO RESET LINE TO ALL X'S, TYPE 0
15
+ (ZERO) AND TO START OVER IN THE MIDDLE OF A GAME, TYPE
16
+ 11 (ELEVEN).
17
+
18
+ HERE IS THE STARTING LINE OF X'S.
19
+
20
+ 1 2 3 4 5 6 7 8 9 10
21
+ X X X X X X X X X X
22
+
23
+ INPUT THE NUMBER? 1
24
+ 1 2 3 4 5 6 7 8 9 10
25
+ O X X X X X X O X X
26
+ INPUT THE NUMBER? 2
27
+ 1 2 3 4 5 6 7 8 9 10
28
+ O O X X O X X O X X
29
+ INPUT THE NUMBER? 3
30
+ 1 2 3 4 5 6 7 8 9 10
31
+ O O O O O X X O X X
32
+ INPUT THE NUMBER? 6
33
+ 1 2 3 4 5 6 7 8 9 10
34
+ O O O O O O O O X X
35
+ INPUT THE NUMBER? 9
36
+ 1 2 3 4 5 6 7 8 9 10
37
+ O O O O X O O O O X
38
+ INPUT THE NUMBER? 10
39
+ 1 2 3 4 5 6 7 8 9 10
40
+ O X O O X O O O O O
41
+ INPUT THE NUMBER? 2
42
+ 1 2 3 4 5 6 7 8 9 10
43
+ O O O O O O O O O O
44
+ VERY GOOD. YOU GUESSED IT IN ONLY 7 GUESSES.
45
+ DO YOU WANT TO TRY ANOTHER PUZZLE? NO