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,193 @@
1
+ 10 PRINT TAB(34);"BULL"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 DEF FNA(K)=INT(RND(1)*2+1)
4
+ 200 PRINT:PRINT:PRINT
5
+ 202 L=1
6
+ 205 PRINT "DO YOU WANT INSTRUCTIONS";
7
+ 206 INPUT Z$
8
+ 207 IF Z$="NO" THEN 400
9
+ 210 PRINT "HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS."
10
+ 220 PRINT "HERE IS YOUR BIG CHANCE TO KILL A BULL."
11
+ 230 PRINT
12
+ 240 PRINT "ON EACH PASS OF THE BULL, YOU MAY TRY"
13
+ 250 PRINT "0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)"
14
+ 260 PRINT "1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE"
15
+ 270 PRINT "2 - ORDINARY SWIRL OF THE CAPE."
16
+ 280 PRINT
17
+ 290 PRINT "INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL"
18
+ 300 PRINT "ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST)."
19
+ 310 PRINT "BUT IF I WERE YOU,"
20
+ 320 PRINT "I WOULDN'T TRY IT BEFORE THE SEVENTH PASS."
21
+ 330 PRINT
22
+ 340 PRINT "THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE"
23
+ 350 PRINT "(POSTHUMOUSLY IF NECESSARY)."
24
+ 360 PRINT "THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECIEVE."
25
+ 370 PRINT
26
+ 380 PRINT "THE BETTER THE JOB THE PICADORES AND TOREADORES DO,"
27
+ 390 PRINT "THE BETTER YOUR CHANCES ARE."
28
+ 400 PRINT
29
+ 410 PRINT
30
+ 420 D(5)=1
31
+ 430 D(4)=1
32
+ 450 DIM L$(5)
33
+ 455 A=INT(RND(1)*5+1)
34
+ 460 FOR I=1 TO 5
35
+ 463 READ L$(I)
36
+ 467 NEXT I
37
+ 470 DATA "SUPERB","GOOD","FAIR","POOR","AWFUL"
38
+ 490 PRINT "YOU HAVE DRAWN A ";L$(A);" BULL."
39
+ 500 IF A>4 THEN 530
40
+ 510 IF A<2 THEN 550
41
+ 520 GOTO 570
42
+ 530 PRINT "YOU'RE LUCKY."
43
+ 540 GOTO 570
44
+ 550 PRINT "GOOD LUCK. YOU'LL NEED IT."
45
+ 560 PRINT
46
+ 570 PRINT
47
+ 590 A$="PICADO"
48
+ 595 B$="RES"
49
+ 600 GOSUB 1610
50
+ 610 D(1)=C
51
+ 630 A$="TOREAD"
52
+ 635 B$="ORES"
53
+ 640 GOSUB 1610
54
+ 650 D(2)=C
55
+ 660 PRINT
56
+ 670 PRINT
57
+ 680 IF Z=1 THEN 1310
58
+ 690 D(3)=D(3)+1
59
+ 700 PRINT "PASS NUMBER";D(3)
60
+ 710 IF D(3)<3 THEN 760
61
+ 720 PRINT "HERE COMES THE BULL. TRY FOR A KILL";
62
+ 730 GOSUB 1930
63
+ 735 IF Z1=1 THEN 1130
64
+ 740 PRINT "CAPE MOVE";
65
+ 750 GOTO 800
66
+ 760 PRINT "THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--"
67
+ 770 PRINT "DO YOU WANT TO KILL THE BULL";
68
+ 780 GOSUB 1930
69
+ 785 IF Z1=1 THEN 1130
70
+ 790 PRINT "WHAT MOVE DO YOU MAKE WITH THE CAPE";
71
+ 800 INPUT E
72
+ 810 IF E<>INT(ABS(E)) THEN 830
73
+ 820 IF E<3 THEN 850
74
+ 830 PRINT "DON'T PANIC, YOU IDIOT! PUT DOWN A CORRECT NUMBER"
75
+ 840 GOTO 800
76
+ 850 REM
77
+ 860 IF E=0 THEN 920
78
+ 870 IF E=1 THEN 900
79
+ 880 M=.5
80
+ 890 GOTO 930
81
+ 900 M=2
82
+ 910 GOTO 930
83
+ 920 M=3
84
+ 930 L=L+M
85
+ 940 F=(6-A+M/10)*RND(1)/((D(1)+D(2)+D(3)/10)*5)
86
+ 950 IF F<.51 THEN 660
87
+ 960 PRINT "THE BULL HAS GORED YOU!"
88
+ 970 ON FNA(0) GOTO 980,1010
89
+ 980 PRINT "YOU ARE DEAD."
90
+ 990 D(4)=1.5
91
+ 1000 GOTO 1310
92
+ 1010 PRINT "YOU ARE STILL ALIVE.":PRINT
93
+ 1020 PRINT "DO YOU RUN FROM THE RING";
94
+ 1030 GOSUB 1930
95
+ 1035 IF Z1=2 THEN 1070
96
+ 1040 PRINT "COWARD"
97
+ 1050 D(4)=0
98
+ 1060 GOTO 1310
99
+ 1070 PRINT "YOU ARE BRAVE. STUPID, BUT BRAVE."
100
+ 1080 ON FNA(0) GOTO 1090,1110
101
+ 1090 D(4)=2
102
+ 1100 GOTO 660
103
+ 1110 PRINT "YOU ARE GORED AGAIN!"
104
+ 1120 GOTO 970
105
+ 1130 REM
106
+ 1140 Z=1
107
+ 1150 PRINT:PRINT "IT IS THE MOMENT OF TRUTH.":PRINT
108
+ 1155 PRINT "HOW DO YOU TRY TO KILL THE BULL";
109
+ 1160 INPUT H
110
+ 1170 IF H=4 THEN 1230
111
+ 1180 IF H=5 THEN 1230
112
+ 1190 PRINT "YOU PANICKED. THE BULL GORED YOU."
113
+ 1220 GOTO 970
114
+ 1230 K=(6-A)*10*RND(1)/((D(1)+D(2))*5*D(3))
115
+ 1240 IF J=4 THEN 1290
116
+ 1250 IF K>.2 THEN 960
117
+ 1260 PRINT "YOU KILLED THE BULL!"
118
+ 1270 D(5)=2
119
+ 1280 GOTO 1320
120
+ 1290 IF K>.8 THEN 960
121
+ 1300 GOTO 1260
122
+ 1310 PRINT
123
+ 1320 PRINT
124
+ 1330 PRINT
125
+ 1340 IF D(4)<>0 THEN 1390
126
+ 1350 PRINT "THE CROWD BOOS FOR TEN MINUTES. IF YOU EVER DARE TO SHOW"
127
+ 1360 PRINT "YOUR FACE IN A RING AGAIN, THEY SWEAR THEY WILL KILL YOU--"
128
+ 1370 PRINT "UNLES THE BULL DOES FIRST."
129
+ 1380 GOTO 1580
130
+ 1390 DEF FNC(Q)=FND(Q)*RND(1)
131
+ 1395 DEF FND(Q)=(4.5+L/6-(D(1)+D(2))*2.5+4*D(4)+2*D(5)-D(3)^2/120-A)
132
+ 1400 IF D(4)<>2 THEN 1430
133
+ 1410 PRINT "THE CROWD CHEERS WILDLY!"
134
+ 1420 GOTO 1450
135
+ 1430 IF D(5)<>2 THEN 1450
136
+ 1440 PRINT "THE CROWD CHEERS!":PRINT
137
+ 1450 PRINT "THE CROWD AWARDS YOU"
138
+ 1460 IF FNC(Q)<2.4 THEN 1570
139
+ 1470 IF FNC(Q)<4.9 THEN 1550
140
+ 1480 IF FNC(Q)<7.4 THEN 1520
141
+ 1500 PRINT "OLE! YOU ARE 'MUY HOMBRE'!! OLE! OLE!"
142
+ 1510 GOTO 1580
143
+ 1520 PRINT "BOTH EARS OF THE BULL!"
144
+ 1530 PRINT "OLE!"
145
+ 1540 GOTO 1580
146
+ 1550 PRINT "ONE EAR OF THE BULL."
147
+ 1560 GOTO 1580
148
+ 1570 PRINT "NOTHING AT ALL."
149
+ 1580 PRINT
150
+ 1590 PRINT "ADIOS":PRINT:PRINT:PRINT
151
+ 1600 GOTO 2030
152
+ 1610 B=3/A*RND(1)
153
+ 1620 IF B<.37 THEN 1740
154
+ 1630 IF B<.5 THEN 1720
155
+ 1640 IF B<.63 THEN 1700
156
+ 1650 IF B<.87 THEN 1680
157
+ 1660 C=.1
158
+ 1670 GOTO 1750
159
+ 1680 C=.2
160
+ 1690 GOTO 1750
161
+ 1700 C=.3
162
+ 1710 GOTO 1750
163
+ 1720 C=.4
164
+ 1730 GOTO 1750
165
+ 1740 C=.5
166
+ 1750 T=INT(10*C+.2)
167
+ 1760 PRINT "THE ";A$;B$;" DID A ";L$(T);" JOB."
168
+ 1770 IF 4>T THEN 1900
169
+ 1780 IF 5=T THEN 1870
170
+ 1790 ON FNA(K) GOTO 1830,1850
171
+ 1800 IF A$="TOREAD" THEN 1820
172
+ 1810 PRINT "ONE OF THE HORSES OF THE ";A$;B$;" WAS KILLED."
173
+ 1820 ON FNA(K) GOTO 1830,1850
174
+ 1830 PRINT "ONE OF THE ";A$;B$;" WAS KILLED."
175
+ 1840 GOTO 1900
176
+ 1850 PRINT "NO ";A$;B$;" WERE KILLED."
177
+ 1860 GOTO 1900
178
+ 1870 IF A$="TOREAD" THEN 1890
179
+ 1880 PRINT FNA(K);"OF THE HORSES OF THE ";A$;B$;" KILLED."
180
+ 1890 PRINT FNA(K);"OF THE ";A$;B$;" KILLED."
181
+ 1900 PRINT
182
+ 1910 RETURN
183
+ 1920 REM
184
+ 1930 INPUT A$
185
+ 1940 IF A$="YES" THEN 1990
186
+ 1950 IF A$="NO" THEN 2010
187
+ 1970 PRINT "INCORRECT ANSWER - - PLEASE TYPE 'YES' OR 'NO'."
188
+ 1980 GOTO 1930
189
+ 1990 Z1=1
190
+ 2000 GOTO 2020
191
+ 2010 Z1=2
192
+ 2020 RETURN
193
+ 2030 END
@@ -0,0 +1,60 @@
1
+ BULL
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ DO YOU WANT INSTRUCTIONS? YES
7
+ HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS.
8
+ HERE IS YOUR BIG CHANCE TO KILL A BULL.
9
+
10
+ ON EACH PASS OF THE BULL, YOU MAY TRY
11
+ 0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)
12
+ 1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE
13
+ 2 - ORDINARY SWIRL OF THE CAPE.
14
+
15
+ INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL
16
+ ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST).
17
+ BUT IF I WERE YOU,
18
+ I WOULDN'T TRY IT BEFORE THE SEVENTH PASS.
19
+
20
+ THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE
21
+ (POSTHUMOUSLY IF NECESSARY).
22
+ THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECIEVE.
23
+
24
+ THE BETTER THE JOB THE PICADORES AND TOREADORES DO,
25
+ THE BETTER YOUR CHANCES ARE.
26
+
27
+
28
+ YOU HAVE DRAWN A FAIR BULL.
29
+
30
+ THE PICADORES DID A GOOD JOB.
31
+
32
+ THE TOREADORES DID A FAIR JOB.
33
+
34
+
35
+
36
+ PASS NUMBER 1
37
+ THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--
38
+ DO YOU WANT TO KILL THE BULL? YES
39
+
40
+ IT IS THE MOMENT OF TRUTH.
41
+
42
+ HOW DO YOU TRY TO KILL THE BULL? 0
43
+ YOU PANICKED. THE BULL GORED YOU.
44
+ YOU ARE STILL ALIVE.
45
+
46
+ DO YOU RUN FROM THE RING? NO
47
+ YOU ARE BRAVE. STUPID, BUT BRAVE.
48
+
49
+
50
+
51
+
52
+
53
+ THE CROWD CHEERS WILDLY!
54
+ THE CROWD AWARDS YOU
55
+ ONE EAR OF THE BULL.
56
+
57
+ ADIOS
58
+
59
+
60
+
@@ -0,0 +1,37 @@
1
+ 5 PRINT TAB(32);"BULLSEYE"
2
+ 10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 20 PRINT:PRINT:PRINT
4
+ 30 PRINT "IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET"
5
+ 40 PRINT "WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS"
6
+ 50 PRINT "TO GET 200 POINTS.": PRINT
7
+ 60 PRINT "THROW",TAB(20);"DESCRIPTION";TAB(45);"PROBABLE SCORE"
8
+ 70 PRINT" 1";TAB(20);"FAST OVERARM";TAB(45);"BULLSEYE OR COMPLETE MISS"
9
+ 80 PRINT" 2";TAB(20);"CONTROLLED OVERARM";TAB(45);"10, 20 OR 30 POINTS"
10
+ 90 PRINT" 3";TAB(20);"UNDERARM";TAB(45);"ANYTHING":PRINT
11
+ 100 DIM A$(20),S(20),W(10): M=0: R=0: FOR I=1 TO 20: S(I)=0: NEXT I
12
+ 110 INPUT "HOW MANY PLAYERS";N: PRINT
13
+ 120 FOR I=1 TO N
14
+ 130 PRINT "NAME OF PLAYER #";I;:INPUT A$(I)
15
+ 140 NEXT I
16
+ 150 R=R+1: PRINT: PRINT "ROUND";R:PRINT "---------"
17
+ 160 FOR I=1 TO N
18
+ 170 PRINT: PRINT A$(I)"'S THROW";: INPUT T
19
+ 180 IF T<0 OR T>3 THEN PRINT "INPUT 1, 2, OR 3!": GOTO 170
20
+ 190 ON T GOTO 200, 210, 200
21
+ 200 P1=.65: P2=.55: P3=.5: P4=.5: GOTO 230
22
+ 210 P1=.99: P2=.77: P3=.43: P4=.01: GOTO 230
23
+ 220 P1=.95: P2=.75: P3=.45: P4=.05
24
+ 230 U=RND(1)
25
+ 240 IF U>=P1 THEN PRINT "BULLSEYE!! 40 POINTS!":B=40: GOTO 290
26
+ 250 IF U>=P2 THEN PRINT "30-POINT ZONE!":B=30: GOTO 290
27
+ 260 IF U>=P3 THEN PRINT "20-POINT ZONE":B=20: GOTO 290
28
+ 270 IF U>=P4 THEN PRINT "WHEW! 10 POINTS.":B=10: GOTO 290
29
+ 280 PRINT "MISSED THE TARGET! TOO BAD.": B=0
30
+ 290 S(I)=S(I)+B: PRINT "TOTAL SCORE =";S(I): NEXT I
31
+ 300 FOR I=1 TO N
32
+ 310 IF S(I)>=200 THEN M=M+1: W(M)=I
33
+ 320 NEXT I
34
+ 330 IF M=0 THEN 150
35
+ 340 PRINT: PRINT "WE HAVE A WINNER!!": PRINT
36
+ 350 FOR I=1 TO M: PRINT A$(W(I));" SCORED";S(W(I));"POINTS.": NEXT I
37
+ 360 PRINT: PRINT "THANKS FOR THE GAME.": END
@@ -0,0 +1,10 @@
1
+ 1
2
+ FOO
3
+ 1
4
+ 3
5
+ 1
6
+ 3
7
+ 1
8
+ 3
9
+ 2
10
+ 1
@@ -0,0 +1,79 @@
1
+ BULLSEYE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET
7
+ WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS
8
+ TO GET 200 POINTS.
9
+
10
+ THROW DESCRIPTION PROBABLE SCORE
11
+ 1 FAST OVERARM BULLSEYE OR COMPLETE MISS
12
+ 2 CONTROLLED OVERARM 10, 20 OR 30 POINTS
13
+ 3 UNDERARM ANYTHING
14
+
15
+ HOW MANY PLAYERS? 1
16
+
17
+ NAME OF PLAYER # 1 ? FOO
18
+
19
+ ROUND 1
20
+ ---------
21
+
22
+ FOO'S THROW? 1
23
+ 20-POINT ZONE
24
+ TOTAL SCORE = 20
25
+
26
+ ROUND 2
27
+ ---------
28
+
29
+ FOO'S THROW? 3
30
+ BULLSEYE!! 40 POINTS!
31
+ TOTAL SCORE = 60
32
+
33
+ ROUND 3
34
+ ---------
35
+
36
+ FOO'S THROW? 1
37
+ 30-POINT ZONE!
38
+ TOTAL SCORE = 90
39
+
40
+ ROUND 4
41
+ ---------
42
+
43
+ FOO'S THROW? 3
44
+ 20-POINT ZONE
45
+ TOTAL SCORE = 110
46
+
47
+ ROUND 5
48
+ ---------
49
+
50
+ FOO'S THROW? 1
51
+ MISSED THE TARGET! TOO BAD.
52
+ TOTAL SCORE = 110
53
+
54
+ ROUND 6
55
+ ---------
56
+
57
+ FOO'S THROW? 3
58
+ 30-POINT ZONE!
59
+ TOTAL SCORE = 140
60
+
61
+ ROUND 7
62
+ ---------
63
+
64
+ FOO'S THROW? 2
65
+ 20-POINT ZONE
66
+ TOTAL SCORE = 160
67
+
68
+ ROUND 8
69
+ ---------
70
+
71
+ FOO'S THROW? 1
72
+ BULLSEYE!! 40 POINTS!
73
+ TOTAL SCORE = 200
74
+
75
+ WE HAVE A WINNER!!
76
+
77
+ FOO SCORED 200 POINTS.
78
+
79
+ THANKS FOR THE GAME.
@@ -0,0 +1,40 @@
1
+ 10 PRINT TAB(33);"BUNNY"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT: PRINT: PRINT
4
+ 100 REM "BUNNY" FROM AHL'S 'BASIC COMPUTER GAMES'
5
+ 110 REM
6
+ 120 FOR I=0 TO 4: READ B(I): NEXT I
7
+ 130 GOSUB 260
8
+ 140 L=64: REM ASCII LETTER CODE...
9
+ 150 REM
10
+ 160 PRINT
11
+ 170 READ X: IF X<0 THEN 160
12
+ 175 IF X>128 THEN 240
13
+ 180 PRINT TAB(X);: READ Y
14
+ 190 FOR I=X TO Y: J=I-5*INT(I/5)
15
+ 200 PRINT CHR$(L+B(J));
16
+ 210 NEXT I
17
+ 220 GOTO 170
18
+ 230 REM
19
+ 240 GOSUB 260: GOTO 450
20
+ 250 REM
21
+ 260 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
22
+ 270 RETURN
23
+ 280 REM
24
+ 290 DATA 2,21,14,14,25
25
+ 300 DATA 1,2,-1,0,2,45,50,-1,0,5,43,52,-1,0,7,41,52,-1
26
+ 310 DATA 1,9,37,50,-1,2,11,36,50,-1,3,13,34,49,-1,4,14,32,48,-1
27
+ 320 DATA 5,15,31,47,-1,6,16,30,45,-1,7,17,29,44,-1,8,19,28,43,-1
28
+ 330 DATA 9,20,27,41,-1,10,21,26,40,-1,11,22,25,38,-1,12,22,24,36,-1
29
+ 340 DATA 13,34,-1,14,33,-1,15,31,-1,17,29,-1,18,27,-1
30
+ 350 DATA 19,26,-1,16,28,-1,13,30,-1,11,31,-1,10,32,-1
31
+ 360 DATA 8,33,-1,7,34,-1,6,13,16,34,-1,5,12,16,35,-1
32
+ 370 DATA 4,12,16,35,-1,3,12,15,35,-1,2,35,-1,1,35,-1
33
+ 380 DATA 2,34,-1,3,34,-1,4,33,-1,6,33,-1,10,32,34,34,-1
34
+ 390 DATA 14,17,19,25,28,31,35,35,-1,15,19,23,30,36,36,-1
35
+ 400 DATA 14,18,21,21,24,30,37,37,-1,13,18,23,29,33,38,-1
36
+ 410 DATA 12,29,31,33,-1,11,13,17,17,19,19,22,22,24,31,-1
37
+ 420 DATA 10,11,17,18,22,22,24,24,29,29,-1
38
+ 430 DATA 22,23,26,29,-1,27,29,-1,28,29,-1,4096
39
+ 440 REM
40
+ 450 END
@@ -0,0 +1,67 @@
1
+ BUNNY
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ UN
14
+ BUN BUNNYB
15
+ BUNNYB NYBUNNYBUN
16
+ BUNNYBUN UNNYBUNNYBUN
17
+ UNNYBUNNY NNYBUNNYBUNNYB
18
+ NNYBUNNYBU UNNYBUNNYBUNNYB
19
+ NYBUNNYBUNN YBUNNYBUNNYBUNNY
20
+ YBUNNYBUNNY NNYBUNNYBUNNYBUNN
21
+ BUNNYBUNNYB UNNYBUNNYBUNNYBUN
22
+ UNNYBUNNYBU BUNNYBUNNYBUNNYB
23
+ NNYBUNNYBUN YBUNNYBUNNYBUNNY
24
+ NYBUNNYBUNNY NYBUNNYBUNNYBUNN
25
+ YBUNNYBUNNYB NNYBUNNYBUNNYBU
26
+ BUNNYBUNNYBU UNNYBUNNYBUNNYB
27
+ UNNYBUNNYBUN BUNNYBUNNYBUNN
28
+ NNYBUNNYBUN YBUNNYBUNNYBU
29
+ NYBUNNYBUNNYBUNNYBUNNY
30
+ YBUNNYBUNNYBUNNYBUNN
31
+ BUNNYBUNNYBUNNYBU
32
+ NNYBUNNYBUNNY
33
+ NYBUNNYBUN
34
+ YBUNNYBU
35
+ UNNYBUNNYBUNN
36
+ NYBUNNYBUNNYBUNNYB
37
+ UNNYBUNNYBUNNYBUNNYBU
38
+ BUNNYBUNNYBUNNYBUNNYBUN
39
+ NYBUNNYBUNNYBUNNYBUNNYBUNN
40
+ NNYBUNNYBUNNYBUNNYBUNNYBUNNY
41
+ UNNYBUNN UNNYBUNNYBUNNYBUNNY
42
+ BUNNYBUN UNNYBUNNYBUNNYBUNNYB
43
+ YBUNNYBUN UNNYBUNNYBUNNYBUNNYB
44
+ NYBUNNYBUN BUNNYBUNNYBUNNYBUNNYB
45
+ NNYBUNNYBUNNYBUNNYBUNNYBUNNYBUNNYB
46
+ UNNYBUNNYBUNNYBUNNYBUNNYBUNNYBUNNYB
47
+ NNYBUNNYBUNNYBUNNYBUNNYBUNNYBUNNY
48
+ NYBUNNYBUNNYBUNNYBUNNYBUNNYBUNNY
49
+ YBUNNYBUNNYBUNNYBUNNYBUNNYBUNN
50
+ UNNYBUNNYBUNNYBUNNYBUNNYBUNN
51
+ BUNNYBUNNYBUNNYBUNNYBUN Y
52
+ YBUN YBUNNYB NYBU B
53
+ BUNNY NYBUNNYB U
54
+ YBUNN U YBUNNYB N
55
+ NYBUNN NYBUNNY NYBUNN
56
+ NNYBUNNYBUNNYBUNNY UNN
57
+ UNN N Y N YBUNNYBU
58
+ BU NN N Y Y
59
+ NN UNNY
60
+ NNY
61
+ NY
62
+
63
+
64
+
65
+
66
+
67
+
@@ -0,0 +1,25 @@
1
+ 10 PRINT TAB(26);"BUZZWORD GENERATOR"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 40 PRINT "THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN"
5
+ 50 PRINT "'EDUCATOR-SPEAK'THAT YOU CAN WORK INTO REPORTS"
6
+ 60 PRINT "AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,"
7
+ 70 PRINT "TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT."
8
+ 80 PRINT:PRINT:PRINT "HERE'S THE FIRST PHRASE:"
9
+ 90 DIM A$(40)
10
+ 100 FOR I=1 TO 39 : READ A$(I) : NEXT I
11
+ 110 PRINT A$(INT(13*RND(1)+1));" ";
12
+ 120 PRINT A$(INT(13*RND(1)+14));" ";
13
+ 130 PRINT A$(INT(13*RND(1)+27)) : PRINT
14
+ 150 INPUT Y$ : IF Y$="Y" THEN 110 ELSE GOTO 999
15
+ 200 DATA "ABILITY","BASAL","BEHAVIORAL","CHILD-CENTERED"
16
+ 210 DATA "DIFFERENTIATED","DISCOVERY","FLEXIBLE","HETEROGENEOUS"
17
+ 220 DATA "HOMOGENEOUS","MANIPULATIVE","MODULAR","TAVISTOCK"
18
+ 230 DATA "INDIVIDUALIZED","LEARNING","EVALUATIVE","OBJECTIVE"
19
+ 240 DATA "COGNITIVE","ENRICHMENT","SCHEDULING","HUMANISTIC"
20
+ 250 DATA "INTEGRATED","NON-GRADED","TRAINING","VERTICAL AGE"
21
+ 260 DATA "MOTIVATIONAL","CREATIVE","GROUPING","MODIFICATION"
22
+ 270 DATA "ACCOUNTABILITY","PROCESS","CORE CURRICULUM","ALGORITHM"
23
+ 280 DATA "PERFORMANCE","REINFORCEMENT","OPEN CLASSROOM","RESOURCE"
24
+ 290 DATA "STRUCTURE","FACILITY","ENVIRONMENT"
25
+ 999 PRINT "COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!":END
@@ -0,0 +1,25 @@
1
+ BUZZWORD GENERATOR
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THIS PROGRAM PRINTS HIGHLY ACCEPTABLE PHRASES IN
7
+ 'EDUCATOR-SPEAK'THAT YOU CAN WORK INTO REPORTS
8
+ AND SPEECHES. WHENEVER A QUESTION MARK IS PRINTED,
9
+ TYPE A 'Y' FOR ANOTHER PHRASE OR 'N' TO QUIT.
10
+
11
+
12
+ HERE'S THE FIRST PHRASE:
13
+ HETEROGENEOUS TRAINING REINFORCEMENT
14
+
15
+ ? Y
16
+ HETEROGENEOUS SCHEDULING OPEN CLASSROOM
17
+
18
+ ? Y
19
+ DISCOVERY MOTIVATIONAL ENVIRONMENT
20
+
21
+ ? Y
22
+ DIFFERENTIATED VERTICAL AGE PERFORMANCE
23
+
24
+ ? N
25
+ COME BACK WHEN YOU NEED HELP WITH ANOTHER REPORT!
@@ -0,0 +1,58 @@
1
+ 10 PRINT TAB(32);"CALENDAR"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 100 REM VALUES FOR 1979 - SEE NOTES
5
+ 110 DIM M(12)
6
+ 120 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
7
+ 130 D=1: REM 1979 STARTS ON MONDAY (0=SUN, -1=MON, -2=TUES...)
8
+ 140 S=0
9
+ 150 REM READ DAYS OF EACH MONTH
10
+ 160 FOR N=0 TO 12: READ M(N): NEXT N
11
+ 170 REM
12
+ 180 FOR N=1 TO 12
13
+ 190 PRINT: PRINT: S=S+M(N-1)
14
+ 200 PRINT "**";S;TAB(7);
15
+ 210 FOR I=1 TO 18: PRINT "*";: NEXT I
16
+ 220 ON N GOTO 230,240,250,260,270,280,290,300,310,320,330,340
17
+ 230 PRINT " JANUARY ";: GOTO 350
18
+ 240 PRINT " FEBRUARY";: GOTO 350
19
+ 250 PRINT " MARCH ";: GOTO 350
20
+ 260 PRINT " APRIL ";: GOTO 350
21
+ 270 PRINT " MAY ";: GOTO 350
22
+ 280 PRINT " JUNE ";: GOTO 350
23
+ 290 PRINT " JULY ";: GOTO 350
24
+ 300 PRINT " AUGUST ";: GOTO 350
25
+ 310 PRINT "SEPTEMBER";: GOTO 350
26
+ 320 PRINT " OCTOBER ";: GOTO 350
27
+ 330 PRINT " NOVEMBER";: GOTO 350
28
+ 340 PRINT " DECEMBER";
29
+ 350 FOR I=1 TO 18: PRINT "*";: NEXT I
30
+ 360 PRINT 365-S;"**";
31
+ 370 REM 366-S; ON LEAP YEARS
32
+ 380 PRINT CHR$(10): PRINT " S M T W";
33
+ 390 PRINT " T F S"
34
+ 400 PRINT
35
+ 410 FOR I=1 TO 59: PRINT "*";: NEXT I
36
+ 420 REM
37
+ 430 FOR W=1 TO 6
38
+ 440 PRINT CHR$(10)
39
+ 450 PRINT TAB(4)
40
+ 460 REM
41
+ 470 FOR G=1 TO 7
42
+ 480 D=D+1
43
+ 490 D2=D-S
44
+ 500 IF D2>M(N) THEN 580
45
+ 510 IF D2>0 THEN PRINT D2;
46
+ 520 PRINT TAB(4+8*G);
47
+ 530 NEXT G
48
+ 540 REM
49
+ 550 IF D2=M(N) THEN 590
50
+ 560 NEXT W
51
+ 570 REM
52
+ 580 D=D-G
53
+ 590 NEXT N
54
+ 600 REM
55
+ 610 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
56
+ 620 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
57
+ 630 REM 0,31,29, ..., ON LEAP YEARS
58
+ 640 END