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,54 @@
1
+ WAR
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS IS THE CARD GAME OF WAR. EACH CARD IS GIVEN BY SUIT-#
7
+ AS S-7 FOR SPADE 7. DO YOU WANT DIRECTIONS? YES
8
+ THE COMPUTER GIVES YOU AND IT A 'CARD'. THE HIGHER CARD
9
+ (NUMERICALLY) WINS. THE GAME ENDS WHEN YOU CHOOSE NOT TO
10
+ CONTINUE OR WHEN YOU HAVE FINISHED THE PACK.
11
+
12
+
13
+
14
+ YOU: S-9 COMPUTER: H-J
15
+ THE COMPUTER WINS!!! YOU HAVE 0 AND THE COMPUTER HAS 1
16
+ DO YOU WANT TO CONTINUE? Y
17
+ YES OR NO, PLEASE. DO YOU WANT TO CONTINUE? YES
18
+
19
+ YOU: D-9 COMPUTER: C-7
20
+ YOU WIN. YOU HAVE 1 AND THE COMPUTER HAS 1
21
+ DO YOU WANT TO CONTINUE? YES
22
+
23
+ YOU: H-10 COMPUTER: C-K
24
+ THE COMPUTER WINS!!! YOU HAVE 1 AND THE COMPUTER HAS 2
25
+ DO YOU WANT TO CONTINUE? YES
26
+
27
+ YOU: C-A COMPUTER: D-6
28
+ YOU WIN. YOU HAVE 2 AND THE COMPUTER HAS 2
29
+ DO YOU WANT TO CONTINUE? YES
30
+
31
+ YOU: H-Q COMPUTER: D-8
32
+ YOU WIN. YOU HAVE 3 AND THE COMPUTER HAS 2
33
+ DO YOU WANT TO CONTINUE? YES
34
+
35
+ YOU: H-9 COMPUTER: S-A
36
+ THE COMPUTER WINS!!! YOU HAVE 3 AND THE COMPUTER HAS 3
37
+ DO YOU WANT TO CONTINUE? YES
38
+
39
+ YOU: D-2 COMPUTER: S-3
40
+ THE COMPUTER WINS!!! YOU HAVE 3 AND THE COMPUTER HAS 4
41
+ DO YOU WANT TO CONTINUE? YES
42
+
43
+ YOU: H-2 COMPUTER: D-Q
44
+ THE COMPUTER WINS!!! YOU HAVE 3 AND THE COMPUTER HAS 5
45
+ DO YOU WANT TO CONTINUE? YES
46
+
47
+ YOU: S-Q COMPUTER: H-K
48
+ THE COMPUTER WINS!!! YOU HAVE 3 AND THE COMPUTER HAS 6
49
+ DO YOU WANT TO CONTINUE? YES
50
+
51
+ YOU: D-7 COMPUTER: C-3
52
+ YOU WIN. YOU HAVE 4 AND THE COMPUTER HAS 6
53
+ DO YOU WANT TO CONTINUE?
54
+ Error on line 560: No more input
@@ -0,0 +1,150 @@
1
+ 10 PRINT TAB(32);"WEEKDAY"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 PRINT "WEEKDAY IS A COMPUTER DEMONSTRATION THAT"
5
+ 110 PRINT"GIVES FACTS ABOUT A DATE OF INTEREST TO YOU."
6
+ 120 PRINT
7
+ 130 PRINT "ENTER TODAY'S DATE IN THE FORM: 3,24,1979 ";
8
+ 140 INPUT M1,D1,Y1
9
+ 150 REM THIS PROGRAM DETERMINES THE DAY OF THE WEEK
10
+ 160 REM FOR A DATE AFTER 1582
11
+ 170 DEF FNA(A)=INT(A/4)
12
+ 180 DIM T(12)
13
+ 190 DEF FNB(A)=INT(A/7)
14
+ 200 REM SPACE OUTPUT AND READ IN INITIAL VALUES FOR MONTHS.
15
+ 210 FOR I= 1 TO 12
16
+ 220 READ T(I)
17
+ 230 NEXT I
18
+ 240 PRINT"ENTER DAY OF BIRTH (OR OTHER DAY OF INTEREST)";
19
+ 250 INPUT M,D,Y
20
+ 260 PRINT
21
+ 270 LET I1 = INT((Y-1500)/100)
22
+ 280 REM TEST FOR DATE BEFORE CURRENT CALENDAR.
23
+ 290 IF Y-1582 <0 THEN 1300
24
+ 300 LET A = I1*5+(I1+3)/4
25
+ 310 LET I2=INT(A-FNB(A)*7)
26
+ 320 LET Y2=INT(Y/100)
27
+ 330 LET Y3 =INT(Y-Y2*100)
28
+ 340 LET A =Y3/4+Y3+D+T(M)+I2
29
+ 350 LET B=INT(A-FNB(A)*7)+1
30
+ 360 IF M > 2 THEN 470
31
+ 370 IF Y3 = 0 THEN 440
32
+ 380 LET T1=INT(Y-FNA(Y)*4)
33
+ 390 IF T1 <> 0 THEN 470
34
+ 400 IF B<>0 THEN 420
35
+ 410 LET B=6
36
+ 420 LET B = B-1
37
+ 430 GOTO 470
38
+ 440 LET A = I1-1
39
+ 450 LET T1=INT(A-FNA(A)*4)
40
+ 460 IF T1 = 0 THEN 400
41
+ 470 IF B <>0 THEN 490
42
+ 480 LET B = 7
43
+ 490 IF (Y1*12+M1)*31+D1<(Y*12+M)*31+D THEN 550
44
+ 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530
45
+ 510 PRINT M;"/";D;"/";Y;" WAS A ";
46
+ 520 GOTO 570
47
+ 530 PRINT M;"/";D;"/";Y;" IS A ";
48
+ 540 GOTO 570
49
+ 550 PRINT M;"/";D;"/";Y;" WILL BE A ";
50
+ 560 REM PRINT THE DAY OF THE WEEK THE DATE FALLS ON.
51
+ 570 IF B <>1 THEN 590
52
+ 580 PRINT "SUNDAY."
53
+ 590 IF B<>2 THEN 610
54
+ 600 PRINT "MONDAY."
55
+ 610 IF B<>3 THEN 630
56
+ 620 PRINT "TUESDAY."
57
+ 630 IF B<>4 THEN 650
58
+ 640 PRINT "WEDNESDAY."
59
+ 650 IF B<>5 THEN 670
60
+ 660 PRINT "THURSDAY."
61
+ 670 IF B<>6 THEN 690
62
+ 680 GOTO 1250
63
+ 690 IF B<>7 THEN 710
64
+ 700 PRINT "SATURDAY."
65
+ 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120
66
+ 720 LET I5=Y1-Y
67
+ 730 PRINT
68
+ 740 LET I6=M1-M
69
+ 750 LET I7=D1-D
70
+ 760 IF I7>=0 THEN 790
71
+ 770 LET I6= I6-1
72
+ 780 LET I7=I7+30
73
+ 790 IF I6>=0 THEN 820
74
+ 800 LET I5=I5-1
75
+ 810 LET I6=I6+12
76
+ 820 IF I5<0 THEN 1310
77
+ 830 IF I7 <> 0 THEN 850
78
+ 835 IF I6 <> 0 THEN 850
79
+ 840 PRINT"***HAPPY BIRTHDAY***"
80
+ 850 PRINT " "," ","YEARS","MONTHS","DAYS"
81
+ 855 PRINT " "," ","-----","------","----"
82
+ 860 PRINT "YOUR AGE (IF BIRTHDATE) ",I5,I6,I7
83
+ 870 LET A8 = (I5*365)+(I6*30)+I7+INT(I6/2)
84
+ 880 LET K5 = I5
85
+ 890 LET K6 = I6
86
+ 900 LET K7 = I7
87
+ 910 REM CALCULATE RETIREMENT DATE.
88
+ 920 LET E = Y+65
89
+ 930 REM CALCULATE TIME SPENT IN THE FOLLOWING FUNCTIONS.
90
+ 940 LET F = .35
91
+ 950 PRINT "YOU HAVE SLEPT ",
92
+ 960 GOSUB 1370
93
+ 970 LET F = .17
94
+ 980 PRINT "YOU HAVE EATEN ",
95
+ 990 GOSUB 1370
96
+ 1000 LET F = .23
97
+ 1010 IF K5 > 3 THEN 1040
98
+ 1020 PRINT "YOU HAVE PLAYED",
99
+ 1030 GOTO 1080
100
+ 1040 IF K5 > 9 THEN 1070
101
+ 1050 PRINT "YOU HAVE PLAYED/STUDIED",
102
+ 1060 GOTO 1080
103
+ 1070 PRINT "YOU HAVE WORKED/PLAYED",
104
+ 1080 GOSUB 1370
105
+ 1085 GOTO 1530
106
+ 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7
107
+ 1100 PRINT
108
+ 1110 PRINT TAB(16);"*** YOU MAY RETIRE IN";E;" ***"
109
+ 1120 PRINT
110
+ 1140 PRINT
111
+ 1200 PRINT
112
+ 1210 PRINT
113
+ 1220 PRINT
114
+ 1230 PRINT
115
+ 1240 END
116
+ 1250 IF D=13 THEN 1280
117
+ 1260 PRINT "FRIDAY."
118
+ 1270 GOTO 710
119
+ 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!"
120
+ 1290 GOTO 710
121
+ 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXXXII. "
122
+ 1310 GOTO 1140
123
+ 1320 REM TABLE OF VALUES FOR THE MONTHS TO BE USED IN CALCULATIONS.
124
+ 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5
125
+ 1340 REM THIS IS THE CURRENT DATE USED IN THE CALCULATIONS.
126
+ 1350 REM THIS IS THE DATE TO BE CALCULATED ON.
127
+ 1360 REM CALCULATE TIME IN YEARS, MONTHS, AND DAYS
128
+ 1370 LET K1=INT(F*A8)
129
+ 1380 LET I5 = INT(K1/365)
130
+ 1390 LET K1 = K1- (I5*365)
131
+ 1400 LET I6 = INT(K1/30)
132
+ 1410 LET I7 = K1 -(I6*30)
133
+ 1420 LET K5 = K5-I5
134
+ 1430 LET K6 =K6-I6
135
+ 1440 LET K7 = K7-I7
136
+ 1450 IF K7>=0 THEN 1480
137
+ 1460 LET K7=K7+30
138
+ 1470 LET K6=K6-1
139
+ 1480 IF K6>0 THEN 1510
140
+ 1490 LET K6=K6+12
141
+ 1500 LET K5=K5-1
142
+ 1510 PRINT I5,I6,I7
143
+ 1520 RETURN
144
+ 1530 IF K6=12 THEN 1550
145
+ 1540 GOTO 1090
146
+ 1550 LET K5=K5+1
147
+ 1560 LET K6=0
148
+ 1570 GOTO 1090
149
+ 1580 REM
150
+ 1590 END
@@ -0,0 +1,2 @@
1
+ 3,1,2014
2
+ 1,1,1961
@@ -0,0 +1,28 @@
1
+ WEEKDAY
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ WEEKDAY IS A COMPUTER DEMONSTRATION THAT
7
+ GIVES FACTS ABOUT A DATE OF INTEREST TO YOU.
8
+
9
+ ENTER TODAY'S DATE IN THE FORM: 3,24,1979 ? 3,1,2014
10
+ ENTER DAY OF BIRTH (OR OTHER DAY OF INTEREST)? 1,1,1961
11
+
12
+ 1 / 1 / 1961 WAS A SUNDAY.
13
+
14
+ YEARS MONTHS DAYS
15
+ ----- ------ ----
16
+ YOUR AGE (IF BIRTHDATE) 53 2 0
17
+ YOU HAVE SLEPT 18 7 12
18
+ YOU HAVE EATEN 9 0 14
19
+ YOU HAVE WORKED/PLAYED 12 2 23
20
+ YOU HAVE RELAXED 13 3 11
21
+
22
+ *** YOU MAY RETIRE IN 2026 ***
23
+
24
+
25
+
26
+
27
+
28
+
@@ -0,0 +1,65 @@
1
+ 2 PRINT TAB(33);"WORD"
2
+ 3 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 4 PRINT: PRINT: PRINT
4
+ 5 DIM S(7),A(7),L(7),D(7),P(7)
5
+ 10 PRINT "I AM THINKING OF A WORD -- YOU GUESS IT. I WILL GIVE YOU"
6
+ 15 PRINT "CLUES TO HELP YOU GET IT. GOOD LUCK!!": PRINT: PRINT
7
+ 20 REM
8
+ 30 PRINT: PRINT: PRINT "YOU ARE STARTING A NEW GAME..."
9
+ 35 RESTORE
10
+ 40 READ N
11
+ 50 C=INT(RND(1)*N+1)
12
+ 60 FOR I=1 TO C
13
+ 70 READ S$
14
+ 80 NEXT I
15
+ 90 G=0
16
+ 95 S(0)=LEN(S$)
17
+ 100 FOR I=1 TO LEN(S$): S(I)=ASC(MID$(S$,I,1)): NEXT I
18
+ 110 FOR I=1 TO 5
19
+ 120 A(I)=45
20
+ 130 NEXT I
21
+ 140 FOR J=1 TO 5
22
+ 144 P(J)=0
23
+ 146 NEXT J
24
+ 150 PRINT "GUESS A FIVE LETTER WORD";
25
+ 160 INPUT L$
26
+ 170 G=G+1
27
+ 172 IF S$=G$ THEN 500
28
+ 173 FOR I=1 TO 7: P(I)=0: NEXT I
29
+ 175 L(0)=LEN(L$)
30
+ 180 FOR I=1 TO LEN(L$): L(I)=ASC(MID$(L$,I,1)): NEXT I
31
+ 190 IF L(1)=63 THEN 300
32
+ 200 IF L(0)<>5 THEN 400
33
+ 205 M=0: Q=1
34
+ 210 FOR I=1 TO 5
35
+ 220 FOR J=1 TO 5
36
+ 230 IF S(I)<>L(J) THEN 260
37
+ 231 P(Q)=L(J)
38
+ 232 Q=Q+1
39
+ 233 IF I<>J THEN 250
40
+ 240 A(J)=L(J)
41
+ 250 M=M+1
42
+ 260 NEXT J
43
+ 265 NEXT I
44
+ 270 A(0)=5
45
+ 272 P(0)=M
46
+ 275 A$="": FOR I=1 TO A(0): A$=A$+CHR$(A(I)): NEXT I
47
+ 277 P$="": FOR I=1 TO P(0): P$=P$+CHR$(P(I)): NEXT I
48
+ 280 PRINT "THERE WERE";M;"MATCHES AND THE COMMON LETTERS WERE...";P$
49
+ 285 PRINT "FROM THE EXACT LETTER MATCHES, YOU KNOW................";A$
50
+ 286 IF A$=S$ THEN 500
51
+ 287 IF M>1 THEN 289
52
+ 288 PRINT: PRINT "IF YOU GIVE UP, TYPE '?' FOR YOUR NEXT GUESS."
53
+ 289 PRINT
54
+ 290 GOTO 150
55
+ 300 S$="": FOR I=1 TO 7: S$=S$+CHR$(S(I)): NEXT I
56
+ 310 PRINT "THE SECRET WORD IS ";S$: PRINT
57
+ 320 GOTO 30
58
+ 400 PRINT "YOU MUST GUESS A 5 LETTER WORD. START AGAIN."
59
+ 410 PRINT: G=G-1: GOTO 150
60
+ 500 PRINT "YOU HAVE GUESSED THE WORD. IT TOOK";G;"GUESSES!": PRINT
61
+ 510 INPUT "WANT TO PLAY AGAIN";Q$
62
+ 520 IF Q$="YES" THEN 30
63
+ 530 DATA 12,"DINKY","SMOKE","WATER","GRASS","TRAIN","MIGHT","FIRST"
64
+ 540 DATA "CANDY","CHAMP","WOULD","CLUMP","DOPEY"
65
+ 999 END
@@ -0,0 +1,6 @@
1
+ ABCDE
2
+ FGHIJ
3
+ KLMNO
4
+ PQRST
5
+ FIRST
6
+ NO
@@ -0,0 +1,5 @@
1
+ 20 PRINT ABS(-1.5)
2
+ 20 PRINT ABS(-1)
3
+ 20 PRINT ABS(0)
4
+ 20 PRINT ABS(1)
5
+ 20 PRINT ABS(1.5)
File without changes
@@ -0,0 +1,5 @@
1
+ 1.5
2
+ 1
3
+ 0
4
+ 1
5
+ 1.5
@@ -0,0 +1,5 @@
1
+ 10 PRINT 1 + 2
2
+ 20 PRINT 1.0 + 2
3
+ 30 PRINT 1 + 2.0
4
+ 40 PRINT 1.1 + 2.2
5
+ 50 PRINT 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
File without changes
@@ -0,0 +1,5 @@
1
+ 3
2
+ 3
3
+ 3
4
+ 3.3
5
+ 45
@@ -0,0 +1,5 @@
1
+ 10 PRINT 0 AND 0
2
+ 20 PRINT 0 AND 1
3
+ 30 PRINT 1 AND 0
4
+ 40 PRINT 1 AND 1
5
+ 50 PRINT 3.1 AND -1.5
File without changes
@@ -0,0 +1,5 @@
1
+ 0
2
+ 0
3
+ 0
4
+ 1
5
+ 3
@@ -0,0 +1,11 @@
1
+ 10 PRINT A(0)
2
+ 20 LET A(0) = 100
3
+ 30 LET A(10) = 101
4
+ 40 PRINT A(0), A(10)
5
+ 50 DIM A$(2, 4)
6
+ 60 PRINT "'"; A$(0, 0); "'"
7
+ 70 LET A$(0, 0) = "0, 0"
8
+ 80 LET A$(2, 4) = "2, 4"
9
+ 90 PRINT "'"; A$(0, 0); "'"
10
+ 100 PRINT "'"; A$(2, 4); "'"
11
+ 110 PRINT "'"; B$(9); "'"
File without changes
@@ -0,0 +1,6 @@
1
+ 0
2
+ 100 101
3
+ ''
4
+ '0, 0'
5
+ '2, 4'
6
+ ''
@@ -0,0 +1 @@
1
+ 10 PRINT ASC("A")
File without changes
@@ -0,0 +1 @@
1
+ 65
@@ -0,0 +1 @@
1
+ 10 PRINT CHR$(65)
File without changes
@@ -0,0 +1 @@
1
+ A
@@ -0,0 +1 @@
1
+ 10 PRINT COS(3.14159265 / 8)
File without changes
@@ -0,0 +1 @@
1
+ 0.9238795
@@ -0,0 +1,9 @@
1
+ 40 PRINT "arguments"
2
+ 50 I = 10
3
+ 60 DEF FNB(I) = I * 2
4
+ 70 PRINT FNB(3)
5
+ 80 PRINT I
6
+ 90 PRINT "nested"
7
+ 100 DEF FNC(I) = I * 2
8
+ 110 DEF FND(I) = I + 1
9
+ 120 PRINT FND(FNC(FNC(2)))
File without changes
@@ -0,0 +1,5 @@
1
+ arguments
2
+ 6
3
+ 10
4
+ nested
5
+ 9
@@ -0,0 +1,5 @@
1
+ 10 PRINT 1 / 2
2
+ 20 PRINT 1.0 / 2
3
+ 30 PRINT 1 / 2.0
4
+ 40 PRINT 1.0 / 2.0
5
+ 50 PRINT 1 / 2 / 3
File without changes
@@ -0,0 +1,5 @@
1
+ 0.5
2
+ 0.5
3
+ 0.5
4
+ 0.5
5
+ 0.1666667
@@ -0,0 +1,3 @@
1
+ 10 PRINT "OK"
2
+ 20 END
3
+ 30 PRINT "FAIL"
File without changes
@@ -0,0 +1 @@
1
+ OK
@@ -0,0 +1,3 @@
1
+ 10 PRINT -1 = 0
2
+ 20 PRINT 0 = 0
3
+ 30 PRINT 1 = 0
File without changes
@@ -0,0 +1,3 @@
1
+ 0
2
+ -1
3
+ 0
@@ -0,0 +1,2 @@
1
+ 10 PRINT EXP(1)
2
+ 20 PRINT EXP(2)
File without changes
@@ -0,0 +1,2 @@
1
+ 2.718282
2
+ 7.389056
@@ -0,0 +1,3 @@
1
+ 10 PRINT 3.14159
2
+ 20 S2 = 1.414
3
+ 30 PRINT S2
File without changes
@@ -0,0 +1,2 @@
1
+ 3.14159
2
+ 1.414
@@ -0,0 +1,61 @@
1
+ 10 PRINT "NORMAL LOOP"
2
+ 20 FOR I = 1 TO 2
3
+ 30 PRINT I
4
+ 40 NEXT I
5
+ 45 PRINT I
6
+ 50 PRINT "BACKWARDS"
7
+ 60 FOR I = 2 TO 1 STEP -1
8
+ 70 PRINT I
9
+ 80 NEXT I
10
+ 85 PRINT I
11
+ 90 PRINT "START = END"
12
+ 100 FOR I = 1 TO 1
13
+ 110 PRINT I
14
+ 120 NEXT I
15
+ 125 PRINT I
16
+ 130 PRINT "START = END, BACKWARDS"
17
+ 140 FOR I = 1 TO 1 STEP -1
18
+ 150 PRINT I
19
+ 160 NEXT I
20
+ 165 PRINT I
21
+ 170 PRINT "ALREADY DONE"
22
+ 180 FOR I = 1 TO 0
23
+ 190 PRINT I
24
+ 200 NEXT I
25
+ 205 PRINT I
26
+ 210 PRINT "ALREADY DONE, BACKWARDS"
27
+ 220 FOR I = 0 TO 1 STEP -1
28
+ 230 PRINT I
29
+ 240 NEXT I
30
+ 250 PRINT I
31
+ 260 PRINT "NESTED"
32
+ 270 FOR I = 0 TO 1
33
+ 280 FOR J = 0 TO 1
34
+ 290 PRINT I, J
35
+ 300 NEXT J
36
+ 310 NEXT I
37
+ 320 PRINT "FLOAT"
38
+ 330 FOR I = 0 TO 1 STEP 0.2
39
+ 340 PRINT I
40
+ 350 NEXT I
41
+ 360 PRINT "BARE NEXT"
42
+ 360 FOR I = 1 TO 2
43
+ 370 PRINT I
44
+ 380 NEXT
45
+ 390 PRINT "NESTED, SHARED NEXT"
46
+ 400 FOR I = 0 TO 1
47
+ 410 FOR J = 0 TO 1
48
+ 420 PRINT I, J
49
+ 430 NEXT J, I
50
+ 440 PRINT "OUT OF ORDER"
51
+ 450 GOTO 480
52
+ 460 NEXT I
53
+ 470 GOTO 510
54
+ 480 FOR I = 1 TO 2
55
+ 490 PRINT I
56
+ 500 GOTO 460
57
+ 510 PRINT "RESTART"
58
+ 520 FOR I = 10 TO 20
59
+ 530 FOR I = 1 TO 2
60
+ 540 PRINT I
61
+ 550 NEXT I
File without changes
@@ -0,0 +1,46 @@
1
+ NORMAL LOOP
2
+ 1
3
+ 2
4
+ 3
5
+ BACKWARDS
6
+ 2
7
+ 1
8
+ 0
9
+ START = END
10
+ 1
11
+ 2
12
+ START = END, BACKWARDS
13
+ 1
14
+ 0
15
+ ALREADY DONE
16
+ 1
17
+ 2
18
+ ALREADY DONE, BACKWARDS
19
+ 0
20
+ -1
21
+ NESTED
22
+ 0 0
23
+ 0 1
24
+ 1 0
25
+ 1 1
26
+ FLOAT
27
+ 0
28
+ 0.2
29
+ 0.4
30
+ 0.6
31
+ 0.8
32
+ 1
33
+ BARE NEXT
34
+ 1
35
+ 2
36
+ NESTED, SHARED NEXT
37
+ 0 0
38
+ 0 1
39
+ 1 0
40
+ 1 1
41
+ OUT OF ORDER
42
+ 1
43
+ 2
44
+ RESTART
45
+ 1
46
+ 2
@@ -0,0 +1,3 @@
1
+ 10 PRINT -1 >= 0
2
+ 20 PRINT 0 >= 0
3
+ 30 PRINT 1 >= 0
File without changes
@@ -0,0 +1,3 @@
1
+ 0
2
+ -1
3
+ -1
@@ -0,0 +1,10 @@
1
+ 10 FOR I = 1 TO 2
2
+ 20 GOSUB 100
3
+ 30 NEXT I
4
+ 40 END
5
+ 100 FOR J = 1 TO 2
6
+ 110 GOSUB 200
7
+ 120 NEXT J
8
+ 130 RETURN
9
+ 200 PRINT I, J
10
+ 210 RETURN
File without changes
@@ -0,0 +1,4 @@
1
+ 1 1
2
+ 1 2
3
+ 2 1
4
+ 2 2
@@ -0,0 +1,3 @@
1
+ 10 GOTO 30
2
+ 20 PRINT "LINE 20"
3
+ 30 PRINT "LINE 30"
File without changes
@@ -0,0 +1 @@
1
+ LINE 30
@@ -0,0 +1,3 @@
1
+ 10 PRINT -1 > 0
2
+ 20 PRINT 0 > 0
3
+ 30 PRINT 1 > 0
File without changes
@@ -0,0 +1,3 @@
1
+ 0
2
+ 0
3
+ -1