basic101 0.2.0 → 1.0.1

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 (528) hide show
  1. checksums.yaml +5 -5
  2. data/Changelog.md +14 -1
  3. data/Gemfile +3 -12
  4. data/Gemfile.lock +42 -76
  5. data/README.md +1 -1
  6. data/Rakefile +0 -8
  7. data/VERSION +1 -1
  8. data/basic101.gemspec +64 -664
  9. data/lib/basic101/abs_function.rb +2 -0
  10. data/lib/basic101/argument_checker.rb +2 -0
  11. data/lib/basic101/arguments.rb +2 -0
  12. data/lib/basic101/array_reference.rb +2 -0
  13. data/lib/basic101/asc_function.rb +2 -0
  14. data/lib/basic101/basic_array.rb +2 -0
  15. data/lib/basic101/basic_comparisons.rb +2 -0
  16. data/lib/basic101/basic_float.rb +2 -0
  17. data/lib/basic101/basic_integer.rb +2 -0
  18. data/lib/basic101/basic_math.rb +2 -0
  19. data/lib/basic101/basic_numeric.rb +2 -0
  20. data/lib/basic101/basic_object.rb +2 -0
  21. data/lib/basic101/basic_string.rb +2 -0
  22. data/lib/basic101/binary_operation.rb +2 -0
  23. data/lib/basic101/binary_operations.rb +2 -0
  24. data/lib/basic101/built_in_functions.rb +2 -0
  25. data/lib/basic101/chr_function.rb +2 -0
  26. data/lib/basic101/cos_function.rb +2 -0
  27. data/lib/basic101/data_statement.rb +2 -0
  28. data/lib/basic101/define_function_statement.rb +2 -0
  29. data/lib/basic101/dim_statement.rb +2 -0
  30. data/lib/basic101/else_statement.rb +2 -0
  31. data/lib/basic101/end_statement.rb +2 -0
  32. data/lib/basic101/endif_statement.rb +2 -0
  33. data/lib/basic101/errors.rb +2 -0
  34. data/lib/basic101/exp_function.rb +2 -0
  35. data/lib/basic101/for_stack.rb +2 -0
  36. data/lib/basic101/for_statement.rb +2 -0
  37. data/lib/basic101/function.rb +2 -0
  38. data/lib/basic101/function_call.rb +2 -0
  39. data/lib/basic101/function_identifier.rb +2 -0
  40. data/lib/basic101/functions.rb +2 -0
  41. data/lib/basic101/gosub_statement.rb +2 -0
  42. data/lib/basic101/goto_statement.rb +2 -0
  43. data/lib/basic101/identifier.rb +2 -0
  44. data/lib/basic101/identity.rb +2 -0
  45. data/lib/basic101/if_statement.rb +3 -0
  46. data/lib/basic101/input.rb +2 -0
  47. data/lib/basic101/input_reader.rb +3 -1
  48. data/lib/basic101/input_statement.rb +2 -0
  49. data/lib/basic101/int_function.rb +2 -0
  50. data/lib/basic101/left_function.rb +2 -0
  51. data/lib/basic101/len_function.rb +2 -0
  52. data/lib/basic101/let_statement.rb +2 -0
  53. data/lib/basic101/line.rb +2 -0
  54. data/lib/basic101/log_function.rb +2 -0
  55. data/lib/basic101/main.rb +2 -0
  56. data/lib/basic101/mid_function.rb +2 -0
  57. data/lib/basic101/negate_operation.rb +2 -0
  58. data/lib/basic101/next_statement.rb +2 -0
  59. data/lib/basic101/not_operation.rb +2 -0
  60. data/lib/basic101/null_prompt_delimeter.rb +2 -0
  61. data/lib/basic101/null_transcript.rb +2 -0
  62. data/lib/basic101/numeric_identifier.rb +2 -0
  63. data/lib/basic101/on_goto_statement.rb +2 -0
  64. data/lib/basic101/output.rb +2 -0
  65. data/lib/basic101/parser/data_statement.rb +2 -0
  66. data/lib/basic101/parser/define_function_statement.rb +2 -0
  67. data/lib/basic101/parser/dim_statement.rb +2 -0
  68. data/lib/basic101/parser/end_statement.rb +2 -0
  69. data/lib/basic101/parser/expression.rb +2 -0
  70. data/lib/basic101/parser/for_statement.rb +2 -0
  71. data/lib/basic101/parser/function_call.rb +2 -0
  72. data/lib/basic101/parser/gosub_statement.rb +2 -0
  73. data/lib/basic101/parser/goto_statement.rb +2 -0
  74. data/lib/basic101/parser/identifier.rb +2 -0
  75. data/lib/basic101/parser/if_statement.rb +2 -0
  76. data/lib/basic101/parser/input_statement.rb +2 -0
  77. data/lib/basic101/parser/let_statement.rb +2 -0
  78. data/lib/basic101/parser/next_statement.rb +2 -0
  79. data/lib/basic101/parser/numeric.rb +2 -0
  80. data/lib/basic101/parser/on_goto_statement.rb +2 -0
  81. data/lib/basic101/parser/print_statement.rb +2 -0
  82. data/lib/basic101/parser/program.rb +2 -0
  83. data/lib/basic101/parser/randomize_statement.rb +2 -0
  84. data/lib/basic101/parser/read_statement.rb +2 -0
  85. data/lib/basic101/parser/reference.rb +2 -0
  86. data/lib/basic101/parser/remark_statement.rb +2 -0
  87. data/lib/basic101/parser/restore_statement.rb +2 -0
  88. data/lib/basic101/parser/return_statement.rb +2 -0
  89. data/lib/basic101/parser/space.rb +2 -0
  90. data/lib/basic101/parser/statements.rb +2 -0
  91. data/lib/basic101/parser/stop_statement.rb +2 -0
  92. data/lib/basic101/parser/string.rb +2 -0
  93. data/lib/basic101/parser.rb +2 -0
  94. data/lib/basic101/power_operation.rb +2 -0
  95. data/lib/basic101/print_comma.rb +2 -0
  96. data/lib/basic101/print_semicolon.rb +2 -0
  97. data/lib/basic101/print_statement.rb +2 -0
  98. data/lib/basic101/program.rb +2 -0
  99. data/lib/basic101/program_counter.rb +2 -0
  100. data/lib/basic101/prompt_delimeter.rb +2 -0
  101. data/lib/basic101/randomize_statement.rb +2 -0
  102. data/lib/basic101/read_statement.rb +2 -0
  103. data/lib/basic101/reference.rb +2 -0
  104. data/lib/basic101/release.rb +13 -0
  105. data/lib/basic101/remark_statement.rb +2 -0
  106. data/lib/basic101/restore_statement.rb +2 -0
  107. data/lib/basic101/return_statement.rb +2 -0
  108. data/lib/basic101/right_function.rb +2 -0
  109. data/lib/basic101/rnd_function.rb +2 -0
  110. data/lib/basic101/runtime.rb +2 -0
  111. data/lib/basic101/scalar_reference.rb +2 -0
  112. data/lib/basic101/sgn_function.rb +2 -0
  113. data/lib/basic101/sin_function.rb +2 -0
  114. data/lib/basic101/sqr_function.rb +2 -0
  115. data/lib/basic101/statement.rb +2 -0
  116. data/lib/basic101/stop_statement.rb +2 -0
  117. data/lib/basic101/str_function.rb +2 -0
  118. data/lib/basic101/string_identifier.rb +2 -0
  119. data/lib/basic101/tab.rb +2 -0
  120. data/lib/basic101/tab_function.rb +2 -0
  121. data/lib/basic101/tan_function.rb +2 -0
  122. data/lib/basic101/transcript.rb +2 -0
  123. data/lib/basic101/transform.rb +2 -0
  124. data/lib/basic101/user_defined_function.rb +2 -0
  125. data/lib/basic101/val_function.rb +2 -0
  126. data/lib/basic101.rb +3 -0
  127. metadata +26 -445
  128. data/.rspec +0 -2
  129. data/.simplecov +0 -1
  130. data/.travis.yml +0 -4
  131. data/.yardopts +0 -7
  132. data/rake_tasks/default.rake +0 -1
  133. data/rake_tasks/integration.rake +0 -8
  134. data/rake_tasks/jeweler.rake +0 -28
  135. data/rake_tasks/spec.rake +0 -8
  136. data/rake_tasks/test.rake +0 -2
  137. data/rake_tasks/yard.rake +0 -3
  138. data/test/integration/arguments.rb +0 -25
  139. data/test/integration/errors.rb +0 -7
  140. data/test/integration/integration_test.rb +0 -28
  141. data/test/integration/main.rb +0 -49
  142. data/test/integration/output_file.rb +0 -40
  143. data/test/integration/test.rb +0 -135
  144. data/test/integration/tests/basic_computer_games/23-match.input +0 -1
  145. data/test/integration/tests/basic_computer_games/23-match.output +0 -29
  146. data/test/integration/tests/basic_computer_games/3dplot.input +0 -0
  147. data/test/integration/tests/basic_computer_games/3dplot.output +0 -47
  148. data/test/integration/tests/basic_computer_games/aceyducy.input +0 -8
  149. data/test/integration/tests/basic_computer_games/aceyducy.output +0 -78
  150. data/test/integration/tests/basic_computer_games/amazing.input +0 -1
  151. data/test/integration/tests/basic_computer_games/amazing.output +0 -32
  152. data/test/integration/tests/basic_computer_games/animal.input +0 -17
  153. data/test/integration/tests/basic_computer_games/animal.output +0 -38
  154. data/test/integration/tests/basic_computer_games/awari.input +0 -11
  155. data/test/integration/tests/basic_computer_games/awari.output +0 -117
  156. data/test/integration/tests/basic_computer_games/bagels.input +0 -12
  157. data/test/integration/tests/basic_computer_games/bagels.output +0 -42
  158. data/test/integration/tests/basic_computer_games/banner.input +0 -6
  159. data/test/integration/tests/basic_computer_games/banner.output +0 -135
  160. data/test/integration/tests/basic_computer_games/basketbl.input +0 -46
  161. data/test/integration/tests/basic_computer_games/basketbl.output +0 -509
  162. data/test/integration/tests/basic_computer_games/batnum.input +0 -14
  163. data/test/integration/tests/basic_computer_games/batnum.output +0 -67
  164. data/test/integration/tests/basic_computer_games/battle.input +0 -21
  165. data/test/integration/tests/basic_computer_games/battle.output +0 -118
  166. data/test/integration/tests/basic_computer_games/blackjck.input +0 -26
  167. data/test/integration/tests/basic_computer_games/blackjck.output +0 -144
  168. data/test/integration/tests/basic_computer_games/bombard.input +0 -20
  169. data/test/integration/tests/basic_computer_games/bombard.output +0 -175
  170. data/test/integration/tests/basic_computer_games/bounce.input +0 -0
  171. data/test/integration/tests/basic_computer_games/bounce.output +0 -15
  172. data/test/integration/tests/basic_computer_games/bowling.input +0 -23
  173. data/test/integration/tests/basic_computer_games/bowling.output +0 -229
  174. data/test/integration/tests/basic_computer_games/boxing.input +0 -8
  175. data/test/integration/tests/basic_computer_games/boxing.output +0 -47
  176. data/test/integration/tests/basic_computer_games/bug.input +0 -17
  177. data/test/integration/tests/basic_computer_games/bug.output +0 -847
  178. data/test/integration/tests/basic_computer_games/bullfght.input +0 -4
  179. data/test/integration/tests/basic_computer_games/bullfght.output +0 -60
  180. data/test/integration/tests/basic_computer_games/bullseye.input +0 -10
  181. data/test/integration/tests/basic_computer_games/bullseye.output +0 -79
  182. data/test/integration/tests/basic_computer_games/bunny.input +0 -0
  183. data/test/integration/tests/basic_computer_games/bunny.output +0 -67
  184. data/test/integration/tests/basic_computer_games/buzzword.input +0 -4
  185. data/test/integration/tests/basic_computer_games/buzzword.output +0 -25
  186. data/test/integration/tests/basic_computer_games/calendar.input +0 -0
  187. data/test/integration/tests/basic_computer_games/calendar.output +0 -213
  188. data/test/integration/tests/basic_computer_games/change.input +0 -4
  189. data/test/integration/tests/basic_computer_games/change.output +0 -28
  190. data/test/integration/tests/basic_computer_games/checkers.input +0 -74
  191. data/test/integration/tests/basic_computer_games/checkers.output +0 -673
  192. data/test/integration/tests/basic_computer_games/chemist.input +0 -11
  193. data/test/integration/tests/basic_computer_games/chemist.output +0 -54
  194. data/test/integration/tests/basic_computer_games/chief.input +0 -5
  195. data/test/integration/tests/basic_computer_games/chief.output +0 -19
  196. data/test/integration/tests/basic_computer_games/chomp.input +0 -15
  197. data/test/integration/tests/basic_computer_games/chomp.output +0 -159
  198. data/test/integration/tests/basic_computer_games/combat.input +0 -7
  199. data/test/integration/tests/basic_computer_games/combat.output +0 -33
  200. data/test/integration/tests/basic_computer_games/craps.input +0 -9
  201. data/test/integration/tests/basic_computer_games/craps.output +0 -51
  202. data/test/integration/tests/basic_computer_games/cube.input +0 -25
  203. data/test/integration/tests/basic_computer_games/cube.output +0 -72
  204. data/test/integration/tests/basic_computer_games/depthchg.input +0 -16
  205. data/test/integration/tests/basic_computer_games/depthchg.output +0 -83
  206. data/test/integration/tests/basic_computer_games/diamond.input +0 -1
  207. data/test/integration/tests/basic_computer_games/diamond.output +0 -65
  208. data/test/integration/tests/basic_computer_games/dice.input +0 -4
  209. data/test/integration/tests/basic_computer_games/dice.output +0 -46
  210. data/test/integration/tests/basic_computer_games/digits.input +0 -5
  211. data/test/integration/tests/basic_computer_games/digits.output +0 -70
  212. data/test/integration/tests/basic_computer_games/evenwin1.input +0 -13
  213. data/test/integration/tests/basic_computer_games/evenwin1.output +0 -116
  214. data/test/integration/tests/basic_computer_games/evenwin2.input +0 -14
  215. data/test/integration/tests/basic_computer_games/evenwin2.output +0 -56
  216. data/test/integration/tests/basic_computer_games/flipflop.input +0 -8
  217. data/test/integration/tests/basic_computer_games/flipflop.output +0 -45
  218. data/test/integration/tests/basic_computer_games/footbal1.input +0 -13
  219. data/test/integration/tests/basic_computer_games/footbal1.output +0 -315
  220. data/test/integration/tests/basic_computer_games/footbal2.input +0 -23
  221. data/test/integration/tests/basic_computer_games/footbal2.output +0 -318
  222. data/test/integration/tests/basic_computer_games/furtradr.input +0 -20
  223. data/test/integration/tests/basic_computer_games/furtradr.output +0 -133
  224. data/test/integration/tests/basic_computer_games/golf.input +0 -11
  225. data/test/integration/tests/basic_computer_games/golf.output +0 -69
  226. data/test/integration/tests/basic_computer_games/gomoko.input +0 -6
  227. data/test/integration/tests/basic_computer_games/gomoko.output +0 -66
  228. data/test/integration/tests/basic_computer_games/guess.input +0 -8
  229. data/test/integration/tests/basic_computer_games/guess.output +0 -37
  230. data/test/integration/tests/basic_computer_games/gunner.input +0 -18
  231. data/test/integration/tests/basic_computer_games/gunner.output +0 -91
  232. data/test/integration/tests/basic_computer_games/hamurabi.input +0 -7
  233. data/test/integration/tests/basic_computer_games/hamurabi.output +0 -51
  234. data/test/integration/tests/basic_computer_games/hangman.input +0 -69
  235. data/test/integration/tests/basic_computer_games/hangman.output +0 -889
  236. data/test/integration/tests/basic_computer_games/hello.input +0 -7
  237. data/test/integration/tests/basic_computer_games/hello.output +0 -46
  238. data/test/integration/tests/basic_computer_games/hexapawn.input +0 -38
  239. data/test/integration/tests/basic_computer_games/hexapawn.output +0 -521
  240. data/test/integration/tests/basic_computer_games/hi-q.input +0 -14
  241. data/test/integration/tests/basic_computer_games/hi-q.output +0 -115
  242. data/test/integration/tests/basic_computer_games/hilo.input +0 -20
  243. data/test/integration/tests/basic_computer_games/hilo.output +0 -76
  244. data/test/integration/tests/basic_computer_games/hockey.input +0 -59
  245. data/test/integration/tests/basic_computer_games/hockey.output +0 -243
  246. data/test/integration/tests/basic_computer_games/horsrace.input +0 -11
  247. data/test/integration/tests/basic_computer_games/horsrace.output +0 -517
  248. data/test/integration/tests/basic_computer_games/hurkle.input +0 -16
  249. data/test/integration/tests/basic_computer_games/hurkle.output +0 -81
  250. data/test/integration/tests/basic_computer_games/kinema.input +0 -9
  251. data/test/integration/tests/basic_computer_games/kinema.output +0 -64
  252. data/test/integration/tests/basic_computer_games/king.input +0 -7
  253. data/test/integration/tests/basic_computer_games/king.output +0 -57
  254. data/test/integration/tests/basic_computer_games/lem.input +0 -4
  255. data/test/integration/tests/basic_computer_games/lem.output +0 -68
  256. data/test/integration/tests/basic_computer_games/letter.input +0 -24
  257. data/test/integration/tests/basic_computer_games/letter.output +0 -123
  258. data/test/integration/tests/basic_computer_games/life.input +0 -4
  259. data/test/integration/tests/basic_computer_games/life.options +0 -1
  260. data/test/integration/tests/basic_computer_games/life.output +0 -200
  261. data/test/integration/tests/basic_computer_games/life2.input +0 -17
  262. data/test/integration/tests/basic_computer_games/life2.output +0 -113
  263. data/test/integration/tests/basic_computer_games/litquiz.input +0 -4
  264. data/test/integration/tests/basic_computer_games/litquiz.output +0 -36
  265. data/test/integration/tests/basic_computer_games/love.input +0 -1
  266. data/test/integration/tests/basic_computer_games/love.output +0 -67
  267. data/test/integration/tests/basic_computer_games/lunar.input +0 -87
  268. data/test/integration/tests/basic_computer_games/lunar.output +0 -195
  269. data/test/integration/tests/basic_computer_games/mastrmnd.input +0 -18
  270. data/test/integration/tests/basic_computer_games/mastrmnd.output +0 -67
  271. data/test/integration/tests/basic_computer_games/mathdice.input +0 -4
  272. data/test/integration/tests/basic_computer_games/mathdice.output +0 -86
  273. data/test/integration/tests/basic_computer_games/mugwump.input +0 -16
  274. data/test/integration/tests/basic_computer_games/mugwump.output +0 -139
  275. data/test/integration/tests/basic_computer_games/name.input +0 -2
  276. data/test/integration/tests/basic_computer_games/name.output +0 -22
  277. data/test/integration/tests/basic_computer_games/nicoma.input +0 -8
  278. data/test/integration/tests/basic_computer_games/nicoma.output +0 -36
  279. data/test/integration/tests/basic_computer_games/nim.input +0 -8
  280. data/test/integration/tests/basic_computer_games/nim.output +0 -30
  281. data/test/integration/tests/basic_computer_games/number.input +0 -19
  282. data/test/integration/tests/basic_computer_games/number.output +0 -73
  283. data/test/integration/tests/basic_computer_games/onecheck.input +0 -6
  284. data/test/integration/tests/basic_computer_games/onecheck.output +0 -77
  285. data/test/integration/tests/basic_computer_games/orbit.input +0 -10
  286. data/test/integration/tests/basic_computer_games/orbit.output +0 -113
  287. data/test/integration/tests/basic_computer_games/pizza.input +0 -10
  288. data/test/integration/tests/basic_computer_games/pizza.output +0 -93
  289. data/test/integration/tests/basic_computer_games/poetry.input +0 -0
  290. data/test/integration/tests/basic_computer_games/poetry.options +0 -1
  291. data/test/integration/tests/basic_computer_games/poetry.output +0 -50
  292. data/test/integration/tests/basic_computer_games/poker.input +0 -34
  293. data/test/integration/tests/basic_computer_games/poker.output +0 -197
  294. data/test/integration/tests/basic_computer_games/queen.input +0 -10
  295. data/test/integration/tests/basic_computer_games/queen.output +0 -133
  296. data/test/integration/tests/basic_computer_games/reverse.input +0 -12
  297. data/test/integration/tests/basic_computer_games/reverse.output +0 -79
  298. data/test/integration/tests/basic_computer_games/rocket.input +0 -42
  299. data/test/integration/tests/basic_computer_games/rocket.output +0 -149
  300. data/test/integration/tests/basic_computer_games/rocksp.input +0 -9
  301. data/test/integration/tests/basic_computer_games/rocksp.output +0 -69
  302. data/test/integration/tests/basic_computer_games/roulette.input +0 -9
  303. data/test/integration/tests/basic_computer_games/roulette.output +0 -98
  304. data/test/integration/tests/basic_computer_games/rusrou.input +0 -9
  305. data/test/integration/tests/basic_computer_games/rusrou.output +0 -50
  306. data/test/integration/tests/basic_computer_games/salvo.input +0 -21
  307. data/test/integration/tests/basic_computer_games/salvo.output +0 -49
  308. data/test/integration/tests/basic_computer_games/sinewave.input +0 -0
  309. data/test/integration/tests/basic_computer_games/sinewave.output +0 -168
  310. data/test/integration/tests/basic_computer_games/slalom.input +0 -20
  311. data/test/integration/tests/basic_computer_games/slalom.output +0 -122
  312. data/test/integration/tests/basic_computer_games/slots.input +0 -2
  313. data/test/integration/tests/basic_computer_games/slots.output +0 -20
  314. data/test/integration/tests/basic_computer_games/splat.input +0 -9
  315. data/test/integration/tests/basic_computer_games/splat.output +0 -61
  316. data/test/integration/tests/basic_computer_games/stars.input +0 -15
  317. data/test/integration/tests/basic_computer_games/stars.output +0 -70
  318. data/test/integration/tests/basic_computer_games/stock.input +0 -30
  319. data/test/integration/tests/basic_computer_games/stock.output +0 -156
  320. data/test/integration/tests/basic_computer_games/superstartrek.input +0 -21
  321. data/test/integration/tests/basic_computer_games/superstartrek.output +0 -151
  322. data/test/integration/tests/basic_computer_games/superstartrekins.input +0 -1
  323. data/test/integration/tests/basic_computer_games/superstartrekins.output +0 -134
  324. data/test/integration/tests/basic_computer_games/synonym.input +0 -13
  325. data/test/integration/tests/basic_computer_games/synonym.output +0 -57
  326. data/test/integration/tests/basic_computer_games/target.input +0 -2
  327. data/test/integration/tests/basic_computer_games/target.output +0 -39
  328. data/test/integration/tests/basic_computer_games/tictac1.input +0 -10
  329. data/test/integration/tests/basic_computer_games/tictac1.output +0 -49
  330. data/test/integration/tests/basic_computer_games/tictac2.input +0 -6
  331. data/test/integration/tests/basic_computer_games/tictac2.output +0 -104
  332. data/test/integration/tests/basic_computer_games/towers.input +0 -9
  333. data/test/integration/tests/basic_computer_games/towers.output +0 -70
  334. data/test/integration/tests/basic_computer_games/train.input +0 -4
  335. data/test/integration/tests/basic_computer_games/train.output +0 -23
  336. data/test/integration/tests/basic_computer_games/trap.input +0 -7
  337. data/test/integration/tests/basic_computer_games/trap.output +0 -40
  338. data/test/integration/tests/basic_computer_games/war.input +0 -11
  339. data/test/integration/tests/basic_computer_games/war.output +0 -54
  340. data/test/integration/tests/basic_computer_games/weekday.input +0 -2
  341. data/test/integration/tests/basic_computer_games/weekday.output +0 -28
  342. data/test/integration/tests/basic_computer_games/word.input +0 -6
  343. data/test/integration/tests/basic_computer_games/word.output +0 -0
  344. data/test/integration/tests/fast/abs.bas +0 -5
  345. data/test/integration/tests/fast/abs.input +0 -0
  346. data/test/integration/tests/fast/abs.output +0 -5
  347. data/test/integration/tests/fast/add.bas +0 -5
  348. data/test/integration/tests/fast/add.input +0 -0
  349. data/test/integration/tests/fast/add.output +0 -5
  350. data/test/integration/tests/fast/and.bas +0 -5
  351. data/test/integration/tests/fast/and.input +0 -0
  352. data/test/integration/tests/fast/and.output +0 -5
  353. data/test/integration/tests/fast/array.bas +0 -11
  354. data/test/integration/tests/fast/array.input +0 -0
  355. data/test/integration/tests/fast/array.output +0 -6
  356. data/test/integration/tests/fast/asc.bas +0 -1
  357. data/test/integration/tests/fast/asc.input +0 -0
  358. data/test/integration/tests/fast/asc.output +0 -1
  359. data/test/integration/tests/fast/chr.bas +0 -1
  360. data/test/integration/tests/fast/chr.input +0 -0
  361. data/test/integration/tests/fast/chr.output +0 -1
  362. data/test/integration/tests/fast/cos.bas +0 -1
  363. data/test/integration/tests/fast/cos.input +0 -0
  364. data/test/integration/tests/fast/cos.output +0 -1
  365. data/test/integration/tests/fast/def_fn.bas +0 -9
  366. data/test/integration/tests/fast/def_fn.input +0 -0
  367. data/test/integration/tests/fast/def_fn.output +0 -5
  368. data/test/integration/tests/fast/divide.bas +0 -5
  369. data/test/integration/tests/fast/divide.input +0 -0
  370. data/test/integration/tests/fast/divide.output +0 -5
  371. data/test/integration/tests/fast/end.bas +0 -3
  372. data/test/integration/tests/fast/end.input +0 -0
  373. data/test/integration/tests/fast/end.output +0 -1
  374. data/test/integration/tests/fast/eq.bas +0 -3
  375. data/test/integration/tests/fast/eq.input +0 -0
  376. data/test/integration/tests/fast/eq.output +0 -3
  377. data/test/integration/tests/fast/exp.bas +0 -2
  378. data/test/integration/tests/fast/exp.input +0 -0
  379. data/test/integration/tests/fast/exp.output +0 -2
  380. data/test/integration/tests/fast/float.bas +0 -3
  381. data/test/integration/tests/fast/float.input +0 -0
  382. data/test/integration/tests/fast/float.output +0 -2
  383. data/test/integration/tests/fast/for_next.bas +0 -61
  384. data/test/integration/tests/fast/for_next.input +0 -0
  385. data/test/integration/tests/fast/for_next.output +0 -46
  386. data/test/integration/tests/fast/ge.bas +0 -3
  387. data/test/integration/tests/fast/ge.input +0 -0
  388. data/test/integration/tests/fast/ge.output +0 -3
  389. data/test/integration/tests/fast/gosub_return.bas +0 -10
  390. data/test/integration/tests/fast/gosub_return.input +0 -0
  391. data/test/integration/tests/fast/gosub_return.output +0 -4
  392. data/test/integration/tests/fast/goto.bas +0 -3
  393. data/test/integration/tests/fast/goto.input +0 -0
  394. data/test/integration/tests/fast/goto.output +0 -1
  395. data/test/integration/tests/fast/gt.bas +0 -3
  396. data/test/integration/tests/fast/gt.input +0 -0
  397. data/test/integration/tests/fast/gt.output +0 -3
  398. data/test/integration/tests/fast/if.bas +0 -25
  399. data/test/integration/tests/fast/if.input +0 -0
  400. data/test/integration/tests/fast/if.output +0 -8
  401. data/test/integration/tests/fast/input.bas +0 -24
  402. data/test/integration/tests/fast/input.input +0 -10
  403. data/test/integration/tests/fast/input.output +0 -28
  404. data/test/integration/tests/fast/int.bas +0 -5
  405. data/test/integration/tests/fast/int.input +0 -0
  406. data/test/integration/tests/fast/int.output +0 -5
  407. data/test/integration/tests/fast/integer_plus_string.bas +0 -1
  408. data/test/integration/tests/fast/integer_plus_string.input +0 -0
  409. data/test/integration/tests/fast/integer_plus_string.output +0 -1
  410. data/test/integration/tests/fast/invalid_argument.bas +0 -1
  411. data/test/integration/tests/fast/invalid_argument.input +0 -0
  412. data/test/integration/tests/fast/invalid_argument.output +0 -1
  413. data/test/integration/tests/fast/le.bas +0 -3
  414. data/test/integration/tests/fast/le.input +0 -0
  415. data/test/integration/tests/fast/le.output +0 -3
  416. data/test/integration/tests/fast/left.bas +0 -1
  417. data/test/integration/tests/fast/left.input +0 -0
  418. data/test/integration/tests/fast/left.output +0 -1
  419. data/test/integration/tests/fast/len.bas +0 -2
  420. data/test/integration/tests/fast/len.input +0 -0
  421. data/test/integration/tests/fast/len.output +0 -2
  422. data/test/integration/tests/fast/let.bas +0 -6
  423. data/test/integration/tests/fast/let.input +0 -0
  424. data/test/integration/tests/fast/let.output +0 -4
  425. data/test/integration/tests/fast/log.bas +0 -1
  426. data/test/integration/tests/fast/log.input +0 -0
  427. data/test/integration/tests/fast/log.output +0 -1
  428. data/test/integration/tests/fast/lt.bas +0 -3
  429. data/test/integration/tests/fast/lt.input +0 -0
  430. data/test/integration/tests/fast/lt.output +0 -3
  431. data/test/integration/tests/fast/math.output +0 -0
  432. data/test/integration/tests/fast/mid.bas +0 -2
  433. data/test/integration/tests/fast/mid.input +0 -0
  434. data/test/integration/tests/fast/mid.output +0 -2
  435. data/test/integration/tests/fast/multiply.bas +0 -5
  436. data/test/integration/tests/fast/multiply.input +0 -0
  437. data/test/integration/tests/fast/multiply.output +0 -5
  438. data/test/integration/tests/fast/ne.bas +0 -3
  439. data/test/integration/tests/fast/ne.input +0 -0
  440. data/test/integration/tests/fast/ne.output +0 -3
  441. data/test/integration/tests/fast/negate.bas +0 -4
  442. data/test/integration/tests/fast/negate.input +0 -0
  443. data/test/integration/tests/fast/negate.output +0 -3
  444. data/test/integration/tests/fast/not.bas +0 -4
  445. data/test/integration/tests/fast/not.input +0 -0
  446. data/test/integration/tests/fast/not.output +0 -4
  447. data/test/integration/tests/fast/on_goto.bas +0 -6
  448. data/test/integration/tests/fast/on_goto.input +0 -0
  449. data/test/integration/tests/fast/on_goto.output +0 -2
  450. data/test/integration/tests/fast/or.bas +0 -5
  451. data/test/integration/tests/fast/or.input +0 -0
  452. data/test/integration/tests/fast/or.output +0 -5
  453. data/test/integration/tests/fast/parentheses.bas +0 -1
  454. data/test/integration/tests/fast/parentheses.input +0 -0
  455. data/test/integration/tests/fast/parentheses.output +0 -1
  456. data/test/integration/tests/fast/power.bas +0 -4
  457. data/test/integration/tests/fast/power.input +0 -0
  458. data/test/integration/tests/fast/power.output +0 -4
  459. data/test/integration/tests/fast/print.bas +0 -6
  460. data/test/integration/tests/fast/print.input +0 -0
  461. data/test/integration/tests/fast/print.output +0 -4
  462. data/test/integration/tests/fast/read_data.bas +0 -15
  463. data/test/integration/tests/fast/read_data.input +0 -0
  464. data/test/integration/tests/fast/read_data.output +0 -4
  465. data/test/integration/tests/fast/rem.bas +0 -1
  466. data/test/integration/tests/fast/rem.input +0 -0
  467. data/test/integration/tests/fast/rem.output +0 -0
  468. data/test/integration/tests/fast/right.bas +0 -1
  469. data/test/integration/tests/fast/right.input +0 -0
  470. data/test/integration/tests/fast/right.output +0 -1
  471. data/test/integration/tests/fast/rnd.bas +0 -5
  472. data/test/integration/tests/fast/rnd.input +0 -0
  473. data/test/integration/tests/fast/rnd.output +0 -5
  474. data/test/integration/tests/fast/sgn.bas +0 -5
  475. data/test/integration/tests/fast/sgn.input +0 -0
  476. data/test/integration/tests/fast/sgn.output +0 -5
  477. data/test/integration/tests/fast/sin.bas +0 -1
  478. data/test/integration/tests/fast/sin.input +0 -0
  479. data/test/integration/tests/fast/sin.output +0 -1
  480. data/test/integration/tests/fast/sqr.bas +0 -2
  481. data/test/integration/tests/fast/sqr.input +0 -0
  482. data/test/integration/tests/fast/sqr.output +0 -2
  483. data/test/integration/tests/fast/stop.bas +0 -3
  484. data/test/integration/tests/fast/stop.input +0 -0
  485. data/test/integration/tests/fast/stop.output +0 -2
  486. data/test/integration/tests/fast/str.bas +0 -3
  487. data/test/integration/tests/fast/str.input +0 -0
  488. data/test/integration/tests/fast/str.output +0 -3
  489. data/test/integration/tests/fast/string_addition.bas +0 -1
  490. data/test/integration/tests/fast/string_addition.input +0 -0
  491. data/test/integration/tests/fast/string_addition.output +0 -1
  492. data/test/integration/tests/fast/string_comparisons.bas +0 -7
  493. data/test/integration/tests/fast/string_comparisons.input +0 -0
  494. data/test/integration/tests/fast/string_comparisons.output +0 -4
  495. data/test/integration/tests/fast/string_plus_integer.bas +0 -1
  496. data/test/integration/tests/fast/string_plus_integer.input +0 -0
  497. data/test/integration/tests/fast/string_plus_integer.output +0 -1
  498. data/test/integration/tests/fast/subtract.bas +0 -5
  499. data/test/integration/tests/fast/subtract.input +0 -0
  500. data/test/integration/tests/fast/subtract.output +0 -5
  501. data/test/integration/tests/fast/tab.bas +0 -4
  502. data/test/integration/tests/fast/tab.input +0 -0
  503. data/test/integration/tests/fast/tab.output +0 -3
  504. data/test/integration/tests/fast/tan.bas +0 -1
  505. data/test/integration/tests/fast/tan.input +0 -0
  506. data/test/integration/tests/fast/tan.output +0 -1
  507. data/test/integration/tests/fast/val.bas +0 -3
  508. data/test/integration/tests/fast/val.input +0 -0
  509. data/test/integration/tests/fast/val.output +0 -3
  510. data/test/spec/argument_checker_spec.rb +0 -128
  511. data/test/spec/basic_array_spec.rb +0 -100
  512. data/test/spec/basic_float_spec.rb +0 -168
  513. data/test/spec/basic_integer_spec.rb +0 -270
  514. data/test/spec/basic_numeric_spec.rb +0 -16
  515. data/test/spec/basic_object_spec.rb +0 -22
  516. data/test/spec/basic_string_spec.rb +0 -259
  517. data/test/spec/for_stack_spec.rb +0 -70
  518. data/test/spec/input_reader_spec.rb +0 -143
  519. data/test/spec/input_spec.rb +0 -102
  520. data/test/spec/line_spec.rb +0 -18
  521. data/test/spec/output_spec.rb +0 -153
  522. data/test/spec/parser_spec.rb +0 -562
  523. data/test/spec/program_spec.rb +0 -45
  524. data/test/spec/spec_helper.rb +0 -16
  525. data/test/spec/support/basic_numeric_helpers.rb +0 -327
  526. data/test/spec/support/basic_object_helpers.rb +0 -22
  527. data/test/spec/transcript_spec.rb +0 -37
  528. data/test/spec/transform_spec.rb +0 -513
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format progress
data/.simplecov DELETED
@@ -1 +0,0 @@
1
- SimpleCov.start
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "2.0"
4
- - "2.1"
data/.yardopts DELETED
@@ -1,7 +0,0 @@
1
- -o doc-api
2
- --exclude '[~#]$'
3
- --readme README.md
4
- --files LICENSE.md
5
- --files Changelog.md
6
- --files doc/*.md
7
- lib/**/*.rb
@@ -1 +0,0 @@
1
- task :default => [:test]
@@ -1,8 +0,0 @@
1
- desc 'Run integration tests'
2
- namespace :test do
3
- task :integration do
4
- command = File.expand_path('../test/integration/integration_test.rb',
5
- __dir__)
6
- sh command
7
- end
8
- end
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'jeweler'
4
-
5
- README_PATH = File.expand_path('../README.md', File.dirname(__FILE__))
6
-
7
- def extract_description_from_readme
8
- readme = File.open(README_PATH, 'r', &:read)
9
- s = readme[/^# basic101.*\n+((?:.*\n)+?)\n*##/i, 1]
10
- unless s
11
- raise 'Unable to extract description from readme'
12
- end
13
- s.gsub(/\n/, ' ').strip
14
- end
15
-
16
- Jeweler::Tasks.new do |gem|
17
- # gem is a Gem::Specification... see
18
- # http://docs.rubygems.org/read/chapter/20 for more options
19
- gem.name = 'basic101'
20
- gem.homepage = 'http://github.com/wconrad/basic101'
21
- gem.license = 'MIT'
22
- gem.summary = %Q{Circa 1980 basic intepreter}
23
- gem.description = extract_description_from_readme
24
- gem.email = 'wconrad@yagni.com'
25
- gem.authors = ['Wayne Conrad']
26
- # dependencies defined in Gemfile
27
- end
28
- Jeweler::RubygemsDotOrgTasks.new
data/rake_tasks/spec.rake DELETED
@@ -1,8 +0,0 @@
1
- require 'rspec/core/rake_task'
2
-
3
- RSpec::Core::RakeTask.new 'test:spec' do |t|
4
- t.pattern = File.join('test', t.pattern)
5
- t.verbose = false
6
- end
7
-
8
- task :spec => ['test:spec']
data/rake_tasks/test.rake DELETED
@@ -1,2 +0,0 @@
1
- desc 'Run all tests'
2
- task :test => ['test:spec', 'test:integration']
data/rake_tasks/yard.rake DELETED
@@ -1,3 +0,0 @@
1
- require 'yard'
2
- YARD::Rake::YardocTask.new do |t|
3
- end
@@ -1,25 +0,0 @@
1
- module Integration
2
-
3
- class Arguments
4
-
5
- attr_reader :patterns
6
- attr_reader :train
7
-
8
- def initialize(argv)
9
- @train = false
10
- @patterns = []
11
- OptionParser.new do |opts|
12
- opts.banner << " [patterns]"
13
- opts.on('-t', '--train', 'Train tests') do |v|
14
- @train = v
15
- end
16
- end.parse!(argv)
17
- @patterns = argv
18
- rescue OptionParser::ParseError => e
19
- $stderr.puts e
20
- exit 1
21
- end
22
-
23
- end
24
-
25
- end
@@ -1,7 +0,0 @@
1
- module Integration
2
-
3
- class Error < StandardError ; end
4
-
5
- class MaxOutputLines < Error ; end
6
-
7
- end
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Must come first
4
- require 'simplecov'
5
- SimpleCov.command_name 'Integration'
6
-
7
- lib_path = File.expand_path('../../lib', __dir__)
8
- unless $LOAD_PATH.include?(lib_path)
9
- $:.unshift lib_path
10
- end
11
-
12
- require 'fileutils'
13
- require 'forwardable'
14
- require 'optparse'
15
- require 'pathname'
16
- require 'stringio'
17
- require 'tempfile'
18
- require 'yaml'
19
-
20
- require 'basic101'
21
-
22
- require_relative 'arguments'
23
- require_relative 'errors'
24
- require_relative 'main'
25
- require_relative 'output_file'
26
- require_relative 'test'
27
-
28
- Integration::Main.new(ARGV).run if $0 == __FILE__
@@ -1,49 +0,0 @@
1
- module Integration
2
-
3
- class Main
4
-
5
- def initialize(argv)
6
- @args = Arguments.new(argv)
7
- end
8
-
9
- def run
10
- tests = load_tests
11
- tests.each do |test|
12
- test.run
13
- test.print_progress
14
- end
15
- puts
16
- if @args.train
17
- tests.each(&:train)
18
- else
19
- tests.each(&:print_failure)
20
- end
21
- exit exitcode(tests)
22
- end
23
-
24
- private
25
-
26
- def load_tests
27
- glob = File.join(test_dir, '**', '*' + Test::BASIC_EXTENSION)
28
- Dir[glob].map do |basic_path|
29
- Test.new(basic_path)
30
- end.select do |test|
31
- test.matches_patterns?(@args.patterns)
32
- end
33
- end
34
-
35
- def test_dir
36
- File.expand_path('tests', __dir__)
37
- end
38
-
39
- def exitcode(tests)
40
- if tests.all?(&:passed?)
41
- 0
42
- else
43
- 1
44
- end
45
- end
46
-
47
- end
48
-
49
- end
@@ -1,40 +0,0 @@
1
- module Integration
2
-
3
- class OutputFile
4
-
5
- extend Forwardable
6
-
7
- attr_accessor :max_lines
8
-
9
- def initialize
10
- @out = StringIO.new
11
- @total_lines = 0
12
- @max_lines = nil
13
- end
14
-
15
- def print(*s)
16
- raise_if_too_many_lines(s)
17
- @out.print(*s)
18
- end
19
-
20
- def puts(*s)
21
- raise_if_too_many_lines(s)
22
- puts_unchecked(*s)
23
- end
24
-
25
- def_delegator :@out, :isatty
26
- def_delegator :@out, :flush
27
- def_delegator :@out, :string
28
- def_delegator :@out, :puts, :puts_unchecked
29
-
30
- def raise_if_too_many_lines(*s)
31
- num_lines = s.join.scan(/\n/).size
32
- @total_lines += num_lines
33
- if max_lines && @total_lines >= max_lines
34
- raise MaxOutputLines, "Maximum output lines reached"
35
- end
36
- end
37
-
38
- end
39
-
40
- end
@@ -1,135 +0,0 @@
1
- module Integration
2
-
3
- class Test
4
-
5
- BASIC_EXTENSION = '.bas'
6
-
7
- def initialize(basic_path)
8
- @basic_path = basic_path
9
- create_input
10
- create_expected_output
11
- @expected_output = read_expected_output
12
- end
13
-
14
- def matches_patterns?(patterns)
15
- return true if patterns.empty?
16
- path = Pathname.new(@basic_path)
17
- path = path.relative_path_from(base_path)
18
- path.to_s =~ Regexp.union(patterns)
19
- end
20
-
21
- def run
22
- output_file = OutputFile.new
23
- output_file.max_lines = options['max_output_lines']
24
- File.open(input_path, 'r') do |input_file|
25
- begin
26
- program = Basic101::Program.load_file(@basic_path)
27
- runtime = Basic101::Runtime.new(:input_file => input_file,
28
- :output_file => output_file,
29
- :program => program)
30
- runtime.run
31
- rescue Error => e
32
- output_file.puts_unchecked e
33
- rescue Parslet::ParseFailed => e
34
- output_file.puts e
35
- rescue Basic101::Error => e
36
- output_file.puts e
37
- rescue Exception => e
38
- output_file.puts e, e.backtrace
39
- end
40
- end
41
- @output = output_file.string
42
- end
43
-
44
- def print_progress
45
- print progress_character
46
- end
47
-
48
- def print_failure
49
- return if passed?
50
- puts
51
- puts "Failed: #{File.basename(@basic_path)}"
52
- actual_output_file = Tempfile.new(expected_output_filename)
53
- actual_output_file.write @output
54
- actual_output_file.close
55
- command = [
56
- 'diff',
57
- '-u',
58
- expected_output_path,
59
- actual_output_file.path,
60
- ].join(' ')
61
- system(command)
62
- actual_output_file.unlink
63
- end
64
-
65
- def train
66
- File.open(expected_output_path, 'w') do |file|
67
- file.write @output
68
- end
69
- end
70
-
71
- def passed?
72
- @output == @expected_output
73
- end
74
-
75
- private
76
-
77
- DEFAULT_OPTIONS = {
78
- 'max_output_lines' => 10_000
79
- }
80
-
81
- def base_path
82
- Pathname.new(__dir__) + 'tests'
83
- end
84
-
85
- def progress_character
86
- if passed?
87
- '.'
88
- else
89
- 'F'
90
- end
91
- end
92
-
93
- def create_input
94
- FileUtils.touch(input_path)
95
- end
96
-
97
- def create_expected_output
98
- FileUtils.touch(expected_output_path)
99
- end
100
-
101
- def read_expected_output
102
- File.read(expected_output_path)
103
- end
104
-
105
- def expected_output_filename
106
- File.basename(expected_output_path)
107
- end
108
-
109
- def input_path
110
- path_without_extension + '.input'
111
- end
112
-
113
- def expected_output_path
114
- path_without_extension + '.output'
115
- end
116
-
117
- def options_path
118
- path_without_extension + '.options'
119
- end
120
-
121
- def options
122
- if File.exists?(options_path)
123
- YAML.load_file(options_path)
124
- else
125
- DEFAULT_OPTIONS
126
- end
127
- end
128
-
129
- def path_without_extension
130
- @basic_path.chomp('.bas')
131
- end
132
-
133
- end
134
-
135
- end
@@ -1,29 +0,0 @@
1
- 23 MATCHES
2
- CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
-
4
-
5
-
6
- THIS IS A GAME CALLED '23 MATCHES'.
7
-
8
- WHEN IT IS YOUR TURN, YOU MAY TAKE ONE, TWO, OR THREE
9
- MATCHES. THE OBJECT OF THE GAME IS NOT TO HAVE TO TAKE
10
- THE LAST MATCH.
11
-
12
- LET'S FLIP A COIN TO SEE WHO GOES FIRST.
13
- IF IT COMES UP HEADS, I WILL WIN THE TOSS.
14
-
15
- HEADS! I WIN! HA! HA!
16
- PREPARE TO LOSE, MEATBALL-NOSE!!
17
-
18
- I TAKE 2 MATCHES
19
- THE NUMBER OF MATCHES IS NOW 21
20
-
21
- YOUR TURN -- YOU MAY TAKE 1, 2 OR 3 MATCHES.
22
- HOW MANY DO YOU WISH TO REMOVE ? 3
23
- THERE ARE NOW 18 MATCHES REMAINING.
24
- MY TURN ! I REMOVE 1 MATCHES
25
- THE NUMBER OF MATCHES IS NOW 17
26
-
27
- YOUR TURN -- YOU MAY TAKE 1, 2 OR 3 MATCHES.
28
- HOW MANY DO YOU WISH TO REMOVE ?
29
- Error on line 310: No more input
@@ -1,47 +0,0 @@
1
- SLOTS
2
- CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
-
4
-
5
-
6
-
7
- *
8
- * * *
9
- * * * * *
10
- * * * * * * *
11
- * * * * * * *
12
- * * * * * * *
13
- * * * * * * * * *
14
- * * * * * * * * *
15
- * * * * * * * * *
16
- * * * * * * * * * * *
17
- * * * * * * * * * * *
18
- * * * * * * ** * * *
19
- * * * * * * * * * *
20
- * * * * * * * * *
21
- * * * * * ** *
22
- * * * * * *
23
- * * * * * *
24
- * * * * * *
25
- * * * * * *
26
- * * * * * *
27
- * * * * * * *
28
- * * * * * *
29
- * * * * * *
30
- * * * * * *
31
- * * * * * *
32
- * * * * * *
33
- * * * * * ** *
34
- * * * * * * * * *
35
- * * * * * * * * * *
36
- * * * * * * ** * * *
37
- * * * * * * * * * * *
38
- * * * * * * * * * * *
39
- * * * * * * * * *
40
- * * * * * * * * *
41
- * * * * * * * * *
42
- * * * * * * *
43
- * * * * * * *
44
- * * * * * * *
45
- * * * * *
46
- * * *
47
- *
@@ -1,8 +0,0 @@
1
- 10
2
- 20
3
- 30
4
- 40
5
- 50
6
- 60
7
- 50
8
- NO
@@ -1,78 +0,0 @@
1
- ACEY DUCEY CARD GAME
2
- CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
-
4
-
5
- ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER
6
- THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP
7
- YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING
8
- ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE
9
- A VALUE BETWEEN THE FIRST TWO.
10
- IF YOU DO NOT WANT TO BET, INPUT A 0
11
- YOU NOW HAVE 100 DOLLARS.
12
-
13
- HERE ARE YOUR NEXT TWO CARDS:
14
- 9
15
- QUEEN
16
-
17
- WHAT IS YOUR BET? 10
18
- 10
19
- YOU WIN!!!
20
- YOU NOW HAVE 110 DOLLARS.
21
-
22
- HERE ARE YOUR NEXT TWO CARDS:
23
- 9
24
- ACE
25
-
26
-
27
- WHAT IS YOUR BET? 20
28
- 2
29
- SORRY, YOU LOSE
30
- YOU NOW HAVE 90 DOLLARS.
31
-
32
- HERE ARE YOUR NEXT TWO CARDS:
33
- 8
34
- QUEEN
35
-
36
- WHAT IS YOUR BET? 30
37
- 3
38
- SORRY, YOU LOSE
39
- YOU NOW HAVE 60 DOLLARS.
40
-
41
- HERE ARE YOUR NEXT TWO CARDS:
42
- 5
43
- QUEEN
44
-
45
- WHAT IS YOUR BET? 40
46
- 8
47
- YOU WIN!!!
48
- YOU NOW HAVE 100 DOLLARS.
49
-
50
- HERE ARE YOUR NEXT TWO CARDS:
51
- 10
52
- JACK
53
-
54
- WHAT IS YOUR BET? 50
55
- 7
56
- SORRY, YOU LOSE
57
- YOU NOW HAVE 50 DOLLARS.
58
-
59
- HERE ARE YOUR NEXT TWO CARDS:
60
- 8
61
- JACK
62
-
63
- WHAT IS YOUR BET? 60
64
- SORRY, MY FRIEND, BUT YOU BET TOO MUCH.
65
- YOU HAVE ONLY 50 DOLLARS TO BET.
66
-
67
- WHAT IS YOUR BET? 50
68
- 2
69
- SORRY, YOU LOSE
70
-
71
-
72
- SORRY, FRIEND, BUT YOU BLEW YOUR WAD.
73
-
74
-
75
- TRY AGAIN (YES OR NO)? NO
76
-
77
-
78
- O.K., HOPE YOU HAD FUN!
@@ -1,32 +0,0 @@
1
- AMAZING PROGRAM
2
- CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
-
4
-
5
-
6
-
7
- WHAT ARE YOUR WIDTH AND LENGTH? 10,10
8
-
9
-
10
-
11
-
12
- .--.--.--.--.--. .--.--.--.--.
13
- I I I I
14
- : : : : :--: :--:--:--: .
15
- I I I I I
16
- : :--:--:--: : :--:--:--:--.
17
- I I I I I I I
18
- : : :--: : : : : :--: .
19
- I I I I I I I
20
- :--:--: :--:--:--: : :--: .
21
- I I I I I I
22
- : : :--: : :--:--:--: : .
23
- I I I I I I
24
- : : :--:--: : :--:--:--: .
25
- I I I I I I I I
26
- : :--: : : : : : : : .
27
- I I I I I I I I
28
- : : :--:--:--: : :--:--:--.
29
- I I I I I
30
- : : :--:--: : :--:--:--: .
31
- I I I I I
32
- :--:--:--:--:--: :--:--:--:--.
@@ -1,17 +0,0 @@
1
- Y
2
- YES
3
- NO
4
- JELLYFISH
5
- DOES IT HAVE SCALES
6
- NO
7
- YES
8
- NO
9
- NO
10
- GIRAFFE
11
- DOES IT HAVE A LONG NECK
12
- YES
13
- YES
14
- YES
15
- YES
16
- YES
17
- LIST
@@ -1,38 +0,0 @@
1
- ANIMAL
2
- CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
3
-
4
-
5
-
6
- PLAY 'GUESS THE ANIMAL'
7
-
8
- THINK OF AN ANIMAL AND THE COMPUTER WILL TRY TO GUESS IT.
9
-
10
- ARE YOU THINKING OF AN ANIMAL? Y
11
- DOES IT SWIM? YES
12
- IS IT A FISH? NO
13
- THE ANIMAL YOU WERE THINKING OF WAS A ? JELLYFISH
14
- PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A
15
- JELLYFISH FROM A FISH
16
- ? DOES IT HAVE SCALES
17
- FOR A JELLYFISH THE ANSWER WOULD BE ? NO
18
- ARE YOU THINKING OF AN ANIMAL? YES
19
- DOES IT SWIM? NO
20
- IS IT A BIRD? NO
21
- THE ANIMAL YOU WERE THINKING OF WAS A ? GIRAFFE
22
- PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A
23
- GIRAFFE FROM A BIRD
24
- ? DOES IT HAVE A LONG NECK
25
- FOR A GIRAFFE THE ANSWER WOULD BE ? YES
26
- ARE YOU THINKING OF AN ANIMAL? YES
27
- DOES IT SWIM? YES
28
- DOES IT HAVE SCALES? YES
29
- IS IT A FISH? YES
30
- WHY NOT TRY ANOTHER ANIMAL?
31
- ARE YOU THINKING OF AN ANIMAL? LIST
32
-
33
- ANIMALS I ALREADY KNOW ARE:
34
- FISH JELLYFISH BIRD GIRAFFE
35
-
36
-
37
- ARE YOU THINKING OF AN ANIMAL?
38
- Error on line 130: No more input
@@ -1,11 +0,0 @@
1
- 6
2
- 5
3
- 4
4
- 6
5
- 5
6
- 6
7
- 1
8
- 6
9
- 5
10
- 6
11
- 4