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,232 @@
1
+ 2 PRINT TAB(30);"MASTERMIND"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT: PRINT: PRINT
4
+ 10 REM
5
+ 20 REM MASTERMIND II
6
+ 30 REM STEVE NORTH
7
+ 40 REM CREATIVE COMPUTING
8
+ 50 REM PO BOX 789-M MORRISTOWN NEW JERSEY 07960
9
+ 60 REM
10
+ 70 REM
11
+ 80 INPUT "NUMBER OF COLORS";C9
12
+ 90 IF C9>8 THEN PRINT "NO MORE THAN 8, PLEASE!":GOTO 80
13
+ 100 INPUT "NUMBER OF POSITIONS";P9
14
+ 110 INPUT "NUMBER OF ROUNDS";R9
15
+ 120 P=C9^P9
16
+ 130 PRINT "TOTAL POSSIBILITIES =";P
17
+ 140 H=0:C=0
18
+ 150 DIM Q(P9),S(10,2),S$(10),A$(P9),G$(P9),I(P),H$(P9)
19
+ 160 L$="BWRGOYPT"
20
+ 170 PRINT
21
+ 180 PRINT
22
+ 190 PRINT "COLOR LETTER"
23
+ 200 PRINT "===== ======"
24
+ 210 FOR X=1 TO C9
25
+ 220 READ X$
26
+ 230 PRINT X$;TAB(13);MID$(L$,X,1)
27
+ 240 NEXT X
28
+ 250 PRINT
29
+ 260 FOR R=1 TO R9
30
+ 270 PRINT
31
+ 280 PRINT "ROUND NUMBER";R;"----"
32
+ 290 PRINT
33
+ 300 PRINT "GUESS MY COMBINATION.":PRINT
34
+ 310 REM GET A COMBINATION
35
+ 320 A=INT(P*RND(1)+1)
36
+ 330 GOSUB 3000
37
+ 340 FOR X=1 TO A
38
+ 350 GOSUB 3500
39
+ 360 NEXT X
40
+ 370 FOR M=1 TO 10
41
+ 380 PRINT "MOVE # ";M;" GUESS ";:INPUT X$
42
+ 390 IF X$="BOARD" THEN 2000
43
+ 400 IF X$="QUIT" THEN 2500
44
+ 410 IF LEN(X$)<>P9 THEN PRINT "BAD NUMBER OF POSITIONS.":GOTO 380
45
+ 420 REM UNPACK X$ INTO G$(1-P9)
46
+ 430 FOR X=1 TO P9
47
+ 440 FOR Y=1 TO C9
48
+ 450 IF MID$(X$,X,1)=MID$(L$,Y,1) THEN 480
49
+ 460 NEXT Y
50
+ 470 PRINT "'"; MID$(X$,X,1); "' IS UNRECOGNIZED.":GOTO 380
51
+ 480 G$(X)=MID$(X$,X,1)
52
+ 490 NEXT X
53
+ 500 REM NOW WE CONVERT Q(1-P9) INTO A$(1-P9) [ACTUAL GUESS]
54
+ 510 GOSUB 4000
55
+ 520 REM AND GET NUMBER OF BLACKS AND WHITES
56
+ 530 GOSUB 4500
57
+ 540 IF B=P9 THEN 630
58
+ 550 REM TELL HUMAN RESULTS
59
+ 560 PRINT "YOU HAVE ";B;" BLACKS AND ";W;" WHITES."
60
+ 570 REM SAVE ALL THIS STUFF FOR BOARD PRINTOUT LATER
61
+ 580 S$(M)=X$
62
+ 590 S(M,1)=B
63
+ 600 S(M,2)=W
64
+ 610 NEXT M
65
+ 620 PRINT "YOU RAN OUT OF MOVES! THAT'S ALL YOU GET!":GOTO 640
66
+ 622 GOSUB 4000
67
+ 623 PRINT "THE ACTUAL COMBINATION WAS: ";
68
+ 624 FOR X=1 TO P9
69
+ 625 PRINT A$(X);
70
+ 626 NEXT X
71
+ 627 PRINT
72
+ 630 PRINT "YOU GUESSED IT IN ";M;" MOVES!"
73
+ 640 H=H+M
74
+ 650 GOSUB 5000
75
+ 660 REM
76
+ 670 REM NOW COMPUTER GUESSES
77
+ 680 REM
78
+ 690 FOR X=1 TO P
79
+ 700 I(X)=1
80
+ 710 NEXT X
81
+ 720 PRINT "NOW I GUESS. THINK OF A COMBINATION."
82
+ 730 INPUT "HIT RETURN WHEN READY:";X$
83
+ 740 FOR M=1 TO 10
84
+ 750 GOSUB 3000
85
+ 760 REM FIND A GUESS
86
+ 770 G=INT(P*RND(1)+1)
87
+ 780 IF I(G)=1 THEN 890
88
+ 790 FOR X=G TO P
89
+ 800 IF I(X)=1 THEN 880
90
+ 810 NEXT X
91
+ 820 FOR X=1 TO G
92
+ 830 IF I(X)=1 THEN 880
93
+ 840 NEXT X
94
+ 850 PRINT "YOU HAVE GIVEN ME INCONSISTENT INFORMATION."
95
+ 860 PRINT "TRY AGAIN, AND THIS TIME PLEASE BE MORE CAREFUL."
96
+ 870 GOTO 660
97
+ 880 G=X
98
+ 890 REM NOW WE CONVERT GUESS #G INTO G$
99
+ 900 FOR X=1 TO G
100
+ 910 GOSUB 3500
101
+ 920 NEXT X
102
+ 930 GOSUB 6000
103
+ 940 PRINT "MY GUESS IS: ";
104
+ 950 FOR X=1 TO P9
105
+ 960 PRINT H$(X);
106
+ 970 NEXT X
107
+ 980 INPUT " BLACKS, WHITES ";B1,W1
108
+ 990 IF B1=P9 THEN 1120
109
+ 1000 GOSUB 3000
110
+ 1010 FOR X=1 TO P
111
+ 1020 GOSUB 3500
112
+ 1030 IF I(X)=0 THEN 1070
113
+ 1035 GOSUB 6500
114
+ 1040 GOSUB 4000
115
+ 1050 GOSUB 4500
116
+ 1060 IF B1<>B OR W1<>W THEN I(X)=0
117
+ 1070 NEXT X
118
+ 1080 NEXT M
119
+ 1090 PRINT "I USED UP ALL MY MOVES!"
120
+ 1100 PRINT "I GUESS MY CPU IS JUST HAVING AN OFF DAY."
121
+ 1110 GOTO 1130
122
+ 1120 PRINT "I GOT IT IN ";M;" MOVES!"
123
+ 1130 C=C+M
124
+ 1140 GOSUB 5000
125
+ 1150 NEXT R
126
+ 1160 PRINT "GAME OVER"
127
+ 1170 PRINT "FINAL SCORE:"
128
+ 1180 GOSUB 5040
129
+ 1190 STOP
130
+ 2000 REM
131
+ 2010 REM BOARD PRINTOUT ROUTINE
132
+ 2020 REM
133
+ 2025 PRINT
134
+ 2030 PRINT "BOARD"
135
+ 2040 PRINT "MOVE GUESS BLACK WHITE"
136
+ 2050 FOR Z=1 TO M-1
137
+ 2060 PRINT Z;TAB(9);S$(Z);TAB(25);S(Z,1);TAB(35);S(Z,2)
138
+ 2070 NEXT Z
139
+ 2075 PRINT
140
+ 2080 GOTO 380
141
+ 2500 REM
142
+ 2510 REM QUIT ROUTINE
143
+ 2520 REM
144
+ 2530 PRINT "QUITTER! MY COMBINATION WAS: ";
145
+ 2535 GOSUB 4000
146
+ 2540 FOR X=1 TO P9
147
+ 2550 PRINT A$(X);
148
+ 2560 NEXT X
149
+ 2565 PRINT
150
+ 2570 PRINT "GOOD BYE"
151
+ 2580 STOP
152
+ 3000 REM
153
+ 3010 REM INITIALIZE Q(1-P9) TO ZEROS
154
+ 3020 REM
155
+ 3030 FOR S=1 TO P9
156
+ 3040 Q(S)=0
157
+ 3050 NEXT S
158
+ 3060 RETURN
159
+ 3500 REM
160
+ 3510 REM INCREMENT Q(1-P9)
161
+ 3520 REM
162
+ 3522 IF Q(1)>0 THEN 3530
163
+ 3524 REM IF ZERO, THIS IS OUR FIRST INCREMENT: MAKE ALL ONES
164
+ 3526 FOR S=1 TO P9
165
+ 3527 Q(S)=1
166
+ 3528 NEXT S
167
+ 3529 RETURN
168
+ 3530 Q=1
169
+ 3540 Q(Q)=Q(Q)+1
170
+ 3550 IF Q(Q)<=C9 THEN RETURN
171
+ 3560 Q(Q)=1
172
+ 3570 Q=Q+1
173
+ 3580 GOTO 3540
174
+ 4000 REM
175
+ 4010 REM CONVERT Q(1-P9) TO A$(1-P9)
176
+ 4020 REM
177
+ 4030 FOR S=1 TO P9
178
+ 4040 A$(S)=MID$(L$,Q(S),1)
179
+ 4050 NEXT S
180
+ 4060 RETURN
181
+ 4500 REM
182
+ 4510 REM GET NUMBER OF BLACKS (B) AND WHITES (W)
183
+ 4520 REM MASHES G$ AND A$ IN THE PROCESS
184
+ 4530 REM
185
+ 4540 B=0:W=0:F=0
186
+ 4550 FOR S=1 TO P9
187
+ 4560 IF G$(S)<>A$(S) THEN 4620
188
+ 4570 B=B+1
189
+ 4580 G$(S)=CHR$(F)
190
+ 4590 A$(S)=CHR$(F+1)
191
+ 4600 F=F+2
192
+ 4610 GOTO 4660
193
+ 4620 FOR T=1 TO P9
194
+ 4630 IF G$(S)<>A$(T) THEN 4650
195
+ 4640 IF G$(T)=A$(T) THEN 4650
196
+ 4645 W=W+1:A$(T)=CHR$(F):G$(S)=CHR$(F+1):F=F+2:GOTO 4660
197
+ 4650 NEXT T
198
+ 4660 NEXT S
199
+ 4670 RETURN
200
+ 5000 REM
201
+ 5010 REM PRINT SCORE
202
+ 5020 REM
203
+ 5030 PRINT "SCORE:"
204
+ 5040 PRINT " COMPUTER ";C
205
+ 5050 PRINT " HUMAN ";H
206
+ 5060 PRINT
207
+ 5070 RETURN
208
+ 5500 REM
209
+ 5510 REM CONVERT Q(1-P9) INTO G$(1-P9)
210
+ 5520 REM
211
+ 5530 FOR S=1 TO P9
212
+ 5540 G$(S)=MID$(L$,Q(S),1)
213
+ 5550 NEXT S
214
+ 5560 RETURN
215
+ 6000 REM
216
+ 6010 REM CONVERT Q(1-P9) TO H$(1-P9)
217
+ 6020 REM
218
+ 6030 FOR S=1 TO P9
219
+ 6040 H$(S)=MID$(L$,Q(S),1)
220
+ 6050 NEXT S
221
+ 6060 RETURN
222
+ 6500 REM
223
+ 6510 REM COPY H$ INTO G$
224
+ 6520 REM
225
+ 6530 FOR S=1 TO P9
226
+ 6540 G$(S)=H$(S)
227
+ 6550 NEXT S
228
+ 6560 RETURN
229
+ 8000 REM PROGRAM DATA FOR COLOR NAMES
230
+ 8010 DATA BLACK,WHITE,RED,GREEN,ORANGE,YELLOW,PURPLE,TAN
231
+ 9998 REM ...WE'RE SORRY BUT IT'S TIME TO GO...
232
+ 9999 END
@@ -0,0 +1,18 @@
1
+ 6
2
+ 4
3
+ 12
4
+ BBBB
5
+ WWWW
6
+ RRRR
7
+ GGGG
8
+ OOOO
9
+ WBBB
10
+ BWBB
11
+ BBWB
12
+ GGWO
13
+ GOWG
14
+
15
+ 1,0
16
+ 0,0
17
+ 0,0
18
+ 4,0
@@ -0,0 +1,67 @@
1
+ MASTERMIND
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ NUMBER OF COLORS? 6
7
+ NUMBER OF POSITIONS? 4
8
+ NUMBER OF ROUNDS? 12
9
+ TOTAL POSSIBILITIES = 1296
10
+
11
+
12
+ COLOR LETTER
13
+ ===== ======
14
+ BLACK B
15
+ WHITE W
16
+ RED R
17
+ GREEN G
18
+ ORANGE O
19
+ YELLOW Y
20
+
21
+
22
+ ROUND NUMBER 1 ----
23
+
24
+ GUESS MY COMBINATION.
25
+
26
+ MOVE # 1 GUESS ? BBBB
27
+ YOU HAVE 0 BLACKS AND 0 WHITES.
28
+ MOVE # 2 GUESS ? WWWW
29
+ YOU HAVE 1 BLACKS AND 0 WHITES.
30
+ MOVE # 3 GUESS ? RRRR
31
+ YOU HAVE 0 BLACKS AND 0 WHITES.
32
+ MOVE # 4 GUESS ? GGGG
33
+ YOU HAVE 2 BLACKS AND 0 WHITES.
34
+ MOVE # 5 GUESS ? OOOO
35
+ YOU HAVE 1 BLACKS AND 0 WHITES.
36
+ MOVE # 6 GUESS ? WBBB
37
+ YOU HAVE 0 BLACKS AND 1 WHITES.
38
+ MOVE # 7 GUESS ? BWBB
39
+ YOU HAVE 0 BLACKS AND 1 WHITES.
40
+ MOVE # 8 GUESS ? BBWB
41
+ YOU HAVE 1 BLACKS AND 0 WHITES.
42
+ MOVE # 9 GUESS ? GGWO
43
+ YOU HAVE 2 BLACKS AND 2 WHITES.
44
+ MOVE # 10 GUESS ? GOWG
45
+ YOU GUESSED IT IN 10 MOVES!
46
+ SCORE:
47
+ COMPUTER 0
48
+ HUMAN 10
49
+
50
+ NOW I GUESS. THINK OF A COMBINATION.
51
+ HIT RETURN WHEN READY:?
52
+ MY GUESS IS: ROWO BLACKS, WHITES ? 1,0
53
+ MY GUESS IS: GOGG BLACKS, WHITES ? 0,0
54
+ MY GUESS IS: RBBY BLACKS, WHITES ? 0,0
55
+ MY GUESS IS: WWWW BLACKS, WHITES ? 4,0
56
+ I GOT IT IN 4 MOVES!
57
+ SCORE:
58
+ COMPUTER 4
59
+ HUMAN 10
60
+
61
+
62
+ ROUND NUMBER 2 ----
63
+
64
+ GUESS MY COMBINATION.
65
+
66
+ MOVE # 1 GUESS ?
67
+ Error on line 380: No more input
@@ -0,0 +1,60 @@
1
+ 10 PRINT TAB(31);"MATH DICE"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 40 PRINT "THIS PROGRAM GENERATES SUCCESIVE PICTURES OF TWO DICE."
5
+ 50 PRINT "WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION"
6
+ 60 PRINT "MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY."
7
+ 70 PRINT "TO CONCLUDE THE LESSON, TYPE CONTROL-C AS YOUR ANSWER."
8
+ 80 PRINT
9
+ 90 PRINT
10
+ 100 N=N+1
11
+ 110 D=INT(6*RND(1)+1)
12
+ 120 PRINT" ----- "
13
+ 130 IF D=1 THEN 200
14
+ 140 IF D=2 THEN 180
15
+ 150 IF D=3 THEN 180
16
+ 160 PRINT "I * * I"
17
+ 170 GOTO 210
18
+ 180 PRINT "I * I"
19
+ 190 GOTO 210
20
+ 200 PRINT "I I"
21
+ 210 IF D=2 THEN 260
22
+ 220 IF D=4 THEN 260
23
+ 230 IF D=6 THEN 270
24
+ 240 PRINT "I * I"
25
+ 250 GOTO 280
26
+ 260 PRINT "I I"
27
+ 265 GOTO 280
28
+ 270 PRINT "I * * I"
29
+ 280 IF D=1 THEN 350
30
+ 290 IF D=2 THEN 330
31
+ 300 IF D=3 THEN 330
32
+ 310 PRINT "I * * I"
33
+ 320 GOTO 360
34
+ 330 PRINT "I * I"
35
+ 340 GOTO 360
36
+ 350 PRINT "I I"
37
+ 360 PRINT " ----- "
38
+ 370 PRINT
39
+ 375 IF N=2 THEN 500
40
+ 380 PRINT " +"
41
+ 381 PRINT
42
+ 400 A=D
43
+ 410 GOTO 100
44
+ 500 T=D+A
45
+ 510 PRINT " =";
46
+ 520 INPUT T1
47
+ 530 IF T1=T THEN 590
48
+ 540 PRINT "NO, COUNT THE SPOTS AND GIVE ANOTHER ANSWER."
49
+ 541 PRINT " =";
50
+ 550 INPUT T2
51
+ 560 IF T2=T THEN 590
52
+ 570 PRINT "NO, THE ANSWER IS";T
53
+ 580 GOTO 600
54
+ 590 PRINT "RIGHT!"
55
+ 600 PRINT
56
+ 601 PRINT "THE DICE ROLL AGAIN..."
57
+ 610 PRINT
58
+ 615 N=0
59
+ 620 GOTO 100
60
+ 999 END
@@ -0,0 +1,86 @@
1
+ MATH DICE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS PROGRAM GENERATES SUCCESIVE PICTURES OF TWO DICE.
7
+ WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION
8
+ MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY.
9
+ TO CONCLUDE THE LESSON, TYPE CONTROL-C AS YOUR ANSWER.
10
+
11
+
12
+ -----
13
+ I * * I
14
+ I I
15
+ I * * I
16
+ -----
17
+
18
+ +
19
+
20
+ -----
21
+ I * * I
22
+ I * I
23
+ I * * I
24
+ -----
25
+
26
+ =? 9
27
+ RIGHT!
28
+
29
+ THE DICE ROLL AGAIN...
30
+
31
+ -----
32
+ I * * I
33
+ I I
34
+ I * * I
35
+ -----
36
+
37
+ +
38
+
39
+ -----
40
+ I * * I
41
+ I I
42
+ I * * I
43
+ -----
44
+
45
+ =? 8
46
+ RIGHT!
47
+
48
+ THE DICE ROLL AGAIN...
49
+
50
+ -----
51
+ I * I
52
+ I * I
53
+ I * I
54
+ -----
55
+
56
+ +
57
+
58
+ -----
59
+ I * * I
60
+ I I
61
+ I * * I
62
+ -----
63
+
64
+ =? 1
65
+ NO, COUNT THE SPOTS AND GIVE ANOTHER ANSWER.
66
+ =? 7
67
+ RIGHT!
68
+
69
+ THE DICE ROLL AGAIN...
70
+
71
+ -----
72
+ I * I
73
+ I * I
74
+ I * I
75
+ -----
76
+
77
+ +
78
+
79
+ -----
80
+ I * * I
81
+ I * * I
82
+ I * * I
83
+ -----
84
+
85
+ =?
86
+ Error on line 520: No more input
@@ -0,0 +1,56 @@
1
+ 1 PRINT TAB(33);"MUGWUMP"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 4 REM COURTESY PEOPLE'S COMPUTER COMPANY
5
+ 10 DIM P(4,2)
6
+ 20 PRINT "THE OBJECT OF THIS GAME IS TO FIND FOUR MUGWUMPS"
7
+ 30 PRINT "HIDDEN ON A 10 BY 10 GRID. HOMEBASE IS POSITION 0,0."
8
+ 40 PRINT "ANY GUESS YOU MAKE MUST BE TWO NUMBERS WITH EACH"
9
+ 50 PRINT "NUMBER BETWEEN 0 AND 9, INCLUSIVE. FIRST NUMBER"
10
+ 60 PRINT "IS DISTANCE TO RIGHT OF HOMEBASE AND SECOND NUMBER"
11
+ 70 PRINT "IS DISTANCE ABOVE HOMEBASE."
12
+ 80 PRINT
13
+ 90 PRINT "YOU GET 10 TRIES. AFTER EACH TRY, I WILL TELL"
14
+ 100 PRINT "YOU HOW FAR YOU ARE FROM EACH MUGWUMP."
15
+ 110 PRINT
16
+ 240 GOSUB 1000
17
+ 250 T=0
18
+ 260 T=T+1
19
+ 270 PRINT
20
+ 275 PRINT
21
+ 290 PRINT "TURN NO.";T;"-- WHAT IS YOUR GUESS";
22
+ 300 INPUT M,N
23
+ 310 FOR I=1 TO 4
24
+ 320 IF P(I,1)=-1 THEN 400
25
+ 330 IF P(I,1)<>M THEN 380
26
+ 340 IF P(I,2)<>N THEN 380
27
+ 350 P(I,1)=-1
28
+ 360 PRINT "YOU HAVE FOUND MUGWUMP";I
29
+ 370 GOTO 400
30
+ 380 D=SQR((P(I,1)-M)^2+(P(I,2)-N)^2)
31
+ 390 PRINT "YOU ARE";(INT(D*10))/10;"UNITS FROM MUGWUMP";I
32
+ 400 NEXT I
33
+ 410 FOR J=1 TO 4
34
+ 420 IF P(J,1)<>-1 THEN 470
35
+ 430 NEXT J
36
+ 440 PRINT
37
+ 450 PRINT "YOU GOT THEM ALL IN";T;"TURNS!"
38
+ 460 GOTO 580
39
+ 470 IF T<10 THEN 260
40
+ 480 PRINT
41
+ 490 PRINT "SORRY, THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING:"
42
+ 540 FOR I=1 TO 4
43
+ 550 IF P(I,1)=-1 THEN 570
44
+ 560 PRINT "MUGWUMP";I;"IS AT (";P(I,1);",";P(I,2);")"
45
+ 570 NEXT I
46
+ 580 PRINT
47
+ 600 PRINT "THAT WAS FUN! LET'S PLAY AGAIN......."
48
+ 610 PRINT "FOUR MORE MUGWUMPS ARE NOW IN HIDING."
49
+ 630 GOTO 240
50
+ 1000 FOR J=1 TO 2
51
+ 1010 FOR I=1 TO 4
52
+ 1020 P(I,J)=INT(10*RND(1))
53
+ 1030 NEXT I
54
+ 1040 NEXT J
55
+ 1050 RETURN
56
+ 1099 END
@@ -0,0 +1,16 @@
1
+ 0,0
2
+ 10,0
3
+ 5,4
4
+ 7,6
5
+ 6,4
6
+ 5,8
7
+ 1,1
8
+ 2,2
9
+ 3,3
10
+ 4,4
11
+ 5,5
12
+ 6,6
13
+ 7,7
14
+ 8,8
15
+ 9,9
16
+ 10,10
@@ -0,0 +1,139 @@
1
+ MUGWUMP
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THE OBJECT OF THIS GAME IS TO FIND FOUR MUGWUMPS
7
+ HIDDEN ON A 10 BY 10 GRID. HOMEBASE IS POSITION 0,0.
8
+ ANY GUESS YOU MAKE MUST BE TWO NUMBERS WITH EACH
9
+ NUMBER BETWEEN 0 AND 9, INCLUSIVE. FIRST NUMBER
10
+ IS DISTANCE TO RIGHT OF HOMEBASE AND SECOND NUMBER
11
+ IS DISTANCE ABOVE HOMEBASE.
12
+
13
+ YOU GET 10 TRIES. AFTER EACH TRY, I WILL TELL
14
+ YOU HOW FAR YOU ARE FROM EACH MUGWUMP.
15
+
16
+
17
+
18
+ TURN NO. 1 -- WHAT IS YOUR GUESS? 0,0
19
+ YOU ARE 6.4 UNITS FROM MUGWUMP 1
20
+ YOU ARE 9.2 UNITS FROM MUGWUMP 2
21
+ YOU ARE 7.2 UNITS FROM MUGWUMP 3
22
+ YOU ARE 9.4 UNITS FROM MUGWUMP 4
23
+
24
+
25
+ TURN NO. 2 -- WHAT IS YOUR GUESS? 10,0
26
+ YOU ARE 6.4 UNITS FROM MUGWUMP 1
27
+ YOU ARE 6.7 UNITS FROM MUGWUMP 2
28
+ YOU ARE 5.6 UNITS FROM MUGWUMP 3
29
+ YOU ARE 9.4 UNITS FROM MUGWUMP 4
30
+
31
+
32
+ TURN NO. 3 -- WHAT IS YOUR GUESS? 5,4
33
+ YOU HAVE FOUND MUGWUMP 1
34
+ YOU ARE 2.8 UNITS FROM MUGWUMP 2
35
+ YOU ARE 1 UNITS FROM MUGWUMP 3
36
+ YOU ARE 4 UNITS FROM MUGWUMP 4
37
+
38
+
39
+ TURN NO. 4 -- WHAT IS YOUR GUESS? 7,6
40
+ YOU HAVE FOUND MUGWUMP 2
41
+ YOU ARE 2.2 UNITS FROM MUGWUMP 3
42
+ YOU ARE 2.8 UNITS FROM MUGWUMP 4
43
+
44
+
45
+ TURN NO. 5 -- WHAT IS YOUR GUESS? 6,4
46
+ YOU HAVE FOUND MUGWUMP 3
47
+ YOU ARE 4.1 UNITS FROM MUGWUMP 4
48
+
49
+
50
+ TURN NO. 6 -- WHAT IS YOUR GUESS? 5,8
51
+ YOU HAVE FOUND MUGWUMP 4
52
+
53
+ YOU GOT THEM ALL IN 6 TURNS!
54
+
55
+ THAT WAS FUN! LET'S PLAY AGAIN.......
56
+ FOUR MORE MUGWUMPS ARE NOW IN HIDING.
57
+
58
+
59
+ TURN NO. 1 -- WHAT IS YOUR GUESS? 1,1
60
+ YOU ARE 8.9 UNITS FROM MUGWUMP 1
61
+ YOU ARE 8.2 UNITS FROM MUGWUMP 2
62
+ YOU ARE 6 UNITS FROM MUGWUMP 3
63
+ YOU ARE 4.1 UNITS FROM MUGWUMP 4
64
+
65
+
66
+ TURN NO. 2 -- WHAT IS YOUR GUESS? 2,2
67
+ YOU ARE 7.6 UNITS FROM MUGWUMP 1
68
+ YOU ARE 7 UNITS FROM MUGWUMP 2
69
+ YOU ARE 5.3 UNITS FROM MUGWUMP 3
70
+ YOU ARE 3.6 UNITS FROM MUGWUMP 4
71
+
72
+
73
+ TURN NO. 3 -- WHAT IS YOUR GUESS? 3,3
74
+ YOU ARE 6.3 UNITS FROM MUGWUMP 1
75
+ YOU ARE 6 UNITS FROM MUGWUMP 2
76
+ YOU ARE 5 UNITS FROM MUGWUMP 3
77
+ YOU ARE 3.6 UNITS FROM MUGWUMP 4
78
+
79
+
80
+ TURN NO. 4 -- WHAT IS YOUR GUESS? 4,4
81
+ YOU ARE 5 UNITS FROM MUGWUMP 1
82
+ YOU ARE 5 UNITS FROM MUGWUMP 2
83
+ YOU ARE 5 UNITS FROM MUGWUMP 3
84
+ YOU ARE 4.1 UNITS FROM MUGWUMP 4
85
+
86
+
87
+ TURN NO. 5 -- WHAT IS YOUR GUESS? 5,5
88
+ YOU ARE 4 UNITS FROM MUGWUMP 1
89
+ YOU ARE 4.4 UNITS FROM MUGWUMP 2
90
+ YOU ARE 5.3 UNITS FROM MUGWUMP 3
91
+ YOU ARE 5 UNITS FROM MUGWUMP 4
92
+
93
+
94
+ TURN NO. 6 -- WHAT IS YOUR GUESS? 6,6
95
+ YOU ARE 3.1 UNITS FROM MUGWUMP 1
96
+ YOU ARE 4.2 UNITS FROM MUGWUMP 2
97
+ YOU ARE 6 UNITS FROM MUGWUMP 3
98
+ YOU ARE 6 UNITS FROM MUGWUMP 4
99
+
100
+
101
+ TURN NO. 7 -- WHAT IS YOUR GUESS? 7,7
102
+ YOU ARE 2.8 UNITS FROM MUGWUMP 1
103
+ YOU ARE 4.4 UNITS FROM MUGWUMP 2
104
+ YOU ARE 7 UNITS FROM MUGWUMP 3
105
+ YOU ARE 7.2 UNITS FROM MUGWUMP 4
106
+
107
+
108
+ TURN NO. 8 -- WHAT IS YOUR GUESS? 8,8
109
+ YOU ARE 3.1 UNITS FROM MUGWUMP 1
110
+ YOU ARE 5 UNITS FROM MUGWUMP 2
111
+ YOU ARE 8 UNITS FROM MUGWUMP 3
112
+ YOU ARE 8.5 UNITS FROM MUGWUMP 4
113
+
114
+
115
+ TURN NO. 9 -- WHAT IS YOUR GUESS? 9,9
116
+ YOU ARE 4 UNITS FROM MUGWUMP 1
117
+ YOU ARE 6 UNITS FROM MUGWUMP 2
118
+ YOU ARE 9.2 UNITS FROM MUGWUMP 3
119
+ YOU ARE 9.8 UNITS FROM MUGWUMP 4
120
+
121
+
122
+ TURN NO. 10 -- WHAT IS YOUR GUESS? 10,10
123
+ YOU ARE 5 UNITS FROM MUGWUMP 1
124
+ YOU ARE 7 UNITS FROM MUGWUMP 2
125
+ YOU ARE 10.4 UNITS FROM MUGWUMP 3
126
+ YOU ARE 11.1 UNITS FROM MUGWUMP 4
127
+
128
+ SORRY, THAT'S 10 TRIES. HERE IS WHERE THEY'RE HIDING:
129
+ MUGWUMP 1 IS AT ( 9 , 5 )
130
+ MUGWUMP 2 IS AT ( 3 , 9 )
131
+ MUGWUMP 3 IS AT ( 7 , 0 )
132
+ MUGWUMP 4 IS AT ( 5 , 0 )
133
+
134
+ THAT WAS FUN! LET'S PLAY AGAIN.......
135
+ FOUR MORE MUGWUMPS ARE NOW IN HIDING.
136
+
137
+
138
+ TURN NO. 1 -- WHAT IS YOUR GUESS?
139
+ Error on line 300: No more input
@@ -0,0 +1,25 @@
1
+ 1 PRINT TAB(34);"NAME"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT: PRINT: PRINT
4
+ 5 DIM B$(40)
5
+ 10 PRINT "HELLO.": PRINT "MY NAME IS CREATIVE COMPUTER."
6
+ 20 PRINT "WHAT'S YOUR NAME (FIRST AND LAST";: INPUT A$: L=LEN(A$)
7
+ 30 PRINT: PRINT "THANK YOU, ";
8
+ 40 FOR I=1 TO L: B$(I)=MID$(A$,I,1): NEXT I
9
+ 50 FOR I=L TO 1 STEP -1: PRINT B$(I);: NEXT I
10
+ 60 PRINT ".": PRINT "OOPS! I GUESS I GOT IT BACKWARDS. A SMART"
11
+ 70 PRINT "COMPUTER LIKE ME SHOULDN'T MAKE A MISTAKE LIKE THAT!": PRINT
12
+ 80 PRINT "BUT I JUST NOTICED YOUR LETTERS ARE OUT OF ORDER."
13
+ 90 PRINT "LET'S PUT THEM IN ORDER LIKE THIS: ";
14
+ 100 FOR J=2 TO L: I=J-1: T$=B$(J)
15
+ 110 IF T$>B$(I) THEN 130
16
+ 120 B$(I+1)=B$(I): I=I-1: IF I>0 THEN 110
17
+ 130 B$(I+1)=T$: NEXT J
18
+ 140 FOR I=1 TO L: PRINT B$(I);: NEXT I: PRINT: PRINT
19
+ 150 PRINT "DON'T YOU LIKE THAT BETTER";: INPUT D$
20
+ 160 IF D$="YES" THEN 180
21
+ 170 PRINT: PRINT "I'M SORRY YOU DON'T LIKE IT THAT WAY.": GOTO 200
22
+ 180 PRINT: PRINT "I KNEW YOU'D AGREE!!"
23
+ 200 PRINT: PRINT "I REALLY ENJOYED MEETING YOU ";A$;"."
24
+ 210 PRINT "HAVE A NICE DAY!"
25
+ 999 END
@@ -0,0 +1,2 @@
1
+ FRED FLINSTONE
2
+ YES