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,114 @@
1
+ 2 PRINT TAB(30);"TIC-TAC-TOE"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT:PRINT:PRINT
4
+ 8 PRINT "THE BOARD IS NUMBERED:"
5
+ 10 PRINT " 1 2 3"
6
+ 12 PRINT " 4 5 6"
7
+ 14 PRINT " 7 8 9"
8
+ 16 PRINT:PRINT:PRINT
9
+ 20 DIM S(9)
10
+ 50 INPUT"DO YOU WANT 'X' OR 'O'";C$
11
+ 55 IF C$="X"THEN 475
12
+ 60 P$="O":Q$="X"
13
+ 100 G=-1:H=1:IF S(5)<>0 THEN 103
14
+ 102 S(5)=-1:GOTO 195
15
+ 103 IF S(5)<>1 THEN 106
16
+ 104 IF S(1)<>0 THEN 110
17
+ 105 S(1)=-1:GOTO 195
18
+ 106 IF S(2)=1 AND S(1)=0 THEN 181
19
+ 107 IF S(4)=1 AND S(1)=0 THEN 181
20
+ 108 IF S(6)=1 AND S(9)=0 THEN 189
21
+ 109 IF S(8)=1 AND S(9)=0 THEN 189
22
+ 110 IF G=1 THEN 112
23
+ 111 GOTO 118
24
+ 112 J=3*INT((M-1)/3)+1
25
+ 113 IF 3*INT((M-1)/3)+1=M THEN K=1
26
+ 114 IF 3*INT((M-1)/3)+2=M THEN K=2
27
+ 115 IF 3*INT((M-1)/3)+3=M THEN K=3
28
+ 116 GOTO 120
29
+ 118 FOR J=1 TO 7 STEP 3:FOR K=1 TO 3
30
+ 120 IF S(J)<>G THEN 130
31
+ 122 IF S(J+2)<>G THEN 135
32
+ 126 IF S(J+1)<>0 THEN 150
33
+ 128 S(J+1)=-1:GOTO 195
34
+ 130 IF S(J)=H THEN 150
35
+ 131 IF S(J+2)<>G THEN 150
36
+ 132 IF S(J+1)<>G THEN 150
37
+ 133 S(J)=-1:GOTO 195
38
+ 135 IF S(J+2)<>0 THEN 150
39
+ 136 IF S(J+1)<>G THEN 150
40
+ 138 S(J+2)=-1:GOTO 195
41
+ 150 IF S(K)<>G THEN 160
42
+ 152 IF S(K+6)<>G THEN 165
43
+ 156 IF S(K+3)<>0 THEN 170
44
+ 158 S(K+3)=-1:GOTO 195
45
+ 160 IF S(K)=H THEN 170
46
+ 161 IF S(K+6)<>G THEN 170
47
+ 162 IF S(K+3)<>G THEN 170
48
+ 163 S(K)=-1:GOTO 195
49
+ 165 IF S(K+6)<>0 THEN 170
50
+ 166 IF S(K+3)<>G THEN 170
51
+ 168 S(K+6)=-1:GOTO 195
52
+ 170 GOTO 450
53
+ 171 IF S(3)=G AND S(7)=0 THEN 187
54
+ 172 IF S(9)=G AND S(1)=0 THEN 181
55
+ 173 IF S(7)=G AND S(3)=0 THEN 183
56
+ 174 IF S(9)=0 AND S(1)=G THEN 189
57
+ 175 IF G=-1 THEN G=1:H=-1:GOTO 110
58
+ 176 IF S(9)=1 AND S(3)=0 THEN 182
59
+ 177 FOR I=2 TO 9:IF S(I)<>0 THEN 179
60
+ 178 S(I)=-1:GOTO 195
61
+ 179 NEXT I
62
+ 181 S(1)=-1:GOTO 195
63
+ 182 IF S(1)=1 THEN 177
64
+ 183 S(3)=-1:GOTO 195
65
+ 187 S(7)=-1:GOTO 195
66
+ 189 S(9)=-1
67
+ 195 PRINT:PRINT"THE COMPUTER MOVES TO..."
68
+ 202 GOSUB 1000
69
+ 205 GOTO 500
70
+ 450 IF G=1 THEN 465
71
+ 455 IF J=7 AND K=3 THEN 465
72
+ 460 NEXT K,J
73
+ 465 IF S(5)=G THEN 171
74
+ 467 GOTO 175
75
+ 475 P$="X":Q$="O"
76
+ 500 PRINT:INPUT"WHERE DO YOU MOVE";M
77
+ 502 IF M=0 THEN PRINT"THANKS FOR THE GAME.":GOTO 2000
78
+ 503 IF M>9 THEN 506
79
+ 505 IF S(M)=0 THEN 510
80
+ 506 PRINT"THAT SQUARE IS OCCUPIED.":PRINT:PRINT:GOTO 500
81
+ 510 G=1:S(M)=1
82
+ 520 GOSUB 1000
83
+ 530 GOTO 100
84
+ 1000 PRINT:FOR I=1 TO 9:PRINT" ";:IF S(I)<>-1 THEN 1014
85
+ 1012 PRINT Q$" ";:GOTO 1020
86
+ 1014 IF S(I)<>0 THEN 1018
87
+ 1016 PRINT" ";:GOTO 1020
88
+ 1018 PRINT P$" ";
89
+ 1020 IF I<>3 AND I<>6 THEN 1050
90
+ 1030 PRINT:PRINT"---+---+---"
91
+ 1040 GOTO 1080
92
+ 1050 IF I=9 THEN 1080
93
+ 1060 PRINT"!";
94
+ 1080 NEXT I:PRINT:PRINT:PRINT
95
+ 1095 FOR I=1 TO 7 STEP 3
96
+ 1100 IF S(I)<>S(I+1)THEN 1115
97
+ 1105 IF S(I)<>S(I+2)THEN 1115
98
+ 1110 IF S(I)=-1 THEN 1350
99
+ 1112 IF S(I)=1 THEN 1200
100
+ 1115 NEXT I:FOR I=1 TO 3:IF S(I)<>S(I+3)THEN 1150
101
+ 1130 IF S(I)<>S(I+6)THEN 1150
102
+ 1135 IF S(I)=-1 THEN 1350
103
+ 1137 IF S(I)=1 THEN 1200
104
+ 1150 NEXT I:FOR I=1 TO 9:IF S(I)=0 THEN 1155
105
+ 1152 NEXT I:GOTO 1400
106
+ 1155 IF S(5)<>G THEN 1170
107
+ 1160 IF S(1)=G AND S(9)=G THEN 1180
108
+ 1165 IF S(3)=G AND S(7)=G THEN 1180
109
+ 1170 RETURN
110
+ 1180 IF G=-1 THEN 1350
111
+ 1200 PRINT"YOU BEAT ME!! GOOD GAME.":GOTO 2000
112
+ 1350 PRINT"I WIN, TURKEY!!!":GOTO 2000
113
+ 1400 PRINT"IT'S A DRAW. THANK YOU."
114
+ 2000 END
@@ -0,0 +1,104 @@
1
+ TIC-TAC-TOE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THE BOARD IS NUMBERED:
7
+ 1 2 3
8
+ 4 5 6
9
+ 7 8 9
10
+
11
+
12
+
13
+ DO YOU WANT 'X' OR 'O'? X
14
+
15
+ WHERE DO YOU MOVE? 1
16
+
17
+ X ! !
18
+ ---+---+---
19
+ ! !
20
+ ---+---+---
21
+ ! !
22
+
23
+
24
+
25
+ THE COMPUTER MOVES TO...
26
+
27
+ X ! !
28
+ ---+---+---
29
+ ! O !
30
+ ---+---+---
31
+ ! !
32
+
33
+
34
+
35
+ WHERE DO YOU MOVE? 9
36
+
37
+ X ! !
38
+ ---+---+---
39
+ ! O !
40
+ ---+---+---
41
+ ! ! X
42
+
43
+
44
+
45
+ THE COMPUTER MOVES TO...
46
+
47
+ X ! O !
48
+ ---+---+---
49
+ ! O !
50
+ ---+---+---
51
+ ! ! X
52
+
53
+
54
+
55
+ WHERE DO YOU MOVE? 8
56
+
57
+ X ! O !
58
+ ---+---+---
59
+ ! O !
60
+ ---+---+---
61
+ ! X ! X
62
+
63
+
64
+
65
+ THE COMPUTER MOVES TO...
66
+
67
+ X ! O !
68
+ ---+---+---
69
+ ! O !
70
+ ---+---+---
71
+ O ! X ! X
72
+
73
+
74
+
75
+ WHERE DO YOU MOVE? 3
76
+
77
+ X ! O ! X
78
+ ---+---+---
79
+ ! O !
80
+ ---+---+---
81
+ O ! X ! X
82
+
83
+
84
+
85
+ THE COMPUTER MOVES TO...
86
+
87
+ X ! O ! X
88
+ ---+---+---
89
+ ! O ! O
90
+ ---+---+---
91
+ O ! X ! X
92
+
93
+
94
+
95
+ WHERE DO YOU MOVE? 4
96
+
97
+ X ! O ! X
98
+ ---+---+---
99
+ X ! O ! O
100
+ ---+---+---
101
+ O ! X ! X
102
+
103
+
104
+ IT'S A DRAW. THANK YOU.
@@ -0,0 +1,125 @@
1
+ 10 PRINT TAB(33);"TOWERS"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 90 PRINT
5
+ 100 REM*** INITIALIZE
6
+ 110 DIM T(7,3)
7
+ 120 E=0
8
+ 130 FOR D=1 TO 7
9
+ 140 FOR N=1 TO 3
10
+ 150 T(D,N)=0
11
+ 160 NEXT N
12
+ 170 NEXT D
13
+ 180 PRINT "TOWERS OF HANOI PUZZLE.": PRINT
14
+ 200 PRINT "YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT"
15
+ 205 PRINT "TOWER, ONE AT A TIME, NEVER PUTTING A LARGER DISK ON A"
16
+ 210 PRINT "SMALLER DISK.": PRINT
17
+ 215 INPUT "HOW MANY DISKS DO YOU WANT TO MOVE (7 IS MAX)";S
18
+ 220 PRINT
19
+ 230 M=0
20
+ 240 FOR Q=1 TO 7
21
+ 250 IF Q=S THEN 350
22
+ 260 NEXT Q
23
+ 270 E=E+1
24
+ 280 IF E>2 THEN 310
25
+ 290 PRINT "SORRY, BUT I CAN'T DO THAT JOB FOR YOU.": GOTO 215
26
+ 310 PRINT "ALL RIGHT, WISE GUY, IF YOU CAN'T PLAY THE GAME RIGHT, I'LL"
27
+ 320 PRINT "JUST TAKE MY PUZZLE AND GO HOME. SO LONG.": STOP
28
+ 340 REM *** STORE DISKS FROM SMALLEST TO LARGEST
29
+ 350 PRINT "IN THIS PROGRAM, WE SHALL REFER TO DISKS BY NUMERICAL CODE."
30
+ 355 PRINT "3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE,"
31
+ 360 PRINT "7 THE NEXT, AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH"
32
+ 365 PRINT "2 DISKS, THEIR CODE NAMES WOULD BE 13 AND 15. WITH 3 DISKS"
33
+ 370 PRINT "THE CODE NAMES WOULD BE 11, 13 AND 15, ETC. THE NEEDLES"
34
+ 375 PRINT "ARE NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL"
35
+ 380 PRINT "START WITH THE DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM"
36
+ 385 PRINT "TO NEEDLE 3."
37
+ 390 PRINT: PRINT "GOOD LUCK!": PRINT
38
+ 400 Y=7: D=15
39
+ 420 FOR X=S TO 1 STEP -1
40
+ 430 T(Y,1)=D: D=D-2: Y=Y-1
41
+ 460 NEXT X
42
+ 470 GOSUB 1230
43
+ 480 PRINT "WHICH DISK WOULD YOU LIKE TO MOVE";:E=0
44
+ 500 INPUT D
45
+ 510 IF (D-3)*(D-5)*(D-7)*(D-9)*(D-11)*(D-13)*(D-15)=0 THEN 580
46
+ 520 PRINT "ILLEGAL ENTRY... YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15."
47
+ 530 E=E+1: IF E>1 THEN 560
48
+ 550 GOTO 500
49
+ 560 PRINT "STOP WASTING MY TIME. GO BOTHER SOMEONE ELSE.": STOP
50
+ 580 REM *** CHECK IF REQUESTED DISK IS BELOW ANOTHER
51
+ 590 FOR R=1 TO 7
52
+ 600 FOR C=1 TO 3
53
+ 610 IF T(R,C)=D THEN 640
54
+ 620 NEXT C: NEXT R
55
+ 640 FOR Q=R TO 1 STEP -1
56
+ 645 IF T(Q,C)=0 THEN 660
57
+ 650 IF T(Q,C)<D THEN 680
58
+ 660 NEXT Q
59
+ 670 GOTO 700
60
+ 680 PRINT "THAT DISK IS BELOW ANOTHER ONE. MAKE ANOTHER CHOICE."
61
+ 690 GOTO 480
62
+ 700 E=0
63
+ 705 INPUT "PLACE DISK ON WHICH NEEDLE";N
64
+ 730 IF (N-1)*(N-2)*(N-3)=0 THEN 800
65
+ 735 E=E+1
66
+ 740 IF E>1 THEN 780
67
+ 750 PRINT "I'LL ASSUME YOU HIT THE WRONG KEY THIS TIME. BUT WATCH IT,"
68
+ 760 PRINT "I ONLY ALLOW ONE MISTAKE.": GOTO 705
69
+ 780 PRINT "I TRIED TO WARN YOU, BUT YOU WOULDN'T LISTEN."
70
+ 790 PRINT "BYE BYE, BIG SHOT.":STOP
71
+ 800 FOR R=1 TO 7
72
+ 810 IF T(R,N)<>0 THEN 840
73
+ 820 NEXT R
74
+ 830 GOTO 880
75
+ 835 REM *** CHECK IF DISK TO BE PLACED ON A LARGER ONE
76
+ 840 IF D<T(R,N) THEN 880
77
+ 850 PRINT "YOU CAN'T PLACE A LARGER DISK ON TOP OF A SMALLER ONE,"
78
+ 860 PRINT "IT MIGHT CRUSH IT!": PRINT "NOW THEN, ";:GOTO 480
79
+ 875 REM *** MOVE RELOCATED DISK
80
+ 880 FOR V=1 TO 7: FOR W=1 TO 3
81
+ 900 IF T(V,W)=D THEN 930
82
+ 910 NEXT W: NEXT V
83
+ 925 REM *** LOCATE EMPTY SPACE ON NEEDLE N
84
+ 930 FOR U=1 TO 7
85
+ 940 IF T(U,N)<>0 THEN 970
86
+ 950 NEXT U
87
+ 960 U=7: GOTO 980
88
+ 965 REM *** MOVE DISK AND SET OLD LOCATION TO 0
89
+ 970 U=U-1
90
+ 980 T(U,N)=T(V,W): T(V,W)=0
91
+ 995 REM *** PRINT OUT CURRENT STATUS
92
+ 1000 GOSUB 1230
93
+ 1018 REM *** CHECK IF DONE
94
+ 1020 M=M+1
95
+ 1030 FOR R=1 TO 7: FOR C=1 TO 2
96
+ 1050 IF T(R,C)<>0 THEN 1090
97
+ 1060 NEXT C: NEXT R
98
+ 1080 GOTO 1120
99
+ 1090 IF M<=128 THEN 480
100
+ 1100 PRINT "SORRY, BUT I HAVE ORDERS TO STOP IF YOU MAKE MORE THAN"
101
+ 1110 PRINT "128 MOVES.": STOP
102
+ 1120 IF M<>2^S-1 THEN 1140
103
+ 1130 PRINT:PRINT "CONGRATULATIONS!!":PRINT
104
+ 1140 PRINT "YOU HAVE PERFORMED THE TASK IN";M;"MOVES."
105
+ 1150 PRINT: PRINT "TRY AGAIN (YES OR NO)";: INPUT A$
106
+ 1160 IF A$="NO" THEN 1390
107
+ 1170 IF A$="YES" THEN 90
108
+ 1180 PRINT: PRINT "'YES' OR 'NO' PLEASE";: INPUT A$: GOTO 1160
109
+ 1230 REM *** PRINT SUBROUTINE
110
+ 1240 FOR K=1 TO 7
111
+ 1250 Z=10
112
+ 1260 FOR J=1 TO 3
113
+ 1270 IF T(K,J)=0 THEN 1330
114
+ 1280 PRINT TAB(Z-INT(T(K,J)/2));
115
+ 1290 FOR V=1 TO T(K,J)
116
+ 1300 PRINT "*";
117
+ 1310 NEXT V
118
+ 1320 GOTO 1340
119
+ 1330 PRINT TAB(Z);"*";
120
+ 1340 Z=Z+21
121
+ 1350 NEXT J
122
+ 1360 PRINT
123
+ 1370 NEXT K
124
+ 1380 RETURN
125
+ 1390 PRINT: PRINT "THANKS FOR THE GAME!": PRINT: END
@@ -0,0 +1,9 @@
1
+ 2
2
+ 0
3
+ 13
4
+ 2
5
+ 15
6
+ 3
7
+ 13
8
+ 3
9
+ NO
@@ -0,0 +1,70 @@
1
+ TOWERS
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+
7
+ TOWERS OF HANOI PUZZLE.
8
+
9
+ YOU MUST TRANSFER THE DISKS FROM THE LEFT TO THE RIGHT
10
+ TOWER, ONE AT A TIME, NEVER PUTTING A LARGER DISK ON A
11
+ SMALLER DISK.
12
+
13
+ HOW MANY DISKS DO YOU WANT TO MOVE (7 IS MAX)? 2
14
+
15
+ IN THIS PROGRAM, WE SHALL REFER TO DISKS BY NUMERICAL CODE.
16
+ 3 WILL REPRESENT THE SMALLEST DISK, 5 THE NEXT SIZE,
17
+ 7 THE NEXT, AND SO ON, UP TO 15. IF YOU DO THE PUZZLE WITH
18
+ 2 DISKS, THEIR CODE NAMES WOULD BE 13 AND 15. WITH 3 DISKS
19
+ THE CODE NAMES WOULD BE 11, 13 AND 15, ETC. THE NEEDLES
20
+ ARE NUMBERED FROM LEFT TO RIGHT, 1 TO 3. WE WILL
21
+ START WITH THE DISKS ON NEEDLE 1, AND ATTEMPT TO MOVE THEM
22
+ TO NEEDLE 3.
23
+
24
+ GOOD LUCK!
25
+
26
+ * * *
27
+ * * *
28
+ * * *
29
+ * * *
30
+ * * *
31
+ ************* * *
32
+ *************** * *
33
+ WHICH DISK WOULD YOU LIKE TO MOVE? 0
34
+ ILLEGAL ENTRY... YOU MAY ONLY TYPE 3,5,7,9,11,13, OR 15.
35
+ ? 13
36
+ PLACE DISK ON WHICH NEEDLE? 2
37
+ * * *
38
+ * * *
39
+ * * *
40
+ * * *
41
+ * * *
42
+ * * *
43
+ *************** ************* *
44
+ WHICH DISK WOULD YOU LIKE TO MOVE? 15
45
+ PLACE DISK ON WHICH NEEDLE? 3
46
+ * * *
47
+ * * *
48
+ * * *
49
+ * * *
50
+ * * *
51
+ * * *
52
+ * ************* ***************
53
+ WHICH DISK WOULD YOU LIKE TO MOVE? 13
54
+ PLACE DISK ON WHICH NEEDLE? 3
55
+ * * *
56
+ * * *
57
+ * * *
58
+ * * *
59
+ * * *
60
+ * * *************
61
+ * * ***************
62
+
63
+ CONGRATULATIONS!!
64
+
65
+ YOU HAVE PERFORMED THE TASK IN 3 MOVES.
66
+
67
+ TRY AGAIN (YES OR NO)? NO
68
+
69
+ THANKS FOR THE GAME!
70
+
@@ -0,0 +1,24 @@
1
+ 1 PRINT TAB(33);"TRAIN"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT: PRINT: PRINT
4
+ 4 PRINT "TIME - SPEED DISTANCE EXERCISE": PRINT
5
+ 10 C=INT(25*RND(1))+40
6
+ 15 D=INT(15*RND(1))+5
7
+ 20 T=INT(19*RND(1))+20
8
+ 25 PRINT " A CAR TRAVELING";C;"MPH CAN MAKE A CERTAIN TRIP IN"
9
+ 30 PRINT D;"HOURS LESS THAN A TRAIN TRAVELING AT";T;"MPH."
10
+ 35 PRINT "HOW LONG DOES THE TRIP TAKE BY CAR";
11
+ 40 INPUT A
12
+ 45 V=D*T/(C-T)
13
+ 50 E=INT(ABS((V-A)*100/A)+.5)
14
+ 55 IF E>5 THEN 70
15
+ 60 PRINT "GOOD! ANSWER WITHIN";E;"PERCENT."
16
+ 65 GOTO 80
17
+ 70 PRINT "SORRY. YOU WERE OFF BY";E;"PERCENT."
18
+ 80 PRINT "CORRECT ANSWER IS";V;"HOURS."
19
+ 90 PRINT
20
+ 95 PRINT "ANOTHER PROBLEM (YES OR NO)";
21
+ 100 INPUT A$
22
+ 105 PRINT
23
+ 110 IF A$="YES" THEN 10
24
+ 999 END
@@ -0,0 +1,4 @@
1
+ 21
2
+ YES
3
+ 123
4
+ NO
@@ -0,0 +1,23 @@
1
+ TRAIN
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ TIME - SPEED DISTANCE EXERCISE
7
+
8
+ A CAR TRAVELING 53 MPH CAN MAKE A CERTAIN TRIP IN
9
+ 15 HOURS LESS THAN A TRAIN TRAVELING AT 31 MPH.
10
+ HOW LONG DOES THE TRIP TAKE BY CAR? 21
11
+ GOOD! ANSWER WITHIN 1 PERCENT.
12
+ CORRECT ANSWER IS 21.13636 HOURS.
13
+
14
+ ANOTHER PROBLEM (YES OR NO)? YES
15
+
16
+ A CAR TRAVELING 53 MPH CAN MAKE A CERTAIN TRIP IN
17
+ 11 HOURS LESS THAN A TRAIN TRAVELING AT 32 MPH.
18
+ HOW LONG DOES THE TRIP TAKE BY CAR? 123
19
+ SORRY. YOU WERE OFF BY 86 PERCENT.
20
+ CORRECT ANSWER IS 16.7619 HOURS.
21
+
22
+ ANOTHER PROBLEM (YES OR NO)? NO
23
+
@@ -0,0 +1,49 @@
1
+ 1 PRINT TAB(34);"TRAP"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 10 G=6
5
+ 20 N=100
6
+ 30 REM-TRAP
7
+ 40 REM-STEVE ULLMAN, 8-1-72
8
+ 50 PRINT "INSTRUCTIONS";
9
+ 60 INPUT Z$
10
+ 70 IF LEFT$(Z$,1)<>"Y" THEN 180
11
+ 80 PRINT "I AM THINKING OF A NUMBER BETWEEN 1 AND";N
12
+ 90 PRINT "TRY TO GUESS MY NUMBER. ON EACH GUESS,"
13
+ 100 PRINT "YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP"
14
+ 110 PRINT "MY NUMBER BETWEEN THE TWO NUMBERS. I WILL"
15
+ 120 PRINT "TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY"
16
+ 130 PRINT "NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF"
17
+ 140 PRINT "MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS."
18
+ 150 PRINT "IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE"
19
+ 160 PRINT "YOUR GUESS FOR BOTH YOUR TRAP NUMBERS."
20
+ 170 PRINT "YOU GET";G;"GUESSES TO GET MY NUMBER."
21
+ 180 X=INT(N*RND(1))+1
22
+ 190 FOR Q=1 TO G
23
+ 200 PRINT
24
+ 210 PRINT "GUESS #";Q;
25
+ 220 INPUT A,B
26
+ 230 IF A=B AND X=A THEN 400
27
+ 240 IF A <= B THEN 260
28
+ 250 GOSUB 360
29
+ 260 IF A <= X AND X <= B THEN 320
30
+ 270 IF X<A THEN 300
31
+ 280 PRINT "MY NUMBER IS LARGER THAN YOUR TRAP NUMBERS."
32
+ 290 GOTO 330
33
+ 300 PRINT "MY NUMBER IS SMALLER THAN YOUR TRAP NUMBERS."
34
+ 310 GOTO 330
35
+ 320 PRINT "YOU HAVE TRAPPED MY NUMBER."
36
+ 330 NEXT Q
37
+ 340 PRINT "SORRY, THAT'S";G;"GUESSES. THE NUMBER WAS";X
38
+ 345 PRINT
39
+ 350 GOTO 410
40
+ 360 R=A
41
+ 370 A=B
42
+ 380 B=R
43
+ 390 RETURN
44
+ 400 PRINT "YOU GOT IT!!!"
45
+ 410 PRINT
46
+ 420 PRINT "TRY AGAIN."
47
+ 430 PRINT
48
+ 440 GOTO 180
49
+ 450 END
@@ -0,0 +1,7 @@
1
+ YES
2
+ 33,66
3
+ 41,58
4
+ 45,54
5
+ 55,57
6
+ 56,57
7
+ 55,55
@@ -0,0 +1,40 @@
1
+ TRAP
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ INSTRUCTIONS? YES
7
+ I AM THINKING OF A NUMBER BETWEEN 1 AND 100
8
+ TRY TO GUESS MY NUMBER. ON EACH GUESS,
9
+ YOU ARE TO ENTER 2 NUMBERS, TRYING TO TRAP
10
+ MY NUMBER BETWEEN THE TWO NUMBERS. I WILL
11
+ TELL YOU IF YOU HAVE TRAPPED MY NUMBER, IF MY
12
+ NUMBER IS LARGER THAN YOUR TWO NUMBERS, OR IF
13
+ MY NUMBER IS SMALLER THAN YOUR TWO NUMBERS.
14
+ IF YOU WANT TO GUESS ONE SINGLE NUMBER, TYPE
15
+ YOUR GUESS FOR BOTH YOUR TRAP NUMBERS.
16
+ YOU GET 6 GUESSES TO GET MY NUMBER.
17
+
18
+ GUESS # 1 ? 33,66
19
+ YOU HAVE TRAPPED MY NUMBER.
20
+
21
+ GUESS # 2 ? 41,58
22
+ YOU HAVE TRAPPED MY NUMBER.
23
+
24
+ GUESS # 3 ? 45,54
25
+ MY NUMBER IS LARGER THAN YOUR TRAP NUMBERS.
26
+
27
+ GUESS # 4 ? 55,57
28
+ YOU HAVE TRAPPED MY NUMBER.
29
+
30
+ GUESS # 5 ? 56,57
31
+ MY NUMBER IS SMALLER THAN YOUR TRAP NUMBERS.
32
+
33
+ GUESS # 6 ? 55,55
34
+ YOU GOT IT!!!
35
+
36
+ TRY AGAIN.
37
+
38
+
39
+ GUESS # 1 ?
40
+ Error on line 220: No more input
@@ -0,0 +1,68 @@
1
+ 10 PRINT TAB(33);"WAR"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT: PRINT: PRINT
4
+ 100 PRINT "THIS IS THE CARD GAME OF WAR. EACH CARD IS GIVEN BY SUIT-#"
5
+ 110 PRINT "AS S-7 FOR SPADE 7. ";
6
+ 120 PRINT "DO YOU WANT DIRECTIONS";
7
+ 130 INPUT B$
8
+ 140 IF B$="NO" THEN 210
9
+ 150 IF B$="YES" THEN 180
10
+ 160 PRINT "YES OR NO, PLEASE. ";
11
+ 170 GOTO 120
12
+ 180 PRINT "THE COMPUTER GIVES YOU AND IT A 'CARD'. THE HIGHER CARD"
13
+ 190 PRINT "(NUMERICALLY) WINS. THE GAME ENDS WHEN YOU CHOOSE NOT TO"
14
+ 200 PRINT "CONTINUE OR WHEN YOU HAVE FINISHED THE PACK."
15
+ 210 PRINT
16
+ 220 PRINT
17
+ 230 DIM A$(52),L(54)
18
+ 240 FOR I=1 TO 52
19
+ 250 READ A$(I)
20
+ 260 NEXT I
21
+ 270 REM
22
+ 280 FOR J=1 TO 52
23
+ 290 LET L(J)=INT(52*RND(1))+1
24
+ 295 IF J=1 THEN 350
25
+ 300 FOR K=1 TO J-1
26
+ 310 IF L(K)<>L(J) THEN 340
27
+ 320 REM
28
+ 330 GOTO 290
29
+ 340 NEXT K
30
+ 350 NEXT J
31
+ 360 P=P+1
32
+ 370 M1=L(P)
33
+ 380 P=P+1
34
+ 390 M2=L(P)
35
+ 400 PRINT
36
+ 420 PRINT "YOU: ";A$(M1),"COMPUTER: ";A$(M2)
37
+ 430 N1=INT((M1-.5)/4)
38
+ 440 N2=INT((M2-.5)/4)
39
+ 450 IF N1>=N2 THEN 490
40
+ 460 A1=A1+1
41
+ 470 PRINT "THE COMPUTER WINS!!! YOU HAVE";B1;"AND THE COMPUTER HAS";A1
42
+ 480 GOTO 540
43
+ 490 IF N1=N2 THEN 530
44
+ 500 B1=B1+1
45
+ 510 PRINT "YOU WIN. YOU HAVE";B1;"AND THE COMPUTER HAS";A1
46
+ 520 GOTO 540
47
+ 530 PRINT "TIE. NO SCORE CHANGE."
48
+ 540 IF L(P+1)=0 THEN 610
49
+ 550 PRINT "DO YOU WANT TO CONTINUE";
50
+ 560 INPUT V$
51
+ 570 IF V$="YES" THEN 360
52
+ 580 IF V$="NO" THEN 650
53
+ 590 PRINT "YES OR NO, PLEASE. ";
54
+ 600 GOTO 540
55
+ 610 PRINT
56
+ 620 PRINT
57
+ 630 PRINT "WE HAVE RUN OUT OF CARDS. FINAL SCORE: YOU: ";B1;
58
+ 640 PRINT " THE COMPUTER: ";A1:PRINT
59
+ 650 PRINT "THANKS FOR PLAYING. IT WAS FUN."
60
+ 655 PRINT
61
+ 660 DATA "S-2","H-2","C-2","D-2","S-3","H-3","C-3","D-3"
62
+ 670 DATA "S-4","H-4","C-4","D-4","S-5","H-5","C-5","D-5"
63
+ 680 DATA "S-6","H-6","C-6","D-6","S-7","H-7","C-7","D-7"
64
+ 690 DATA "S-8","H-8","C-8","D-8","S-9","H-9","C-9","D-9"
65
+ 700 DATA "S-10","H-10","C-10","D-10","S-J","H-J","C-J","D-J"
66
+ 710 DATA "S-Q","H-Q","C-Q","D-Q","S-K","H-K","C-K","D-K"
67
+ 720 DATA "S-A","H-A","C-A","D-A"
68
+ 999 END
@@ -0,0 +1,11 @@
1
+ YES
2
+ Y
3
+ YES
4
+ YES
5
+ YES
6
+ YES
7
+ YES
8
+ YES
9
+ YES
10
+ YES
11
+ YES