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,127 @@
1
+ 10 REM INSTRUCTIONS FOR "SUPER STARTREK" MAR 5, 1978
2
+ 20 FOR I=1 TO 12:PRINT:NEXT I
3
+ 21 PRINT TAB(10);"*************************************"
4
+ 22 PRINT TAB(10);"* *"
5
+ 23 PRINT TAB(10);"* *"
6
+ 30 PRINT TAB(10);"* * * SUPER STAR TREK * * *"
7
+ 31 PRINT TAB(10);"* *"
8
+ 32 PRINT TAB(10);"* *"
9
+ 35 PRINT TAB(10);"*************************************"
10
+ 36 FOR I=1 TO 8:PRINT:NEXT I
11
+ 40 INPUT "DO YOU NEED INSTRUCTIONS (Y/N)";K$:IF K$="N" THEN 2000
12
+ 44 PRINT
13
+ 45 REM PRINT "TURN THE TTY ON-LINE AND HIT ANY KEY EXCEPT RETURN"
14
+ 46 REM IF INP(1)=13 THEN 46
15
+ 50 REM POKE 1229,2:POKE 1237,3:NULL 1
16
+ 90 PRINT" INSTRUCTIONS FOR 'SUPER STAR TREK'"
17
+ 100 PRINT
18
+ 110 PRINT"1. WHEN YOU SEE \COMMAND ?\ PRINTED, ENTER ONE OF THE LEGAL"
19
+ 120 PRINT" COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)."
20
+ 130 PRINT"2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHORT"
21
+ 140 PRINT" LIST OF THE LEGAL COMMANDS PRINTED OUT."
22
+ 150 PRINT"3. SOME COMMANDS REQUIRE YOU TO ENTER DATA (FOR EXAMPLE, THE"
23
+ 160 PRINT" 'NAV' COMMAND COMES BACK WITH 'COURSE (1-9) ?'.) IF YOU"
24
+ 170 PRINT" TYPE IN ILLEGAL DATA (LIKE NEGATIVE NUMBERS), THAN COMMAND"
25
+ 180 PRINT" WILL BE ABORTED"
26
+ 190 PRINT
27
+ 270 PRINT" THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID,"
28
+ 280 PRINT"AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID."
29
+ 290 PRINT
30
+ 300 PRINT" YOU WILL BE ASSIGNED A STARTING POINT SOMEWHERE IN THE"
31
+ 310 PRINT"GALAXY TO BEGIN A TOUR OF DUTY AS COMANDER OF THE STARSHIP"
32
+ 320 PRINT"\ENTERPRISE\; YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF"
33
+ 330 PRINT"KLINGON WARWHIPS WHICH ARE MENACING THE UNITED FEDERATION OF"
34
+ 340 PRINT"PLANETS."
35
+ 360 PRINT
36
+ 370 PRINT" YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS CAPTAIN"
37
+ 380 PRINT"OF THE STARSHIP ENTERPRISE:"
38
+ 385 PRINT
39
+ 390 PRINT"\NAV\ COMMAND = WARP ENGINE CONTROL --"
40
+ 400 PRINT" COURSE IS IN A CIRCULAR NUMERICAL 4 3 2"
41
+ 410 PRINT" VECTOR ARRANGEMENT AS SHOWN . . ."
42
+ 420 PRINT" INTEGER AND REAL VALUES MAY BE ..."
43
+ 430 PRINT" USED. (THUS COURSE 1.5 IS HALF- 5 ---*--- 1"
44
+ 440 PRINT" WAY BETWEEN 1 AND 2 ..."
45
+ 450 PRINT" . . ."
46
+ 460 PRINT" VALUES MAY APPROACH 9.0, WHICH 6 7 8"
47
+ 470 PRINT" ITSELF IS EQUIVALENT TO 1.0"
48
+ 480 PRINT" COURSE"
49
+ 490 PRINT" ONE WARP FACTOR IS THE SIZE OF "
50
+ 500 PRINT" ONE QUADTANT. THEREFORE, TO GET"
51
+ 510 PRINT" FROM QUADRANT 6,5 TO 5,5, YOU WOULD"
52
+ 520 PRINT" USE COURSE 3, WARP FACTOR 1."
53
+ 530 PRINT
54
+ 540 PRINT"\SRS\ COMMAND = SHORT RANGE SENSOR SCAN"
55
+ 550 PRINT" SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT."
56
+ 555 PRINT
57
+ 560 PRINT" SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:"
58
+ 570 PRINT" <*> = YOUR STARSHIP'S POSITION"
59
+ 580 PRINT" +K+ = KLINGON BATTLE CRUISER"
60
+ 590 PRINT" >!< = FEDERATION STARBASE (REFUEL/REPAIR/RE-ARM HERE!)"
61
+ 600 PRINT" * = STAR"
62
+ 605 PRINT
63
+ 610 PRINT" A CONDENSED 'STATUS REPORT' WILL ALSO BE PRESENTED."
64
+ 620 PRINT
65
+ 640 PRINT"\LRS\ COMMAND = LONG RANGE SENSOR SCAN"
66
+ 650 PRINT" SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE"
67
+ 660 PRINT" OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)"
68
+ 670 PRINT" THE SCAN IS CODED IN THE FORM \###\, WHERE TH UNITS DIGIT"
69
+ 680 PRINT" IS THE NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF"
70
+ 690 PRINT" STARBASES, AND THE HUNDRESDS DIGIT IS THE NUMBER OF"
71
+ 700 PRINT" KLINGONS."
72
+ 705 PRINT
73
+ 706 PRINT" EXAMPLE - 207 = 2 KLINGONS, NO STARBASES, & 7 STARS."
74
+ 710 PRINT
75
+ 720 PRINT"\PHA\ COMMAND = PHASER CONTROL."
76
+ 730 PRINT" ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY "
77
+ 740 PRINT" ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO"
78
+ 750 PRINT" DEPLETE THEIR SHIELD POWER. (REMBER, KLINGONS HAVE"
79
+ 760 PRINT" PHASERS TOO!)"
80
+ 770 PRINT
81
+ 780 PRINT"\TOR\ COMMAND = PHOTON TORPEDO CONTROL"
82
+ 790 PRINT" TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL"
83
+ 800 PRINT" IF YOU HIT THE KLINGON VESSEL, HE IS DESTROYED AND"
84
+ 810 PRINT" CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO"
85
+ 820 PRINT" HIS PHASER FIRE. IN EITHER CASE, YOU ARE ALSO SUBJECT TO "
86
+ 825 PRINT" THE PHASER FIRE OF ALL OTHER KLINGONS IN THE QUADRANT."
87
+ 830 PRINT
88
+ 835 PRINT" THE LIBRARY-COMPUTER (\COM\ COMMAND) HAS AN OPTION TO "
89
+ 840 PRINT" COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)"
90
+ 850 PRINT
91
+ 860 PRINT"\SHE\ COMMAND = SHIELD CONTROL"
92
+ 870 PRINT" DEFINES THE NUMBER OF ENERGY UNITS TO BE ASSIGNED TO THE"
93
+ 880 PRINT" SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE"
94
+ 890 PRINT" THAN THE STATUS DISPLAY TOTAL ENERGY INCLUDES SHIELD ENERGY"
95
+ 900 PRINT
96
+ 910 PRINT"\DAM\ COMMAND = DAMMAGE CONTROL REPORT"
97
+ 920 PRINT" GIVES THE STATE OF REPAIR OF ALL DEVICES. WHERE A NEGATIVE"
98
+ 930 PRINT" 'STATE OF REPAIR' SHOWS THAT THE DEVICE IS TEMPORARILY"
99
+ 940 PRINT" DAMAGED."
100
+ 950 PRINT
101
+ 960 PRINT"\COM\ COMMAND = LIBRARY-COMPUTER"
102
+ 970 PRINT" THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:"
103
+ 980 PRINT" OPTION 0 = CUMULATIVE GALACTIC RECORD"
104
+ 990 PRINT" THIS OPTION SHOWES COMPUTER MEMORY OF THE RESULTS OF ALL"
105
+ 1000 PRINT" PREVIOUS SHORT AND LONG RANGE SENSOR SCANS"
106
+ 1010 PRINT" OPTION 1 = STATUS REPORT"
107
+ 1020 PRINT" THIS OPTION SHOWS THE NUMBER OF KLINGONS, STARDATES,"
108
+ 1030 PRINT" AND STARBASES REMAINING IN THE GAME."
109
+ 1040 PRINT" OPTION 2 = PHOTON TORPEDO DATA"
110
+ 1050 PRINT" WHICH GIVES DIRECTIONS AND DISTANCE FROM THE ENTERPRISE"
111
+ 1060 PRINT" TO ALL KLINGONS IN YOUR QUADRANT"
112
+ 1070 PRINT" OPTION 3 = STARBASE NAV DATA"
113
+ 1080 PRINT" THIS OPTION GIVES DIRECTION AND DISTANCE TO ANY "
114
+ 1090 PRINT" STARBASE WITHIN YOUR QUADRANT"
115
+ 1100 PRINT" OPTION 4 = DIRECTION/DISTANCE CALCULATOR"
116
+ 1110 PRINT" THIS OPTION ALLOWS YOU TO ENTER COORDINATES FOR"
117
+ 1120 PRINT" DIRECTION/DISTANCE CALCULATIONS"
118
+ 1130 PRINT" OPTION 5 = GALACTIC /REGION NAME/ MAP"
119
+ 1140 PRINT" THIS OPTION PRINTS THE NAMES OF THE SIXTEEN MAJOR "
120
+ 1150 PRINT" GALACTIC REGIONS REFERRED TO IN THE GAME."
121
+ 1990 REM POKE 1229,0:POKE 1237,1:NULL 0
122
+ 2000 REM PRINT:PRINT:PRINT
123
+ 2010 REM PRINT "TURN CASSETTE PLAYER ON AND HIT ANY KEY EXCEPT RETURN"
124
+ 2020 REM IF INP(1)=13 THEN 2020
125
+ 2030 REM PRINT
126
+ 2040 REM PRINT "TURN CASSETTE PLAYER OFF AND "
127
+ 2050 REM PRINT "TYPE 'RUN' WHEN COMPUTER PRINTS 'OK'"
@@ -0,0 +1,134 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ *************************************
14
+ * *
15
+ * *
16
+ * * * SUPER STAR TREK * * *
17
+ * *
18
+ * *
19
+ *************************************
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+ DO YOU NEED INSTRUCTIONS (Y/N)? Y
29
+
30
+ INSTRUCTIONS FOR 'SUPER STAR TREK'
31
+
32
+ 1. WHEN YOU SEE \COMMAND ?\ PRINTED, ENTER ONE OF THE LEGAL
33
+ COMMANDS (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX).
34
+ 2. IF YOU SHOULD TYPE IN AN ILLEGAL COMMAND, YOU'LL GET A SHORT
35
+ LIST OF THE LEGAL COMMANDS PRINTED OUT.
36
+ 3. SOME COMMANDS REQUIRE YOU TO ENTER DATA (FOR EXAMPLE, THE
37
+ 'NAV' COMMAND COMES BACK WITH 'COURSE (1-9) ?'.) IF YOU
38
+ TYPE IN ILLEGAL DATA (LIKE NEGATIVE NUMBERS), THAN COMMAND
39
+ WILL BE ABORTED
40
+
41
+ THE GALAXY IS DIVIDED INTO AN 8 X 8 QUADRANT GRID,
42
+ AND EACH QUADRANT IS FURTHER DIVIDED INTO AN 8 X 8 SECTOR GRID.
43
+
44
+ YOU WILL BE ASSIGNED A STARTING POINT SOMEWHERE IN THE
45
+ GALAXY TO BEGIN A TOUR OF DUTY AS COMANDER OF THE STARSHIP
46
+ \ENTERPRISE\; YOUR MISSION: TO SEEK AND DESTROY THE FLEET OF
47
+ KLINGON WARWHIPS WHICH ARE MENACING THE UNITED FEDERATION OF
48
+ PLANETS.
49
+
50
+ YOU HAVE THE FOLLOWING COMMANDS AVAILABLE TO YOU AS CAPTAIN
51
+ OF THE STARSHIP ENTERPRISE:
52
+
53
+ \NAV\ COMMAND = WARP ENGINE CONTROL --
54
+ COURSE IS IN A CIRCULAR NUMERICAL 4 3 2
55
+ VECTOR ARRANGEMENT AS SHOWN . . .
56
+ INTEGER AND REAL VALUES MAY BE ...
57
+ USED. (THUS COURSE 1.5 IS HALF- 5 ---*--- 1
58
+ WAY BETWEEN 1 AND 2 ...
59
+ . . .
60
+ VALUES MAY APPROACH 9.0, WHICH 6 7 8
61
+ ITSELF IS EQUIVALENT TO 1.0
62
+ COURSE
63
+ ONE WARP FACTOR IS THE SIZE OF
64
+ ONE QUADTANT. THEREFORE, TO GET
65
+ FROM QUADRANT 6,5 TO 5,5, YOU WOULD
66
+ USE COURSE 3, WARP FACTOR 1.
67
+
68
+ \SRS\ COMMAND = SHORT RANGE SENSOR SCAN
69
+ SHOWS YOU A SCAN OF YOUR PRESENT QUADRANT.
70
+
71
+ SYMBOLOGY ON YOUR SENSOR SCREEN IS AS FOLLOWS:
72
+ <*> = YOUR STARSHIP'S POSITION
73
+ +K+ = KLINGON BATTLE CRUISER
74
+ >!< = FEDERATION STARBASE (REFUEL/REPAIR/RE-ARM HERE!)
75
+ * = STAR
76
+
77
+ A CONDENSED 'STATUS REPORT' WILL ALSO BE PRESENTED.
78
+
79
+ \LRS\ COMMAND = LONG RANGE SENSOR SCAN
80
+ SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE
81
+ OF THE ENTERPRISE (WHICH IS IN THE MIDDLE OF THE SCAN)
82
+ THE SCAN IS CODED IN THE FORM \###\, WHERE TH UNITS DIGIT
83
+ IS THE NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF
84
+ STARBASES, AND THE HUNDRESDS DIGIT IS THE NUMBER OF
85
+ KLINGONS.
86
+
87
+ EXAMPLE - 207 = 2 KLINGONS, NO STARBASES, & 7 STARS.
88
+
89
+ \PHA\ COMMAND = PHASER CONTROL.
90
+ ALLOWS YOU TO DESTROY THE KLINGON BATTLE CRUISERS BY
91
+ ZAPPING THEM WITH SUITABLY LARGE UNITS OF ENERGY TO
92
+ DEPLETE THEIR SHIELD POWER. (REMBER, KLINGONS HAVE
93
+ PHASERS TOO!)
94
+
95
+ \TOR\ COMMAND = PHOTON TORPEDO CONTROL
96
+ TORPEDO COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL
97
+ IF YOU HIT THE KLINGON VESSEL, HE IS DESTROYED AND
98
+ CANNOT FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO
99
+ HIS PHASER FIRE. IN EITHER CASE, YOU ARE ALSO SUBJECT TO
100
+ THE PHASER FIRE OF ALL OTHER KLINGONS IN THE QUADRANT.
101
+
102
+ THE LIBRARY-COMPUTER (\COM\ COMMAND) HAS AN OPTION TO
103
+ COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)
104
+
105
+ \SHE\ COMMAND = SHIELD CONTROL
106
+ DEFINES THE NUMBER OF ENERGY UNITS TO BE ASSIGNED TO THE
107
+ SHIELDS. ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY. NOTE
108
+ THAN THE STATUS DISPLAY TOTAL ENERGY INCLUDES SHIELD ENERGY
109
+
110
+ \DAM\ COMMAND = DAMMAGE CONTROL REPORT
111
+ GIVES THE STATE OF REPAIR OF ALL DEVICES. WHERE A NEGATIVE
112
+ 'STATE OF REPAIR' SHOWS THAT THE DEVICE IS TEMPORARILY
113
+ DAMAGED.
114
+
115
+ \COM\ COMMAND = LIBRARY-COMPUTER
116
+ THE LIBRARY-COMPUTER CONTAINS SIX OPTIONS:
117
+ OPTION 0 = CUMULATIVE GALACTIC RECORD
118
+ THIS OPTION SHOWES COMPUTER MEMORY OF THE RESULTS OF ALL
119
+ PREVIOUS SHORT AND LONG RANGE SENSOR SCANS
120
+ OPTION 1 = STATUS REPORT
121
+ THIS OPTION SHOWS THE NUMBER OF KLINGONS, STARDATES,
122
+ AND STARBASES REMAINING IN THE GAME.
123
+ OPTION 2 = PHOTON TORPEDO DATA
124
+ WHICH GIVES DIRECTIONS AND DISTANCE FROM THE ENTERPRISE
125
+ TO ALL KLINGONS IN YOUR QUADRANT
126
+ OPTION 3 = STARBASE NAV DATA
127
+ THIS OPTION GIVES DIRECTION AND DISTANCE TO ANY
128
+ STARBASE WITHIN YOUR QUADRANT
129
+ OPTION 4 = DIRECTION/DISTANCE CALCULATOR
130
+ THIS OPTION ALLOWS YOU TO ENTER COORDINATES FOR
131
+ DIRECTION/DISTANCE CALCULATIONS
132
+ OPTION 5 = GALACTIC /REGION NAME/ MAP
133
+ THIS OPTION PRINTS THE NAMES OF THE SIXTEEN MAJOR
134
+ GALACTIC REGIONS REFERRED TO IN THE GAME.
@@ -0,0 +1,53 @@
1
+ 2 PRINT TAB(33);"SYNONYM"
2
+ 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 6 PRINT: PRINT: PRINT
4
+ 10 DIM R$(5),W$(10),L(30),R(30)
5
+ 20 R$(1)="RIGHT": R$(2)="CORRECT": R$(3)="FINE": R$(4)="GOOD!"
6
+ 30 R$(5)="CHECK"
7
+ 70 C=0
8
+ 90 PRINT "A SYNONYM OF A WORD MEANS ANOTHER WORD IN THE ENGLISH"
9
+ 100 PRINT "LANGUAGE WHICH HAS THE SAME OR VERY NEARLY THE SAME";
10
+ 110 PRINT " MEANING."
11
+ 130 PRINT "I CHOOSE A WORD -- YOU TYPE A SYNONYM."
12
+ 140 PRINT "IF YOU CAN'T THINK OF A SYNONYM, TYPE THE WORD 'HELP'"
13
+ 145 PRINT "AND I WILL TELL YOU A SYNONYM.": PRINT
14
+ 150 RESTORE: C=C+1: READ N
15
+ 160 IF C>N THEN 420
16
+ 170 N1=INT(RND(1)*N+1)
17
+ 174 IF R(N1)=1 THEN 170
18
+ 176 R(N1)=1
19
+ 180 FOR I=1 TO N1
20
+ 190 READ N2
21
+ 200 FOR J=1 TO N2
22
+ 210 READ W$(J)
23
+ 220 NEXT J
24
+ 230 NEXT I
25
+ 232 FOR J=1 TO N2: L(J)=J: NEXT J
26
+ 235 L(0)=N2: G=1: PRINT
27
+ 237 L(G)=L(L(0)): L(0)=N2-1: PRINT
28
+ 240 PRINT " WHAT IS A SYNONYM OF ";W$(G);: INPUT A$
29
+ 250 IF A$="HELP" THEN 340
30
+ 260 FOR K=1 TO N2
31
+ 270 IF G=K THEN 290
32
+ 280 IF A$=W$(K) THEN 320
33
+ 290 NEXT K
34
+ 300 PRINT " TRY AGAIN.": GOTO 240
35
+ 320 PRINT R$(INT(RND(1)*5+1)): GOTO 150
36
+ 340 G1=INT(RND(1)*L(0)+1)
37
+ 360 PRINT "**** A SYNONYM OF ";W$(G);" IS ";W$(L(G1));".": PRINT
38
+ 370 L(G1)=L(L(0)): L(0)=L(0)-1: GOTO 240
39
+ 420 PRINT: PRINT "SYNONYM DRILL COMPLETED.": GOTO 999
40
+ 500 DATA 10
41
+ 510 DATA 5,"FIRST","START","BEGINNING","ONSET","INITIAL"
42
+ 520 DATA 5,"SIMILAR","ALIKE","SAME","LIKE","RESEMBLING"
43
+ 530 DATA 5,"MODEL","PATTERN","PROTOTYPE","STANDARD","CRITERION"
44
+ 540 DATA 5,"SMALL","INSIGNIFICANT","LITTLE","TINY","MINUTE"
45
+ 550 DATA 6,"STOP","HALT","STAY","ARREST","CHECK","STANDSTILL"
46
+ 560 DATA 6,"HOUSE","DWELLING","RESIDENCE","DOMICILE","LODGING"
47
+ 565 DATA "HABITATION"
48
+ 570 DATA 7,"PIT","HOLE","HOLLOW","WELL","GULF","CHASM","ABYSS"
49
+ 580 DATA 7,"PUSH","SHOVE","THRUST","PROD","POKE","BUTT","PRESS"
50
+ 590 DATA 6,"RED","ROUGE","SCARLET","CRIMSON","FLAME","RUBY"
51
+ 600 DATA 7,"PAIN","SUFFERING","HURT","MISERY","DISTRESS","ACHE"
52
+ 605 DATA "DISCOMFORT"
53
+ 999 END
@@ -0,0 +1,13 @@
1
+ DWELLING
2
+ HOLE
3
+ HALT
4
+ COMMUNIST
5
+ MAGENTA
6
+ HELP
7
+ FLAME
8
+ SHOVE
9
+ HURT
10
+ SUPERIOR
11
+ ALPHA
12
+ HELP
13
+ INITIAL
@@ -0,0 +1,57 @@
1
+ SYNONYM
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ A SYNONYM OF A WORD MEANS ANOTHER WORD IN THE ENGLISH
7
+ LANGUAGE WHICH HAS THE SAME OR VERY NEARLY THE SAME MEANING.
8
+ I CHOOSE A WORD -- YOU TYPE A SYNONYM.
9
+ IF YOU CAN'T THINK OF A SYNONYM, TYPE THE WORD 'HELP'
10
+ AND I WILL TELL YOU A SYNONYM.
11
+
12
+
13
+
14
+ WHAT IS A SYNONYM OF HOUSE? DWELLING
15
+ GOOD!
16
+
17
+
18
+ WHAT IS A SYNONYM OF PIT? HOLE
19
+ FINE
20
+
21
+
22
+ WHAT IS A SYNONYM OF STOP? HALT
23
+ GOOD!
24
+
25
+
26
+ WHAT IS A SYNONYM OF RED? COMMUNIST
27
+ TRY AGAIN.
28
+ WHAT IS A SYNONYM OF RED? MAGENTA
29
+ TRY AGAIN.
30
+ WHAT IS A SYNONYM OF RED? HELP
31
+ **** A SYNONYM OF RED IS FLAME.
32
+
33
+ WHAT IS A SYNONYM OF RED? FLAME
34
+ CORRECT
35
+
36
+
37
+ WHAT IS A SYNONYM OF PUSH? SHOVE
38
+ FINE
39
+
40
+
41
+ WHAT IS A SYNONYM OF PAIN? HURT
42
+ RIGHT
43
+
44
+
45
+ WHAT IS A SYNONYM OF FIRST? SUPERIOR
46
+ TRY AGAIN.
47
+ WHAT IS A SYNONYM OF FIRST? ALPHA
48
+ TRY AGAIN.
49
+ WHAT IS A SYNONYM OF FIRST? HELP
50
+ **** A SYNONYM OF FIRST IS INITIAL.
51
+
52
+ WHAT IS A SYNONYM OF FIRST? INITIAL
53
+ CHECK
54
+
55
+
56
+ WHAT IS A SYNONYM OF SIMILAR?
57
+ Error on line 240: No more input
@@ -0,0 +1,51 @@
1
+ 10 PRINT TAB(33);"TARGET"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT: PRINT: PRINT
4
+ 100 R=1: R1=57.296: P=3.14159
5
+ 110 PRINT "YOU ARE THE WEAPONS OFFICER ON THE STARSHIP ENTERPRISE"
6
+ 120 PRINT "AND THIS IS A TEST TO SEE HOW ACCURATE A SHOT YOU"
7
+ 130 PRINT "ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD"
8
+ 140 PRINT "THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION"
9
+ 150 PRINT "OF THE TARGET IN THREE DIMENSIONAL RECTANGULAR COORDINATES,"
10
+ 160 PRINT "THE APPROXIMATE NUMBER OF DEGREES FROM THE X AND Z"
11
+ 170 PRINT "AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET."
12
+ 180 PRINT "YOU WILL THEN PROCEEED TO SHOOT AT THE TARGET UNTIL IT IS"
13
+ 190 PRINT "DESTROYED!": PRINT: PRINT "GOOD LUCK!!":PRINT: PRINT
14
+ 220 A=RND(1)*2*P: B=RND(1)*2*P: Q=INT(A*R1): W=INT(B*R1)
15
+ 260 PRINT "RADIANS FROM X AXIS =";A;" FROM Z AXIS =";B
16
+ 280 P1=100000*RND(1)+RND(1): X=SIN(B)*COS(A)*P1: Y=SIN(B)*SIN(A)*P1
17
+ 290 Z=COS(B)*P1
18
+ 340 PRINT "TARGET SIGHTED: APPROXIMATE COORDINATES: X=";X;" Y=";Y;" Z=";Z
19
+ 345 R=R+1: IF R>5 THEN 390
20
+ 350 ON R GOTO 355,360,365,370,375
21
+ 355 P3=INT(P1*.05)*20: GOTO 390
22
+ 360 P3=INT(P1*.1)*10: GOTO 390
23
+ 365 P3=INT(P1*.5)*2: GOTO 390
24
+ 370 P3=INT(P1): GOTO 390
25
+ 375 P3=P1
26
+ 390 PRINT " ESTIMATED DISTANCE:";P3
27
+ 400 PRINT:PRINT "INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE";
28
+ 405 INPUT A1,B1,P2
29
+ 410 PRINT: IF P2<20 THEN PRINT "YOU BLEW YOURSELF UP!!": GOTO 580
30
+ 420 A1=A1/R1: B1=B1/R1: PRINT "RADIANS FROM X AXIS =";A1;" ";
31
+ 425 PRINT "FROM Z AXIS =";B1
32
+ 480 X1=P2*SIN(B1)*COS(A1): Y1=P2*SIN(B1)*SIN(A1): Z1=P2*COS(B1)
33
+ 510 D=((X1-X)^2+(Y1-Y)^2+(Z1-Z)^2)^(1/2)
34
+ 520 IF D>20 THEN 670
35
+ 530 PRINT: PRINT " * * * HIT * * * TARGET IS NON-FUNCTIONAL": PRINT
36
+ 550 PRINT "DISTANCE OF EXPLOSION FROM TARGET WAS";D;"KILOMETERS."
37
+ 570 PRINT: PRINT "MISSION ACCOMPLISHED IN ";R;" SHOTS."
38
+ 580 R=0: FOR I=1 TO 5: PRINT: NEXT I: PRINT "NEXT TARGET...": PRINT
39
+ 590 GOTO 220
40
+ 670 X2=X1-X: Y2=Y1-Y: Z2=Z1-Z: IF X2<0 THEN 730
41
+ 710 PRINT "SHOT IN FRONT OF TARGET";X2;"KILOMETERS.": GOTO 740
42
+ 730 PRINT "SHOT BEHIND TARGET";-X2;"KILOMETERS."
43
+ 740 IF Y2<0 THEN 770
44
+ 750 PRINT "SHOT TO LEFT OF TARGET";Y2;"KILOMETERS.": GOTO 780
45
+ 770 PRINT "SHOT TO RIGHT OF TARGET";-Y2;"KILOMETERS."
46
+ 780 IF Z2<0 THEN 810
47
+ 790 PRINT "SHOT ABOVE TARGET";Z2;"KILOMETERS.": GOTO 820
48
+ 810 PRINT "SHOT BELOW TARGET";-Z2;"KILOMETERS."
49
+ 820 PRINT "APPROX POSITION OF EXPLOSION: X=";X1;" Y=";Y1;" Z=";Z1
50
+ 830 PRINT " DISTANCE FROM TARGET =";D: PRINT: PRINT: PRINT: GOTO 345
51
+ 999 END
@@ -0,0 +1,39 @@
1
+ TARGET
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ YOU ARE THE WEAPONS OFFICER ON THE STARSHIP ENTERPRISE
7
+ AND THIS IS A TEST TO SEE HOW ACCURATE A SHOT YOU
8
+ ARE IN A THREE-DIMENSIONAL RANGE. YOU WILL BE TOLD
9
+ THE RADIAN OFFSET FOR THE X AND Z AXES, THE LOCATION
10
+ OF THE TARGET IN THREE DIMENSIONAL RECTANGULAR COORDINATES,
11
+ THE APPROXIMATE NUMBER OF DEGREES FROM THE X AND Z
12
+ AXES, AND THE APPROXIMATE DISTANCE TO THE TARGET.
13
+ YOU WILL THEN PROCEEED TO SHOOT AT THE TARGET UNTIL IT IS
14
+ DESTROYED!
15
+
16
+ GOOD LUCK!!
17
+
18
+
19
+ RADIANS FROM X AXIS = 3.448294 FROM Z AXIS = 4.493664
20
+ TARGET SIGHTED: APPROXIMATE COORDINATES: X= 56094.95 Y= 17764.95 Z=-13079.22
21
+ ESTIMATED DISTANCE: 60270
22
+
23
+ INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE? 0
24
+ Too few items, try again
25
+ ? 0,10,20
26
+
27
+ RADIANS FROM X AXIS = 0 FROM Z AXIS = 0.1745323
28
+ SHOT BEHIND TARGET 56091.48 KILOMETERS.
29
+ SHOT TO RIGHT OF TARGET 17764.95 KILOMETERS.
30
+ SHOT ABOVE TARGET 13098.91 KILOMETERS.
31
+ APPROX POSITION OF EXPLOSION: X= 3.47295 Y= 0 Z= 19.69616
32
+ DISTANCE FROM TARGET = 60277.93
33
+
34
+
35
+
36
+ ESTIMATED DISTANCE: 60276
37
+
38
+ INPUT ANGLE DEVIATION FROM X, DEVIATION FROM Z, DISTANCE?
39
+ Error on line 405: No more input
@@ -0,0 +1,69 @@
1
+ 10 PRINT TAB(30);"TIC TAC TOE"
2
+ 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
3
+ 30 PRINT:PRINT:PRINT
4
+ 50 REM
5
+ 100 REM THIS PROGRAM PLAYS TIC TAC TOE
6
+ 110 REM THE MACHINE GOES FIRST
7
+ 120 PRINT "THE GAME BOARD IS NUMBERED:": PRINT
8
+ 130 PRINT "1 2 3": PRINT "8 9 4": PRINT "7 6 5"
9
+ 140 PRINT
10
+ 150 REM
11
+ 160 REM
12
+ 170 REM
13
+ 180 DEF FNM(X)=X-8*INT((X-1)/8)
14
+ 190 REM
15
+ 200 REM MAIN PROGRAM
16
+ 210 PRINT
17
+ 220 PRINT
18
+ 230 A=9
19
+ 240 M=A
20
+ 250 GOSUB 650
21
+ 260 P=M
22
+ 270 B=FNM(P+1)
23
+ 280 M=B
24
+ 290 GOSUB 650
25
+ 300 Q=M
26
+ 310 IF Q=FNM(B+4) THEN 360
27
+ 320 C=FNM(B+4)
28
+ 330 M=C
29
+ 340 GOSUB 700
30
+ 350 GOTO 730
31
+ 360 C=FNM(B+2)
32
+ 370 M=C
33
+ 380 GOSUB 650
34
+ 390 R=M
35
+ 400 IF R=FNM(C+4) THEN 450
36
+ 410 D=FNM(C+4)
37
+ 420 M=D
38
+ 430 GOSUB 700
39
+ 440 GOTO 730
40
+ 450 IF P/2<>INT(P/2) THEN 500
41
+ 460 D=FNM(C+7)
42
+ 470 M=D
43
+ 480 GOSUB 700
44
+ 490 GOTO 730
45
+ 500 D=FNM(C+3)
46
+ 510 M=D
47
+ 520 GOSUB 650
48
+ 530 S=M
49
+ 540 IF S=FNM(D+4) THEN 590
50
+ 550 E=FNM(D+4)
51
+ 560 M=E
52
+ 570 GOSUB 700
53
+ 580 REM
54
+ 590 E=FNM(D+6)
55
+ 600 M=E
56
+ 610 GOSUB 700
57
+ 620 PRINT "THE GAME IS A DRAW."
58
+ 630 GOTO 210
59
+ 640 REM
60
+ 650 GOSUB 700
61
+ 660 PRINT "YOUR MOVE";
62
+ 670 INPUT M
63
+ 680 RETURN
64
+ 700 PRINT "COMPUTER MOVES";M
65
+ 710 RETURN
66
+ 720 REM
67
+ 730 PRINT "AND WINS ********"
68
+ 740 GOTO 210
69
+ 750 END
@@ -0,0 +1,10 @@
1
+ 7
2
+ 4
3
+ 6
4
+ 1
5
+ 1
6
+ 6
7
+ 8
8
+ 5
9
+ 9
10
+ 5
@@ -0,0 +1,49 @@
1
+ TIC TAC TOE
2
+ CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
+
4
+
5
+
6
+ THE GAME BOARD IS NUMBERED:
7
+
8
+ 1 2 3
9
+ 8 9 4
10
+ 7 6 5
11
+
12
+
13
+
14
+ COMPUTER MOVES 9
15
+ YOUR MOVE? 7
16
+ COMPUTER MOVES 8
17
+ YOUR MOVE? 4
18
+ COMPUTER MOVES 2
19
+ YOUR MOVE? 6
20
+ COMPUTER MOVES 5
21
+ YOUR MOVE? 1
22
+ COMPUTER MOVES 3
23
+ THE GAME IS A DRAW.
24
+
25
+
26
+ COMPUTER MOVES 9
27
+ YOUR MOVE? 1
28
+ COMPUTER MOVES 2
29
+ YOUR MOVE? 6
30
+ COMPUTER MOVES 4
31
+ YOUR MOVE? 8
32
+ COMPUTER MOVES 7
33
+ YOUR MOVE? 5
34
+ COMPUTER MOVES 3
35
+ COMPUTER MOVES 5
36
+ THE GAME IS A DRAW.
37
+
38
+
39
+ COMPUTER MOVES 9
40
+ YOUR MOVE? 9
41
+ COMPUTER MOVES 2
42
+ YOUR MOVE? 5
43
+ COMPUTER MOVES 6
44
+ AND WINS ********
45
+
46
+
47
+ COMPUTER MOVES 9
48
+ YOUR MOVE?
49
+ Error on line 670: No more input