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,181 @@
1
+ 1 PRINT TAB(32);"FOOTBALL"
2
+ 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 3 PRINT:PRINT:PRINT
4
+ 100 REM
5
+ 120 DIM A(20),B(20),C(40),H(2),T(2),W(2),X(2),Y(2),Z(2)
6
+ 130 DIM M$(2),D(2),P$(20)
7
+ 140 PRINT "PRESENTING N.F.U. FOOTBALL (NO FORTRAN USED)"
8
+ 145 PRINT:PRINT
9
+ 150 INPUT "DO YOU WANT INSTRUCTIONS";A$
10
+ 160 IF A$="NO" THEN 290
11
+ 165 IF A$<>"YES" THEN 150
12
+ 170 PRINT "THIS IS A FOOTBALL GAME FOR TWO TEAMS IN WHICH PLAYERS MUST"
13
+ 180 PRINT "PREPARE A TAPE WITH A DATA STATEMENT (1770 FOR TEAM 1,"
14
+ 190 PRINT "1780 FOR TEAM 2) IN WHICH EACH TEAM SCRAMBLES NOS. 1-20"
15
+ 195 PRINT "THESE NUMBERS ARE THEN ASSIGNED TO TWENTY GIVEN PLAYS."
16
+ 200 PRINT"A LIST OF NOS. AND THEIR PLAYS IS PROVIDED WITH"
17
+ 210 PRINT "BOTH TEAMS HAVING THE SAME PLAYS. THE MORE SIMILAR THE"
18
+ 220 PRINT "PLAYS THE LESS YARDAGE GAINED. SCORES ARE GIVEN"
19
+ 223 PRINT "WHENEVER SCORES ARE MADE. SCORES MAY ALSO BE OBTAINED"
20
+ 225 PRINT "BY INPUTTING 99,99 FOR PLAY NOS. TO PUNT OR ATTEMPT A"
21
+ 227 PRINT "FIELD GOAL, INPUT 77,77 FOR PLAY NUMBERS. QUESTIONS WILL BE"
22
+ 230 PRINT "ASKED THEN. ON 4TH DOWN, YOU WILL ALSO BE ASKED WHETHER"
23
+ 240 PRINT "YOU WANT TO PUNT OR ATTEMPT A FIELD GOAL. IF THE ANSWER TO"
24
+ 250 PRINT "BOTH QUESTIONS IS NO IT WILL BE ASSUMED YOU WANT TO"
25
+ 260 PRINT "TRY AND GAIN YARDAGE. ANSWER ALL QUESTIONS YES OR NO."
26
+ 270 PRINT "THE GAME IS PLAYED UNTIL PLAYERS TERMINATE (CONTROL-C)."
27
+ 280 PRINT "PLEASE PREPARE A TAPE AND RUN.": STOP
28
+ 290 PRINT:PRINT "PLEASE INPUT SCORE LIMIT ON GAME";:INPUT E
29
+ 300 FOR I=1 TO 40: READ N: IF I>20 THEN 350
30
+ 330 A(N)=I: GOTO 360
31
+ 350 B(N)=I-20
32
+ 360 C(I)=N: NEXT I
33
+ 370 FOR I=1 TO 20: READ P$(I): NEXT I
34
+ 380 L=0: T=1
35
+ 410 PRINT "TEAM";T;"PLAY CHART"
36
+ 420 PRINT "NO. PLAY"
37
+ 430 FOR I=1 TO 20
38
+ 440 REM
39
+ 450 PRINT C(I+L);TAB(6);P$(I)
40
+ 460 NEXT I
41
+ 630 L=L+20:T=2
42
+ 640 PRINT
43
+ 650 PRINT "TEAR OFF HERE----------------------------------------------"
44
+ 660 FOR X=1 TO 11: PRINT: NEXT X
45
+ 670 FOR Z=1 TO 3000: NEXT Z
46
+ 680 IF L=20 THEN 410
47
+ 690 D(1)=0: D(2)=3: M$(1)="--->": M$(2)="<---"
48
+ 700 H(1)=0: H(2)=0: T(1)=2: T(2)=1
49
+ 710 W(1)=-1: W(2)=1: X(1)=100: X(2)=0
50
+ 720 Y(1)=1: Y(2)=-1: Z(1)=0: Z(2)=100
51
+ 725 GOSUB 1910
52
+ 730 PRINT "TEAM 1 DEFENDS 0 YD GOAL -- TEAM 2 DEFENDS 100 YD GOAL."
53
+ 740 T=INT(2*RND(1)+1)
54
+ 760 PRINT: PRINT "THE COIN IS FLIPPED"
55
+ 765 P=X(T)-Y(T)*40
56
+ 770 GOSUB 1860: PRINT : PRINT "TEAM";T;"RECEIVES KICK-OFF"
57
+ 780 K=INT(26*RND(1)+40)
58
+ 790 P=P-Y(T)*K
59
+ 794 IF W(T)*P<Z(T)+10 THEN 810
60
+ 795 PRINT: PRINT "BALL WENT OUT OF ENDZONE --AUTOMATIC TOUCHBACK--"
61
+ 796 GOTO 870
62
+ 810 PRINT "BALL WENT";K;"YARDS. NOW ON";P:GOSUB 1900
63
+ 830 PRINT "TEAM";T;"DO YOU WANT TO RUNBACK";:INPUT A$
64
+ 840 IF A$="YES" THEN 1430
65
+ 845 IF A$<>"NO" THEN 830
66
+ 850 IF W(T)*P<Z(T) THEN 880
67
+ 870 P=Z(T)-W(T)*20
68
+ 880 D=1: S=P
69
+ 885 FOR I=1 TO 72: PRINT "=";: NEXT I
70
+ 890 PRINT: PRINT "TEAM";T;"DOWN";D;"ON";P
71
+ 893 IF D<>1 THEN 900
72
+ 895 IF Y(T)*(P+Y(T)*10)>=X(T) THEN 898
73
+ 897 C=4: GOTO 900
74
+ 898 C=8
75
+ 900 IF C=8 THEN 904
76
+ 901 PRINT TAB(27);10-(Y(T)*P-Y(T)*S);"YARDS TO 1ST DOWN"
77
+ 902 GOTO 910
78
+ 904 PRINT TAB(27);X(T)-Y(T)*P;"YARDS"
79
+ 910 GOSUB 1900: IF D=4 THEN 1180
80
+ 920 REM
81
+ 930 U=INT(3*RND(0)-1): GOTO 940
82
+ 936 PRINT "ILLEGAL PLAY NUMBER, CHECK AND"
83
+ 940 PRINT "INPUT OFFENSIVE PLAY, DEFENSIVE PLAY";
84
+ 950 IF T=2 THEN 970
85
+ 960 INPUT P1,P2: GOTO 975
86
+ 970 INPUT P2,P1
87
+ 975 IF P1=77 THEN 1180
88
+ 980 IF P1>20 THEN 1800
89
+ 985 IF P1<1 THEN 1800
90
+ 990 IF P2>20 THEN 1800
91
+ 992 IF P2<1 THEN 1800
92
+ 995 P1=INT(P1): P2=INT(P2)
93
+ 1000 Y=INT(ABS(A(P1)-B(P2))/19*((X(T)-Y(T)*P+25)*RND(1)-15))
94
+ 1005 PRINT: IF T=2 THEN 1015
95
+ 1010 IF A(P1)<11 THEN 1048
96
+ 1012 GOTO 1020
97
+ 1015 IF B(P2)<11 THEN 1048
98
+ 1020 IF U<>0 THEN 1035
99
+ 1025 PRINT "PASS INCOMPLETE TEAM";T
100
+ 1030 Y=0: GOTO 1050
101
+ 1035 G=RND(1): IF G>.025 THEN 1040
102
+ 1037 IF Y>2 THEN 1045
103
+ 1040 PRINT "QUARTERBACK SCRAMBLED": GOTO 1050
104
+ 1045 PRINT "PASS COMPLETED": GOTO 1050
105
+ 1048 PRINT "THE BALL WAS RUN"
106
+ 1050 P=P-W(T)*Y
107
+ 1060 PRINT: PRINT "NET YARDS GAINED ON DOWN";D;"ARE ";Y
108
+ 1070 G=RND(1): IF G>.025 THEN 1110
109
+ 1080 PRINT: PRINT "** LOSS OF POSSESSION FROM TEAM";T;"TO TEAM";T(T)
110
+ 1100 GOSUB 1850: PRINT: T=T(T): GOTO 830
111
+ 1110 IF Y(T)*P>=X(T) THEN 1320
112
+ 1120 IF W(T)*P>=Z(T) THEN 1230
113
+ 1130 IF Y(T)*P-Y(T)*S>=10 THEN 880
114
+ 1140 D=D+1: IF D<>5 THEN 885
115
+ 1160 PRINT: PRINT "CONVERSION UNSUCCESSFUL TEAM";T:T=T(T)
116
+ 1170 GOSUB 1850: GOTO 880
117
+ 1180 PRINT "DOES TEAM";T;"WANT TO PUNT";: INPUT A$
118
+ 1185 IF A$="NO" THEN 1200
119
+ 1187 IF A$<>"YES" THEN 1180
120
+ 1190 PRINT:PRINT "TEAM";T;"WILL PUNT": G=RND(1): IF G<.025 THEN 1080
121
+ 1195 GOSUB 1850: K=INT(25*RND(1)+35): T=T(T): GOTO 790
122
+ 1200 PRINT "DOES TEAM";T;"WANT TO ATTEMPT A FIELD GOAL";: INPUT A$
123
+ 1210 IF A$="YES" THEN 1640
124
+ 1215 IF A$<>"NO" THEN 1200
125
+ 1217 GOTO 920
126
+ 1230 PRINT: PRINT "SAFETY AGAINST TEAM";T;"**********************OH-OH"
127
+ 1240 H(T(T))=H(T(T))+2: GOSUB 1810
128
+ 1280 PRINT"TEAM";T;"DO YOU WANT TO PUNT INSTEAD OF A KICKOFF";:INPUT A$
129
+ 1290 P=Z(T)-W(T)*20: IF A$="YES" THEN 1190
130
+ 1320 PRINT: PRINT "TOUCHDOWN BY TEAM";T;"*********************YEA TEAM"
131
+ 1340 Q=7: G=RND(1): IF G>.1 THEN 1380
132
+ 1360 Q=6: PRINT "EXTRA POINT NO GOOD": GOTO 1390
133
+ 1380 PRINT "EXTRA POINT GOOD"
134
+ 1390 H(T)=H(T)+Q: GOSUB 1810
135
+ 1420 T=T(T): GOTO 765
136
+ 1430 K=INT(9*RND(0)+1)
137
+ 1440 R=INT(((X(T)-Y(T)*P+25)*RND(1)-15)/K)
138
+ 1460 P=P-W(T)*R
139
+ 1480 PRINT:PRINT "RUNBACK TEAM";T;R;"YARDS"
140
+ 1485 G=RND(1): IF G<.025 THEN 1080
141
+ 1490 IF Y(T)*P>=X(T) THEN 1320
142
+ 1500 IF W(T)*P>=Z(T) THEN 1230
143
+ 1510 GOTO 880
144
+ 1640 PRINT: PRINT "TEAM";T;"WILL ATTEMPT A FIELD GOAL"
145
+ 1645 G=RND(1): IF G<.025 THEN 1080
146
+ 1650 F=INT(35*RND(1)+20)
147
+ 1660 PRINT: PRINT "KICK IS";F;"YARDS LONG"
148
+ 1680 P=P-W(T)*F: G=RND(1)
149
+ 1690 IF G<.35 THEN 1735
150
+ 1700 IF Y(T)*P<X(T) THEN 1740
151
+ 1710 PRINT "FIELD GOAL GOOD FOR TEAM";T;"*********************YEA"
152
+ 1720 Q=3: GOTO 1390
153
+ 1735 PRINT "BALL WENT WIDE"
154
+ 1740 PRINT "FIELD GOAL UNSUCCESFUL TEAM";T;"-----------------TOO BAD"
155
+ 1742 GOSUB 1850: IF Y(T)*P<X(T)+10 THEN 1745
156
+ 1744 T=T(T): GOTO 794
157
+ 1745 PRINT: PRINT "BALL NOW ON";P
158
+ 1750 T=T(T): GOSUB 1900: GOTO 830
159
+ 1770 DATA 17,8,4,14,19,3,10,1,7,11,15,9,5,20,13,18,16,2,12,6
160
+ 1780 DATA 20,2,17,5,8,18,12,11,1,4,19,14,10,7,9,15,6,13,16,3
161
+ 1790 DATA "PITCHOUT","TRIPLE REVERSE","DRAW","QB SNEAK","END AROUND"
162
+ 1792 DATA "DOUBLE REVERSE","LEFT SWEEP","RIGHT SWEEP","OFF TACKLE"
163
+ 1794 DATA "WISHBONE OPTION","FLARE PASS","SCREEN PASS"
164
+ 1796 DATA "ROLL OUT OPTION","RIGHT CURL","LEFT CURL","WISHBONE OPTION"
165
+ 1798 DATA "SIDELINE PASS","HALF-BACK OPTION","RAZZLE-DAZZLE","BOMB!!!!"
166
+ 1800 IF P1<>99 THEN 936
167
+ 1810 PRINT: PRINT "TEAM 1 SCORE IS";H(1)
168
+ 1820 PRINT "TEAM 2 SCORE IS";H(2): PRINT
169
+ 1825 IF H(T)<E THEN 1830
170
+ 1827 PRINT "TEAM";T;"WINS*******************": GOTO 2000
171
+ 1830 IF P1=99 THEN 940
172
+ 1835 RETURN
173
+ 1850 PRINT
174
+ 1860 FOR X=1 TO 72: PRINT "+";: NEXT X: PRINT
175
+ 1870 RETURN
176
+ 1900 PRINT TAB(D(T)+5+P/2);M$(T)
177
+ 1910 PRINT "TEAM 1 [0 10 20 30 40 50 60 70 80 90";
178
+ 1915 PRINT " 100] TEAM 2"
179
+ 1920 PRINT
180
+ 1930 RETURN
181
+ 2000 END
@@ -0,0 +1,23 @@
1
+ NO
2
+ 6
3
+ YES
4
+ 1,1
5
+ 2,2
6
+ 3,3
7
+ 4,4
8
+ 5,5
9
+ 6,6
10
+ NO
11
+ YES
12
+ YES
13
+ 1,1
14
+ 2,2
15
+ 3,3
16
+ 3,3
17
+ 3,3
18
+ 3,3
19
+ 3,3
20
+ 3,3
21
+ 3,3
22
+ 3,3
23
+ 3,3
@@ -0,0 +1,318 @@
1
+ FOOTBALL
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ PRESENTING N.F.U. FOOTBALL (NO FORTRAN USED)
7
+
8
+
9
+ DO YOU WANT INSTRUCTIONS? NO
10
+
11
+ PLEASE INPUT SCORE LIMIT ON GAME? 6
12
+ TEAM 1 PLAY CHART
13
+ NO. PLAY
14
+ 17 PITCHOUT
15
+ 8 TRIPLE REVERSE
16
+ 4 DRAW
17
+ 14 QB SNEAK
18
+ 19 END AROUND
19
+ 3 DOUBLE REVERSE
20
+ 10 LEFT SWEEP
21
+ 1 RIGHT SWEEP
22
+ 7 OFF TACKLE
23
+ 11 WISHBONE OPTION
24
+ 15 FLARE PASS
25
+ 9 SCREEN PASS
26
+ 5 ROLL OUT OPTION
27
+ 20 RIGHT CURL
28
+ 13 LEFT CURL
29
+ 18 WISHBONE OPTION
30
+ 16 SIDELINE PASS
31
+ 2 HALF-BACK OPTION
32
+ 12 RAZZLE-DAZZLE
33
+ 6 BOMB!!!!
34
+
35
+ TEAR OFF HERE----------------------------------------------
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+ TEAM 2 PLAY CHART
48
+ NO. PLAY
49
+ 20 PITCHOUT
50
+ 2 TRIPLE REVERSE
51
+ 17 DRAW
52
+ 5 QB SNEAK
53
+ 8 END AROUND
54
+ 18 DOUBLE REVERSE
55
+ 12 LEFT SWEEP
56
+ 11 RIGHT SWEEP
57
+ 1 OFF TACKLE
58
+ 4 WISHBONE OPTION
59
+ 19 FLARE PASS
60
+ 14 SCREEN PASS
61
+ 10 ROLL OUT OPTION
62
+ 7 RIGHT CURL
63
+ 9 LEFT CURL
64
+ 15 WISHBONE OPTION
65
+ 6 SIDELINE PASS
66
+ 13 HALF-BACK OPTION
67
+ 16 RAZZLE-DAZZLE
68
+ 3 BOMB!!!!
69
+
70
+ TEAR OFF HERE----------------------------------------------
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
83
+
84
+ TEAM 1 DEFENDS 0 YD GOAL -- TEAM 2 DEFENDS 100 YD GOAL.
85
+
86
+ THE COIN IS FLIPPED
87
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
88
+
89
+ TEAM 2 RECEIVES KICK-OFF
90
+ BALL WENT 58 YARDS. NOW ON 98
91
+ <---
92
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
93
+
94
+ TEAM 2 DO YOU WANT TO RUNBACK? YES
95
+
96
+ RUNBACK TEAM 2 8 YARDS
97
+ ========================================================================
98
+ TEAM 2 DOWN 1 ON 90
99
+ 10 YARDS TO 1ST DOWN
100
+ <---
101
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
102
+
103
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 1,1
104
+
105
+ THE BALL WAS RUN
106
+
107
+ NET YARDS GAINED ON DOWN 1 ARE 1
108
+ ========================================================================
109
+ TEAM 2 DOWN 2 ON 89
110
+ 9 YARDS TO 1ST DOWN
111
+ <---
112
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
113
+
114
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 2,2
115
+
116
+ THE BALL WAS RUN
117
+
118
+ NET YARDS GAINED ON DOWN 2 ARE 29
119
+ ========================================================================
120
+ TEAM 2 DOWN 1 ON 60
121
+ 10 YARDS TO 1ST DOWN
122
+ <---
123
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
124
+
125
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
126
+
127
+ QUARTERBACK SCRAMBLED
128
+
129
+ NET YARDS GAINED ON DOWN 1 ARE 49
130
+ ========================================================================
131
+ TEAM 2 DOWN 1 ON 11
132
+ 10 YARDS TO 1ST DOWN
133
+ <---
134
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
135
+
136
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 4,4
137
+
138
+ THE BALL WAS RUN
139
+
140
+ NET YARDS GAINED ON DOWN 1 ARE 1
141
+ ========================================================================
142
+ TEAM 2 DOWN 2 ON 10
143
+ 9 YARDS TO 1ST DOWN
144
+ <---
145
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
146
+
147
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 5,5
148
+
149
+ THE BALL WAS RUN
150
+
151
+ NET YARDS GAINED ON DOWN 2 ARE 8
152
+ ========================================================================
153
+ TEAM 2 DOWN 3 ON 2
154
+ 1 YARDS TO 1ST DOWN
155
+ <---
156
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
157
+
158
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 6,6
159
+
160
+ QUARTERBACK SCRAMBLED
161
+
162
+ NET YARDS GAINED ON DOWN 3 ARE -2
163
+ ========================================================================
164
+ TEAM 2 DOWN 4 ON 4
165
+ 3 YARDS TO 1ST DOWN
166
+ <---
167
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
168
+
169
+ DOES TEAM 2 WANT TO PUNT? NO
170
+ DOES TEAM 2 WANT TO ATTEMPT A FIELD GOAL? YES
171
+
172
+ TEAM 2 WILL ATTEMPT A FIELD GOAL
173
+
174
+ KICK IS 50 YARDS LONG
175
+ FIELD GOAL GOOD FOR TEAM 2 *********************YEA
176
+
177
+ TEAM 1 SCORE IS 0
178
+ TEAM 2 SCORE IS 3
179
+
180
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
181
+
182
+ TEAM 1 RECEIVES KICK-OFF
183
+ BALL WENT 60 YARDS. NOW ON 0
184
+ --->
185
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
186
+
187
+ TEAM 1 DO YOU WANT TO RUNBACK? YES
188
+
189
+ RUNBACK TEAM 1 5 YARDS
190
+ ========================================================================
191
+ TEAM 1 DOWN 1 ON 5
192
+ 10 YARDS TO 1ST DOWN
193
+ --->
194
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
195
+
196
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 1,1
197
+
198
+ THE BALL WAS RUN
199
+
200
+ NET YARDS GAINED ON DOWN 1 ARE -1
201
+ ========================================================================
202
+ TEAM 1 DOWN 2 ON 4
203
+ 11 YARDS TO 1ST DOWN
204
+ --->
205
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
206
+
207
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 2,2
208
+
209
+ PASS INCOMPLETE TEAM 1
210
+
211
+ NET YARDS GAINED ON DOWN 2 ARE 0
212
+ ========================================================================
213
+ TEAM 1 DOWN 3 ON 4
214
+ 11 YARDS TO 1ST DOWN
215
+ --->
216
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
217
+
218
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
219
+
220
+ THE BALL WAS RUN
221
+
222
+ NET YARDS GAINED ON DOWN 3 ARE 35
223
+ ========================================================================
224
+ TEAM 1 DOWN 1 ON 39
225
+ 10 YARDS TO 1ST DOWN
226
+ --->
227
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
228
+
229
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
230
+
231
+ THE BALL WAS RUN
232
+
233
+ NET YARDS GAINED ON DOWN 1 ARE 5
234
+ ========================================================================
235
+ TEAM 1 DOWN 2 ON 44
236
+ 5 YARDS TO 1ST DOWN
237
+ --->
238
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
239
+
240
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
241
+
242
+ THE BALL WAS RUN
243
+
244
+ NET YARDS GAINED ON DOWN 2 ARE 16
245
+ ========================================================================
246
+ TEAM 1 DOWN 1 ON 60
247
+ 10 YARDS TO 1ST DOWN
248
+ --->
249
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
250
+
251
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
252
+
253
+ THE BALL WAS RUN
254
+
255
+ NET YARDS GAINED ON DOWN 1 ARE -11
256
+ ========================================================================
257
+ TEAM 1 DOWN 2 ON 49
258
+ 21 YARDS TO 1ST DOWN
259
+ --->
260
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
261
+
262
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
263
+
264
+ THE BALL WAS RUN
265
+
266
+ NET YARDS GAINED ON DOWN 2 ARE 23
267
+ ========================================================================
268
+ TEAM 1 DOWN 1 ON 72
269
+ 10 YARDS TO 1ST DOWN
270
+ --->
271
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
272
+
273
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
274
+
275
+ THE BALL WAS RUN
276
+
277
+ NET YARDS GAINED ON DOWN 1 ARE 25
278
+ ========================================================================
279
+ TEAM 1 DOWN 1 ON 97
280
+ 3 YARDS
281
+ --->
282
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
283
+
284
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
285
+
286
+ THE BALL WAS RUN
287
+
288
+ NET YARDS GAINED ON DOWN 1 ARE -4
289
+ ========================================================================
290
+ TEAM 1 DOWN 2 ON 93
291
+ 7 YARDS
292
+ --->
293
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
294
+
295
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
296
+
297
+ THE BALL WAS RUN
298
+
299
+ NET YARDS GAINED ON DOWN 2 ARE 5
300
+ ========================================================================
301
+ TEAM 1 DOWN 3 ON 98
302
+ 2 YARDS
303
+ --->
304
+ TEAM 1 [0 10 20 30 40 50 60 70 80 90 100] TEAM 2
305
+
306
+ INPUT OFFENSIVE PLAY, DEFENSIVE PLAY? 3,3
307
+
308
+ THE BALL WAS RUN
309
+
310
+ NET YARDS GAINED ON DOWN 3 ARE 2
311
+
312
+ TOUCHDOWN BY TEAM 1 *********************YEA TEAM
313
+ EXTRA POINT GOOD
314
+
315
+ TEAM 1 SCORE IS 7
316
+ TEAM 2 SCORE IS 3
317
+
318
+ TEAM 1 WINS*******************
@@ -0,0 +1,170 @@
1
+ 1 DIM F(4)
2
+ 2 PRINT TAB(31);"FUR TRADER"
3
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
4
+ 6 PRINT: PRINT: PRINT
5
+ 15 GOSUB 1091
6
+ 16 LET I=600
7
+ 17 PRINT "DO YOU WISH TO TRADE FURS?"
8
+ 18 GOSUB 1402
9
+ 19 IF B$="YES" THEN 100
10
+ 20 IF B$="YES " THEN 100
11
+ 21 STOP
12
+ 100 PRINT
13
+ 101 PRINT "YOU HAVE $";I " SAVINGS."
14
+ 102 PRINT "AND 190 FURS TO BEGIN THE EXPEDITION."
15
+ 261 LET E1=INT((.15*RND(1)+.95)*10^2+.5)/10^2
16
+ 262 LET B1=INT((.25*RND(1)+1.00)*10^2+.5)/10^2
17
+ 300 PRINT
18
+ 301 PRINT "YOUR 190 FURS ARE DISTRIBUTED AMONG THE FOLLOWING"
19
+ 302 PRINT "KINDS OF PELTS: MINK, BEAVER, ERMINE AND FOX."
20
+ 310 GOSUB 1430
21
+ 315 RESTORE
22
+ 330 FOR J=1 TO 4
23
+ 332 READ B$
24
+ 333 PRINT
25
+ 335 PRINT "HOW MANY ";B$;" PELTS DO YOU HAVE";
26
+ 338 INPUT F(J)
27
+ 340 LET F(0)=F(1)+F(2)+F(3)+F(4)
28
+ 342 IF F(0)=190 THEN 1100
29
+ 344 IF F(0)>190 THEN 500
30
+ 348 NEXT J
31
+ 350 GOTO 1100
32
+ 500 PRINT
33
+ 501 PRINT "YOU MAY NOT HAVE THAT MANY FURS."
34
+ 502 PRINT "DO NOT TRY TO CHEAT. I CAN ADD."
35
+ 503 PRINT "YOU MUST START AGAIN."
36
+ 504 GOTO 15
37
+ 508 PRINT
38
+ 511 PRINT "DO YOU WANT TO TRADE FURS NEXT YEAR?"
39
+ 513 GOTO 18
40
+ 1091 PRINT "YOU ARE THE LEADER OF A FRENCH FUR TRADING EXPEDITION IN "
41
+ 1092 PRINT "1776 LEAVING THE LAKE ONTARIO AREA TO SELL FURS AND GET"
42
+ 1093 PRINT "SUPPLIES FOR THE NEXT YEAR. YOU HAVE A CHOICE OF THREE"
43
+ 1094 PRINT "FORTS AT WHICH YOU MAY TRADE. THE COST OF SUPPLIES"
44
+ 1095 PRINT "AND THE AMOUNT YOU RECEIVE FOR YOUR FURS WILL DEPEND"
45
+ 1096 PRINT "ON THE FORT THAT YOU CHOOSE."
46
+ 1099 RETURN
47
+ 1100 PRINT "YOU MAY TRADE YOUR FURS AT FORT 1, FORT 2,"
48
+ 1102 PRINT "OR FORT 3. FORT 1 IS FORT HOCHELAGA (MONTREAL)"
49
+ 1103 PRINT "AND IS UNDER THE PROTECTION OF THE FRENCH ARMY."
50
+ 1104 PRINT "FORT 2 IS FORT STADACONA (QUEBEC) AND IS UNDER THE"
51
+ 1105 PRINT "PROTECTION OF THE FRENCH ARMY. HOWEVER, YOU MUST"
52
+ 1106 PRINT "MAKE A PORTAGE AND CROSS THE LACHINE RAPIDS."
53
+ 1108 PRINT "FORT 3 IS FORT NEW YORK AND IS UNDER DUTCH CONTROL."
54
+ 1109 PRINT "YOU MUST CROSS THROUGH IROQUOIS LAND."
55
+ 1110 PRINT "ANSWER 1, 2, OR 3."
56
+ 1111 INPUT B
57
+ 1112 IF B=1 THEN 1120
58
+ 1113 IF B=2 THEN 1135
59
+ 1115 IF B=3 THEN 1147
60
+ 1116 GOTO 1110
61
+ 1120 PRINT "YOU HAVE CHOSEN THE EASIEST ROUTE. HOWEVER, THE FORT"
62
+ 1121 PRINT "IS FAR FROM ANY SEAPORT. THE VALUE"
63
+ 1122 PRINT "YOU RECEIVE FOR YOUR FURS WILL BE LOW AND THE COST"
64
+ 1123 PRINT "OF SUPPLIES HIGHER THAN AT FORTS STADACONA OR NEW YORK."
65
+ 1125 GOSUB 1400
66
+ 1129 IF B$="YES" THEN 1110
67
+ 1130 GOTO 1160
68
+ 1135 PRINT "YOU HAVE CHOSEN A HARD ROUTE. IT IS, IN COMPARSION,"
69
+ 1136 PRINT "HARDER THAN THE ROUTE TO HOCHELAGA BUT EASIER THAN"
70
+ 1137 PRINT "THE ROUTE TO NEW YORK. YOU WILL RECEIVE AN AVERAGE VALUE"
71
+ 1138 PRINT "FOR YOUR FURS AND THE COST OF YOUR SUPPLIES WILL BE AVERAGE."
72
+ 1141 GOSUB 1400
73
+ 1144 IF B$="YES" THEN 1110
74
+ 1145 GOTO 1198
75
+ 1147 PRINT "YOU HAVE CHOSEN THE MOST DIFFICULT ROUTE. AT"
76
+ 1148 PRINT "FORT NEW YORK YOU WILL RECEIVE THE HIGHEST VALUE"
77
+ 1149 PRINT "FOR YOUR FURS. THE COST OF YOUR SUPPLIES"
78
+ 1150 PRINT "WILL BE LOWER THAN AT ALL THE OTHER FORTS."
79
+ 1152 GOSUB 1400
80
+ 1155 IF B$="YES" THEN 1110
81
+ 1156 GOTO 1250
82
+ 1160 LET I=I-160
83
+ 1169 PRINT
84
+ 1174 LET M1=INT((.2*RND(1)+.7)*10^2+.5)/10^2
85
+ 1175 LET E1=INT((.2*RND(1)+.65)*10^2+.5)/10^2
86
+ 1176 LET B1=INT((.2*RND(1)+.75)*10^2+.5)/10^2
87
+ 1177 LET D1=INT((.2*RND(1)+.8)*10^2+.5)/10^2
88
+ 1180 PRINT "SUPPLIES AT FORT HOCHELAGA COST $150.00."
89
+ 1181 PRINT "YOUR TRAVEL EXPENSES TO HOCHELAGA WERE $10.00."
90
+ 1190 GOTO 1410
91
+ 1198 LET I=I-140
92
+ 1201 PRINT
93
+ 1205 LET M1=INT((.3*RND(1)+.85)*10^2+.5)/10^2
94
+ 1206 LET E1=INT((.15*RND(1)+.8)*10^2+.5)/10^2
95
+ 1207 LET B1=INT((.2*RND(1)+.9)*10^2+.5)/10^2
96
+ 1209 LET P=INT(10*RND(1))+1
97
+ 1210 IF P<=2 THEN 1216
98
+ 1212 IF P<=6 THEN 1224
99
+ 1213 IF P<=8 THEN 1226
100
+ 1215 IF P<=10 THEN 1235
101
+ 1216 LET F(2)=0
102
+ 1218 PRINT "YOUR BEAVER WERE TOO HEAVY TO CARRY ACROSS"
103
+ 1219 PRINT "THE PORTAGE. YOU HAD TO LEAVE THE PELTS, BUT FOUND"
104
+ 1220 PRINT "THEM STOLEN WHEN YOU RETURNED."
105
+ 1221 GOSUB 1244
106
+ 1222 GOTO 1414
107
+ 1224 PRINT "YOU ARRIVED SAFELY AT FORT STADACONA."
108
+ 1225 GOTO 1239
109
+ 1226 GOSUB 1430
110
+ 1230 PRINT "YOUR CANOE UPSET IN THE LACHINE RAPIDS. YOU"
111
+ 1231 PRINT "LOST ALL YOUR FURS."
112
+ 1232 GOSUB 1244
113
+ 1233 GOTO 1418
114
+ 1235 LET F(4)=0
115
+ 1237 PRINT "YOUR FOX PELTS WERE NOT CURED PROPERLY."
116
+ 1238 PRINT "NO ONE WILL BUY THEM."
117
+ 1239 GOSUB 1244
118
+ 1240 GOTO 1410
119
+ 1244 PRINT "SUPPLIES AT FORT STADACONA COST $125.00."
120
+ 1246 PRINT "YOUR TRAVEL EXPENSES TO STADACONA WERE $15.00."
121
+ 1248 RETURN
122
+ 1250 LET I=I-105
123
+ 1254 PRINT
124
+ 1260 LET M1=INT((.15*RND(1)+1.05)*10^2+.5)/10^2
125
+ 1263 LET D1=INT((.25*RND(1)+1.1)*10^2+.5)/10^2
126
+ 1270 LET P=INT(10*RND(1))+1
127
+ 1271 IF P<=2 THEN 1281
128
+ 1272 IF P<=6 THEN 1291
129
+ 1273 IF P<=8 THEN 1295
130
+ 1274 IF P<=10 THEN 1306
131
+ 1281 PRINT "YOU WERE ATTACKED BY A PARTY OF IROQUOIS."
132
+ 1282 PRINT "ALL PEOPLE IN YOUR TRADING GROUP WERE"
133
+ 1283 PRINT "KILLED. THIS ENDS THE GAME."
134
+ 1284 STOP
135
+ 1291 PRINT "YOU WERE LUCKY. YOU ARRIVED SAFELY"
136
+ 1292 PRINT "AT FORT NEW YORK."
137
+ 1293 GOTO 1311
138
+ 1295 GOSUB 1430
139
+ 1300 PRINT "YOU NARROWLY ESCAPED AN IROQUOIS RAIDING PARTY."
140
+ 1301 PRINT "HOWEVER, YOU HAD TO LEAVE ALL YOUR FURS BEHIND."
141
+ 1303 GOSUB 1320
142
+ 1304 GOTO 1418
143
+ 1306 LET B1=B1/2
144
+ 1307 LET M1=M1/2
145
+ 1308 PRINT "YOUR MINK AND BEAVER WERE DAMAGED ON YOUR TRIP."
146
+ 1309 PRINT "YOU RECEIVE ONLY HALF THE CURRENT PRICE FOR THESE FURS."
147
+ 1311 GOSUB 1320
148
+ 1312 GOTO 1410
149
+ 1320 PRINT "SUPPLIES AT NEW YORK COST $80.00."
150
+ 1321 PRINT "YOUR TRAVEL EXPENSES TO NEW YORK WERE $25.00."
151
+ 1322 RETURN
152
+ 1400 PRINT "DO YOU WANT TO TRADE AT ANOTHER FORT?"
153
+ 1402 PRINT "ANSWER YES OR NO",
154
+ 1403 INPUT B$
155
+ 1404 RETURN
156
+ 1410 PRINT
157
+ 1412 PRINT "YOUR BEAVER SOLD FOR $";B1*F(2);
158
+ 1414 PRINT "YOUR FOX SOLD FOR $";D1*F(4)
159
+ 1416 PRINT "YOUR ERMINE SOLD FOR $";E1*F(3);
160
+ 1417 PRINT "YOUR MINK SOLD FOR $";M1*F(1)
161
+ 1418 LET I=M1*F(1)+B1*F(2)+E1*F(3)+D1*F(4)+I
162
+ 1420 PRINT
163
+ 1422 PRINT "YOU NOW HAVE $";I;" INCLUDING YOUR PREVIOUS SAVINGS"
164
+ 1425 GOTO 508
165
+ 1430 FOR J=1 TO 4
166
+ 1432 LET F(J)=0
167
+ 1434 NEXT J
168
+ 1436 RETURN
169
+ 2000 DATA "MINK","BEAVER","ERMINE","FOX"
170
+ 2046 END
@@ -0,0 +1,20 @@
1
+ YES
2
+ 60
3
+ 60
4
+ 70
5
+ 1
6
+ NO
7
+ YES
8
+ 70
9
+ 60
10
+ 60
11
+ 2
12
+ NO
13
+ YES
14
+ 60
15
+ 70
16
+ 60
17
+ 3
18
+ YES
19
+ 3
20
+ NO