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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.simplecov +1 -0
- data/.yardopts +7 -0
- data/Changelog.md +3 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +75 -0
- data/LICENSE.md +9 -0
- data/README.md +193 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/bin/basic101 +10 -0
- data/lib/basic101/abs_function.rb +19 -0
- data/lib/basic101/argument_checker.rb +61 -0
- data/lib/basic101/arguments.rb +32 -0
- data/lib/basic101/array_reference.rb +52 -0
- data/lib/basic101/asc_function.rb +17 -0
- data/lib/basic101/basic_array.rb +69 -0
- data/lib/basic101/basic_comparisons.rb +20 -0
- data/lib/basic101/basic_float.rb +48 -0
- data/lib/basic101/basic_integer.rb +48 -0
- data/lib/basic101/basic_math.rb +22 -0
- data/lib/basic101/basic_numeric.rb +96 -0
- data/lib/basic101/basic_object.rb +35 -0
- data/lib/basic101/basic_string.rb +85 -0
- data/lib/basic101/binary_operation.rb +32 -0
- data/lib/basic101/binary_operations.rb +26 -0
- data/lib/basic101/built_in_functions.rb +31 -0
- data/lib/basic101/chr_function.rb +17 -0
- data/lib/basic101/cos_function.rb +17 -0
- data/lib/basic101/data_statement.rb +24 -0
- data/lib/basic101/define_function_statement.rb +23 -0
- data/lib/basic101/dim_statement.rb +25 -0
- data/lib/basic101/else_statement.rb +22 -0
- data/lib/basic101/end_statement.rb +13 -0
- data/lib/basic101/endif_statement.rb +19 -0
- data/lib/basic101/errors.rb +50 -0
- data/lib/basic101/exp_function.rb +17 -0
- data/lib/basic101/for_stack.rb +48 -0
- data/lib/basic101/for_statement.rb +57 -0
- data/lib/basic101/function.rb +11 -0
- data/lib/basic101/function_call.rb +32 -0
- data/lib/basic101/function_identifier.rb +8 -0
- data/lib/basic101/functions.rb +39 -0
- data/lib/basic101/gosub_statement.rb +23 -0
- data/lib/basic101/goto_statement.rb +23 -0
- data/lib/basic101/identifier.rb +23 -0
- data/lib/basic101/identity.rb +18 -0
- data/lib/basic101/if_statement.rb +31 -0
- data/lib/basic101/input.rb +44 -0
- data/lib/basic101/input_reader.rb +55 -0
- data/lib/basic101/input_statement.rb +46 -0
- data/lib/basic101/int_function.rb +17 -0
- data/lib/basic101/left_function.rb +19 -0
- data/lib/basic101/len_function.rb +18 -0
- data/lib/basic101/let_statement.rb +24 -0
- data/lib/basic101/line.rb +32 -0
- data/lib/basic101/log_function.rb +17 -0
- data/lib/basic101/main.rb +24 -0
- data/lib/basic101/mid_function.rb +20 -0
- data/lib/basic101/negate_operation.rb +21 -0
- data/lib/basic101/next_statement.rb +34 -0
- data/lib/basic101/not_operation.rb +23 -0
- data/lib/basic101/null_prompt_delimeter.rb +12 -0
- data/lib/basic101/null_transcript.rb +20 -0
- data/lib/basic101/numeric_identifier.rb +16 -0
- data/lib/basic101/on_goto_statement.rb +29 -0
- data/lib/basic101/output.rb +73 -0
- data/lib/basic101/parser.rb +457 -0
- data/lib/basic101/power_operation.rb +24 -0
- data/lib/basic101/print_comma.rb +20 -0
- data/lib/basic101/print_semicolon.rb +19 -0
- data/lib/basic101/print_statement.rb +33 -0
- data/lib/basic101/program.rb +100 -0
- data/lib/basic101/program_counter.rb +52 -0
- data/lib/basic101/prompt_delimeter.rb +13 -0
- data/lib/basic101/randomize_statement.rb +13 -0
- data/lib/basic101/read_statement.rb +25 -0
- data/lib/basic101/reference.rb +25 -0
- data/lib/basic101/remark_statement.rb +12 -0
- data/lib/basic101/restore_statement.rb +23 -0
- data/lib/basic101/return_statement.rb +16 -0
- data/lib/basic101/right_function.rb +19 -0
- data/lib/basic101/rnd_function.rb +24 -0
- data/lib/basic101/runtime.rb +132 -0
- data/lib/basic101/scalar_reference.rb +19 -0
- data/lib/basic101/sgn_function.rb +17 -0
- data/lib/basic101/sin_function.rb +17 -0
- data/lib/basic101/sqr_function.rb +17 -0
- data/lib/basic101/statement.rb +36 -0
- data/lib/basic101/stop_statement.rb +14 -0
- data/lib/basic101/str_function.rb +16 -0
- data/lib/basic101/string_identifier.rb +16 -0
- data/lib/basic101/tab.rb +18 -0
- data/lib/basic101/tab_function.rb +17 -0
- data/lib/basic101/tan_function.rb +17 -0
- data/lib/basic101/transcript.rb +37 -0
- data/lib/basic101/transform.rb +264 -0
- data/lib/basic101/user_defined_function.rb +54 -0
- data/lib/basic101/val_function.rb +16 -0
- data/lib/basic101.rb +93 -0
- data/rake_tasks/default.rake +1 -0
- data/rake_tasks/integration.rake +8 -0
- data/rake_tasks/jeweler.rake +28 -0
- data/rake_tasks/spec.rake +8 -0
- data/rake_tasks/test.rake +2 -0
- data/rake_tasks/yard.rake +3 -0
- data/test/integration/arguments.rb +25 -0
- data/test/integration/errors.rb +7 -0
- data/test/integration/integration_test.rb +28 -0
- data/test/integration/main.rb +49 -0
- data/test/integration/output_file.rb +40 -0
- data/test/integration/test.rb +135 -0
- data/test/integration/tests/basic_computer_games/23-match.bas +64 -0
- data/test/integration/tests/basic_computer_games/23-match.input +1 -0
- data/test/integration/tests/basic_computer_games/23-match.output +29 -0
- data/test/integration/tests/basic_computer_games/3dplot.bas +17 -0
- data/test/integration/tests/basic_computer_games/3dplot.input +0 -0
- data/test/integration/tests/basic_computer_games/3dplot.output +47 -0
- data/test/integration/tests/basic_computer_games/aceyducy.bas +100 -0
- data/test/integration/tests/basic_computer_games/aceyducy.input +8 -0
- data/test/integration/tests/basic_computer_games/aceyducy.output +78 -0
- data/test/integration/tests/basic_computer_games/amazing.bas +138 -0
- data/test/integration/tests/basic_computer_games/amazing.input +1 -0
- data/test/integration/tests/basic_computer_games/amazing.output +32 -0
- data/test/integration/tests/basic_computer_games/animal.bas +71 -0
- data/test/integration/tests/basic_computer_games/animal.input +17 -0
- data/test/integration/tests/basic_computer_games/animal.output +38 -0
- data/test/integration/tests/basic_computer_games/awari.bas +70 -0
- data/test/integration/tests/basic_computer_games/awari.input +11 -0
- data/test/integration/tests/basic_computer_games/awari.output +117 -0
- data/test/integration/tests/basic_computer_games/bagels.bas +81 -0
- data/test/integration/tests/basic_computer_games/bagels.input +12 -0
- data/test/integration/tests/basic_computer_games/bagels.output +42 -0
- data/test/integration/tests/basic_computer_games/banner.bas +94 -0
- data/test/integration/tests/basic_computer_games/banner.input +6 -0
- data/test/integration/tests/basic_computer_games/banner.output +135 -0
- data/test/integration/tests/basic_computer_games/basketbl.bas +196 -0
- data/test/integration/tests/basic_computer_games/basketbl.input +46 -0
- data/test/integration/tests/basic_computer_games/basketbl.output +509 -0
- data/test/integration/tests/basic_computer_games/batnum.bas +90 -0
- data/test/integration/tests/basic_computer_games/batnum.input +14 -0
- data/test/integration/tests/basic_computer_games/batnum.output +67 -0
- data/test/integration/tests/basic_computer_games/battle.bas +196 -0
- data/test/integration/tests/basic_computer_games/battle.input +21 -0
- data/test/integration/tests/basic_computer_games/battle.output +118 -0
- data/test/integration/tests/basic_computer_games/blackjck.bas +321 -0
- data/test/integration/tests/basic_computer_games/blackjck.input +26 -0
- data/test/integration/tests/basic_computer_games/blackjck.output +144 -0
- data/test/integration/tests/basic_computer_games/bombard.bas +93 -0
- data/test/integration/tests/basic_computer_games/bombard.input +20 -0
- data/test/integration/tests/basic_computer_games/bombard.output +175 -0
- data/test/integration/tests/basic_computer_games/bounce.bas +53 -0
- data/test/integration/tests/basic_computer_games/bounce.input +0 -0
- data/test/integration/tests/basic_computer_games/bounce.output +15 -0
- data/test/integration/tests/basic_computer_games/bowling.bas +101 -0
- data/test/integration/tests/basic_computer_games/bowling.input +23 -0
- data/test/integration/tests/basic_computer_games/bowling.output +229 -0
- data/test/integration/tests/basic_computer_games/boxing.bas +142 -0
- data/test/integration/tests/basic_computer_games/boxing.input +8 -0
- data/test/integration/tests/basic_computer_games/boxing.output +47 -0
- data/test/integration/tests/basic_computer_games/bug.bas +256 -0
- data/test/integration/tests/basic_computer_games/bug.input +17 -0
- data/test/integration/tests/basic_computer_games/bug.output +847 -0
- data/test/integration/tests/basic_computer_games/bullfght.bas +193 -0
- data/test/integration/tests/basic_computer_games/bullfght.input +4 -0
- data/test/integration/tests/basic_computer_games/bullfght.output +60 -0
- data/test/integration/tests/basic_computer_games/bullseye.bas +37 -0
- data/test/integration/tests/basic_computer_games/bullseye.input +10 -0
- data/test/integration/tests/basic_computer_games/bullseye.output +79 -0
- data/test/integration/tests/basic_computer_games/bunny.bas +40 -0
- data/test/integration/tests/basic_computer_games/bunny.input +0 -0
- data/test/integration/tests/basic_computer_games/bunny.output +67 -0
- data/test/integration/tests/basic_computer_games/buzzword.bas +25 -0
- data/test/integration/tests/basic_computer_games/buzzword.input +4 -0
- data/test/integration/tests/basic_computer_games/buzzword.output +25 -0
- data/test/integration/tests/basic_computer_games/calendar.bas +58 -0
- data/test/integration/tests/basic_computer_games/calendar.input +0 -0
- data/test/integration/tests/basic_computer_games/calendar.output +213 -0
- data/test/integration/tests/basic_computer_games/change.bas +51 -0
- data/test/integration/tests/basic_computer_games/change.input +4 -0
- data/test/integration/tests/basic_computer_games/change.output +28 -0
- data/test/integration/tests/basic_computer_games/checkers.bas +82 -0
- data/test/integration/tests/basic_computer_games/checkers.input +74 -0
- data/test/integration/tests/basic_computer_games/checkers.output +673 -0
- data/test/integration/tests/basic_computer_games/chemist.bas +27 -0
- data/test/integration/tests/basic_computer_games/chemist.input +11 -0
- data/test/integration/tests/basic_computer_games/chemist.output +54 -0
- data/test/integration/tests/basic_computer_games/chief.bas +51 -0
- data/test/integration/tests/basic_computer_games/chief.input +5 -0
- data/test/integration/tests/basic_computer_games/chief.output +19 -0
- data/test/integration/tests/basic_computer_games/chomp.bas +104 -0
- data/test/integration/tests/basic_computer_games/chomp.input +15 -0
- data/test/integration/tests/basic_computer_games/chomp.output +159 -0
- data/test/integration/tests/basic_computer_games/combat.bas +124 -0
- data/test/integration/tests/basic_computer_games/combat.input +7 -0
- data/test/integration/tests/basic_computer_games/combat.output +33 -0
- data/test/integration/tests/basic_computer_games/craps.bas +82 -0
- data/test/integration/tests/basic_computer_games/craps.input +9 -0
- data/test/integration/tests/basic_computer_games/craps.output +51 -0
- data/test/integration/tests/basic_computer_games/cube.bas +161 -0
- data/test/integration/tests/basic_computer_games/cube.input +25 -0
- data/test/integration/tests/basic_computer_games/cube.output +72 -0
- data/test/integration/tests/basic_computer_games/depthchg.bas +33 -0
- data/test/integration/tests/basic_computer_games/depthchg.input +16 -0
- data/test/integration/tests/basic_computer_games/depthchg.output +83 -0
- data/test/integration/tests/basic_computer_games/diamond.bas +27 -0
- data/test/integration/tests/basic_computer_games/diamond.input +1 -0
- data/test/integration/tests/basic_computer_games/diamond.output +65 -0
- data/test/integration/tests/basic_computer_games/dice.bas +31 -0
- data/test/integration/tests/basic_computer_games/dice.input +4 -0
- data/test/integration/tests/basic_computer_games/dice.output +46 -0
- data/test/integration/tests/basic_computer_games/digits.bas +78 -0
- data/test/integration/tests/basic_computer_games/digits.input +5 -0
- data/test/integration/tests/basic_computer_games/digits.output +70 -0
- data/test/integration/tests/basic_computer_games/evenwin1.bas +128 -0
- data/test/integration/tests/basic_computer_games/evenwin1.input +13 -0
- data/test/integration/tests/basic_computer_games/evenwin1.output +116 -0
- data/test/integration/tests/basic_computer_games/evenwin2.bas +70 -0
- data/test/integration/tests/basic_computer_games/evenwin2.input +14 -0
- data/test/integration/tests/basic_computer_games/evenwin2.output +56 -0
- data/test/integration/tests/basic_computer_games/flipflop.bas +79 -0
- data/test/integration/tests/basic_computer_games/flipflop.input +8 -0
- data/test/integration/tests/basic_computer_games/flipflop.output +45 -0
- data/test/integration/tests/basic_computer_games/footbal1.bas +298 -0
- data/test/integration/tests/basic_computer_games/footbal1.input +13 -0
- data/test/integration/tests/basic_computer_games/footbal1.output +315 -0
- data/test/integration/tests/basic_computer_games/footbal2.bas +181 -0
- data/test/integration/tests/basic_computer_games/footbal2.input +23 -0
- data/test/integration/tests/basic_computer_games/footbal2.output +318 -0
- data/test/integration/tests/basic_computer_games/furtradr.bas +170 -0
- data/test/integration/tests/basic_computer_games/furtradr.input +20 -0
- data/test/integration/tests/basic_computer_games/furtradr.output +133 -0
- data/test/integration/tests/basic_computer_games/golf.bas +244 -0
- data/test/integration/tests/basic_computer_games/golf.input +11 -0
- data/test/integration/tests/basic_computer_games/golf.output +69 -0
- data/test/integration/tests/basic_computer_games/gomoko.bas +54 -0
- data/test/integration/tests/basic_computer_games/gomoko.input +6 -0
- data/test/integration/tests/basic_computer_games/gomoko.output +66 -0
- data/test/integration/tests/basic_computer_games/guess.bas +40 -0
- data/test/integration/tests/basic_computer_games/guess.input +8 -0
- data/test/integration/tests/basic_computer_games/guess.output +37 -0
- data/test/integration/tests/basic_computer_games/gunner.bas +52 -0
- data/test/integration/tests/basic_computer_games/gunner.input +18 -0
- data/test/integration/tests/basic_computer_games/gunner.output +91 -0
- data/test/integration/tests/basic_computer_games/hamurabi.bas +119 -0
- data/test/integration/tests/basic_computer_games/hamurabi.input +7 -0
- data/test/integration/tests/basic_computer_games/hamurabi.output +51 -0
- data/test/integration/tests/basic_computer_games/hangman.bas +81 -0
- data/test/integration/tests/basic_computer_games/hangman.input +69 -0
- data/test/integration/tests/basic_computer_games/hangman.output +889 -0
- data/test/integration/tests/basic_computer_games/hello.bas +83 -0
- data/test/integration/tests/basic_computer_games/hello.input +7 -0
- data/test/integration/tests/basic_computer_games/hello.output +46 -0
- data/test/integration/tests/basic_computer_games/hexapawn.bas +174 -0
- data/test/integration/tests/basic_computer_games/hexapawn.input +38 -0
- data/test/integration/tests/basic_computer_games/hexapawn.output +521 -0
- data/test/integration/tests/basic_computer_games/hi-q.bas +135 -0
- data/test/integration/tests/basic_computer_games/hi-q.input +14 -0
- data/test/integration/tests/basic_computer_games/hi-q.output +115 -0
- data/test/integration/tests/basic_computer_games/hilo.bas +29 -0
- data/test/integration/tests/basic_computer_games/hilo.input +20 -0
- data/test/integration/tests/basic_computer_games/hilo.output +76 -0
- data/test/integration/tests/basic_computer_games/hockey.bas +210 -0
- data/test/integration/tests/basic_computer_games/hockey.input +59 -0
- data/test/integration/tests/basic_computer_games/hockey.output +243 -0
- data/test/integration/tests/basic_computer_games/horsrace.bas +130 -0
- data/test/integration/tests/basic_computer_games/horsrace.input +11 -0
- data/test/integration/tests/basic_computer_games/horsrace.output +517 -0
- data/test/integration/tests/basic_computer_games/hurkle.bas +51 -0
- data/test/integration/tests/basic_computer_games/hurkle.input +16 -0
- data/test/integration/tests/basic_computer_games/hurkle.output +81 -0
- data/test/integration/tests/basic_computer_games/kinema.bas +34 -0
- data/test/integration/tests/basic_computer_games/kinema.input +9 -0
- data/test/integration/tests/basic_computer_games/kinema.output +64 -0
- data/test/integration/tests/basic_computer_games/king.bas +268 -0
- data/test/integration/tests/basic_computer_games/king.input +7 -0
- data/test/integration/tests/basic_computer_games/king.output +57 -0
- data/test/integration/tests/basic_computer_games/lem.bas +246 -0
- data/test/integration/tests/basic_computer_games/lem.input +4 -0
- data/test/integration/tests/basic_computer_games/lem.output +68 -0
- data/test/integration/tests/basic_computer_games/letter.bas +26 -0
- data/test/integration/tests/basic_computer_games/letter.input +24 -0
- data/test/integration/tests/basic_computer_games/letter.output +123 -0
- data/test/integration/tests/basic_computer_games/life.bas +66 -0
- data/test/integration/tests/basic_computer_games/life.input +4 -0
- data/test/integration/tests/basic_computer_games/life.options +1 -0
- data/test/integration/tests/basic_computer_games/life.output +200 -0
- data/test/integration/tests/basic_computer_games/life2.bas +83 -0
- data/test/integration/tests/basic_computer_games/life2.input +17 -0
- data/test/integration/tests/basic_computer_games/life2.output +113 -0
- data/test/integration/tests/basic_computer_games/litquiz.bas +49 -0
- data/test/integration/tests/basic_computer_games/litquiz.input +4 -0
- data/test/integration/tests/basic_computer_games/litquiz.output +36 -0
- data/test/integration/tests/basic_computer_games/love.bas +34 -0
- data/test/integration/tests/basic_computer_games/love.input +1 -0
- data/test/integration/tests/basic_computer_games/love.output +67 -0
- data/test/integration/tests/basic_computer_games/lunar.bas +48 -0
- data/test/integration/tests/basic_computer_games/lunar.input +87 -0
- data/test/integration/tests/basic_computer_games/lunar.output +195 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.bas +232 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.input +18 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.output +67 -0
- data/test/integration/tests/basic_computer_games/mathdice.bas +60 -0
- data/test/integration/tests/basic_computer_games/mathdice.input +4 -0
- data/test/integration/tests/basic_computer_games/mathdice.output +86 -0
- data/test/integration/tests/basic_computer_games/mugwump.bas +56 -0
- data/test/integration/tests/basic_computer_games/mugwump.input +16 -0
- data/test/integration/tests/basic_computer_games/mugwump.output +139 -0
- data/test/integration/tests/basic_computer_games/name.bas +25 -0
- data/test/integration/tests/basic_computer_games/name.input +2 -0
- data/test/integration/tests/basic_computer_games/name.output +22 -0
- data/test/integration/tests/basic_computer_games/nicoma.bas +34 -0
- data/test/integration/tests/basic_computer_games/nicoma.input +8 -0
- data/test/integration/tests/basic_computer_games/nicoma.output +36 -0
- data/test/integration/tests/basic_computer_games/nim.bas +156 -0
- data/test/integration/tests/basic_computer_games/nim.input +8 -0
- data/test/integration/tests/basic_computer_games/nim.output +30 -0
- data/test/integration/tests/basic_computer_games/number.bas +37 -0
- data/test/integration/tests/basic_computer_games/number.input +19 -0
- data/test/integration/tests/basic_computer_games/number.output +73 -0
- data/test/integration/tests/basic_computer_games/onecheck.bas +86 -0
- data/test/integration/tests/basic_computer_games/onecheck.input +6 -0
- data/test/integration/tests/basic_computer_games/onecheck.output +77 -0
- data/test/integration/tests/basic_computer_games/orbit.bas +96 -0
- data/test/integration/tests/basic_computer_games/orbit.input +10 -0
- data/test/integration/tests/basic_computer_games/orbit.output +113 -0
- data/test/integration/tests/basic_computer_games/pizza.bas +68 -0
- data/test/integration/tests/basic_computer_games/pizza.input +10 -0
- data/test/integration/tests/basic_computer_games/pizza.output +93 -0
- data/test/integration/tests/basic_computer_games/poetry.bas +42 -0
- data/test/integration/tests/basic_computer_games/poetry.input +0 -0
- data/test/integration/tests/basic_computer_games/poetry.options +1 -0
- data/test/integration/tests/basic_computer_games/poetry.output +50 -0
- data/test/integration/tests/basic_computer_games/poker.bas +416 -0
- data/test/integration/tests/basic_computer_games/poker.input +34 -0
- data/test/integration/tests/basic_computer_games/poker.output +197 -0
- data/test/integration/tests/basic_computer_games/queen.bas +168 -0
- data/test/integration/tests/basic_computer_games/queen.input +10 -0
- data/test/integration/tests/basic_computer_games/queen.output +133 -0
- data/test/integration/tests/basic_computer_games/reverse.bas +62 -0
- data/test/integration/tests/basic_computer_games/reverse.input +12 -0
- data/test/integration/tests/basic_computer_games/reverse.output +79 -0
- data/test/integration/tests/basic_computer_games/rocket.bas +71 -0
- data/test/integration/tests/basic_computer_games/rocket.input +42 -0
- data/test/integration/tests/basic_computer_games/rocket.output +149 -0
- data/test/integration/tests/basic_computer_games/rocksp.bas +33 -0
- data/test/integration/tests/basic_computer_games/rocksp.input +9 -0
- data/test/integration/tests/basic_computer_games/rocksp.output +69 -0
- data/test/integration/tests/basic_computer_games/roulette.bas +239 -0
- data/test/integration/tests/basic_computer_games/roulette.input +9 -0
- data/test/integration/tests/basic_computer_games/roulette.output +98 -0
- data/test/integration/tests/basic_computer_games/rusrou.bas +26 -0
- data/test/integration/tests/basic_computer_games/rusrou.input +9 -0
- data/test/integration/tests/basic_computer_games/rusrou.output +50 -0
- data/test/integration/tests/basic_computer_games/salvo.bas +329 -0
- data/test/integration/tests/basic_computer_games/salvo.input +21 -0
- data/test/integration/tests/basic_computer_games/salvo.output +49 -0
- data/test/integration/tests/basic_computer_games/sinewave.bas +17 -0
- data/test/integration/tests/basic_computer_games/sinewave.input +0 -0
- data/test/integration/tests/basic_computer_games/sinewave.output +168 -0
- data/test/integration/tests/basic_computer_games/slalom.bas +165 -0
- data/test/integration/tests/basic_computer_games/slalom.input +20 -0
- data/test/integration/tests/basic_computer_games/slalom.output +122 -0
- data/test/integration/tests/basic_computer_games/slots.bas +134 -0
- data/test/integration/tests/basic_computer_games/slots.input +2 -0
- data/test/integration/tests/basic_computer_games/slots.output +20 -0
- data/test/integration/tests/basic_computer_games/splat.bas +128 -0
- data/test/integration/tests/basic_computer_games/splat.input +9 -0
- data/test/integration/tests/basic_computer_games/splat.output +61 -0
- data/test/integration/tests/basic_computer_games/stars.bas +54 -0
- data/test/integration/tests/basic_computer_games/stars.input +15 -0
- data/test/integration/tests/basic_computer_games/stars.output +70 -0
- data/test/integration/tests/basic_computer_games/stock.bas +232 -0
- data/test/integration/tests/basic_computer_games/stock.input +30 -0
- data/test/integration/tests/basic_computer_games/stock.output +156 -0
- data/test/integration/tests/basic_computer_games/superstartrek.bas +425 -0
- data/test/integration/tests/basic_computer_games/superstartrek.input +21 -0
- data/test/integration/tests/basic_computer_games/superstartrek.output +151 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.bas +127 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.input +1 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.output +134 -0
- data/test/integration/tests/basic_computer_games/synonym.bas +53 -0
- data/test/integration/tests/basic_computer_games/synonym.input +13 -0
- data/test/integration/tests/basic_computer_games/synonym.output +57 -0
- data/test/integration/tests/basic_computer_games/target.bas +51 -0
- data/test/integration/tests/basic_computer_games/target.input +2 -0
- data/test/integration/tests/basic_computer_games/target.output +39 -0
- data/test/integration/tests/basic_computer_games/tictac1.bas +69 -0
- data/test/integration/tests/basic_computer_games/tictac1.input +10 -0
- data/test/integration/tests/basic_computer_games/tictac1.output +49 -0
- data/test/integration/tests/basic_computer_games/tictac2.bas +114 -0
- data/test/integration/tests/basic_computer_games/tictac2.input +6 -0
- data/test/integration/tests/basic_computer_games/tictac2.output +104 -0
- data/test/integration/tests/basic_computer_games/towers.bas +125 -0
- data/test/integration/tests/basic_computer_games/towers.input +9 -0
- data/test/integration/tests/basic_computer_games/towers.output +70 -0
- data/test/integration/tests/basic_computer_games/train.bas +24 -0
- data/test/integration/tests/basic_computer_games/train.input +4 -0
- data/test/integration/tests/basic_computer_games/train.output +23 -0
- data/test/integration/tests/basic_computer_games/trap.bas +49 -0
- data/test/integration/tests/basic_computer_games/trap.input +7 -0
- data/test/integration/tests/basic_computer_games/trap.output +40 -0
- data/test/integration/tests/basic_computer_games/war.bas +68 -0
- data/test/integration/tests/basic_computer_games/war.input +11 -0
- data/test/integration/tests/basic_computer_games/war.output +54 -0
- data/test/integration/tests/basic_computer_games/weekday.bas +150 -0
- data/test/integration/tests/basic_computer_games/weekday.input +2 -0
- data/test/integration/tests/basic_computer_games/weekday.output +28 -0
- data/test/integration/tests/basic_computer_games/word.bas +65 -0
- data/test/integration/tests/basic_computer_games/word.input +6 -0
- data/test/integration/tests/basic_computer_games/word.output +0 -0
- data/test/integration/tests/fast/abs.bas +5 -0
- data/test/integration/tests/fast/abs.input +0 -0
- data/test/integration/tests/fast/abs.output +5 -0
- data/test/integration/tests/fast/add.bas +5 -0
- data/test/integration/tests/fast/add.input +0 -0
- data/test/integration/tests/fast/add.output +5 -0
- data/test/integration/tests/fast/and.bas +5 -0
- data/test/integration/tests/fast/and.input +0 -0
- data/test/integration/tests/fast/and.output +5 -0
- data/test/integration/tests/fast/array.bas +11 -0
- data/test/integration/tests/fast/array.input +0 -0
- data/test/integration/tests/fast/array.output +6 -0
- data/test/integration/tests/fast/asc.bas +1 -0
- data/test/integration/tests/fast/asc.input +0 -0
- data/test/integration/tests/fast/asc.output +1 -0
- data/test/integration/tests/fast/chr.bas +1 -0
- data/test/integration/tests/fast/chr.input +0 -0
- data/test/integration/tests/fast/chr.output +1 -0
- data/test/integration/tests/fast/cos.bas +1 -0
- data/test/integration/tests/fast/cos.input +0 -0
- data/test/integration/tests/fast/cos.output +1 -0
- data/test/integration/tests/fast/def_fn.bas +9 -0
- data/test/integration/tests/fast/def_fn.input +0 -0
- data/test/integration/tests/fast/def_fn.output +5 -0
- data/test/integration/tests/fast/divide.bas +5 -0
- data/test/integration/tests/fast/divide.input +0 -0
- data/test/integration/tests/fast/divide.output +5 -0
- data/test/integration/tests/fast/end.bas +3 -0
- data/test/integration/tests/fast/end.input +0 -0
- data/test/integration/tests/fast/end.output +1 -0
- data/test/integration/tests/fast/eq.bas +3 -0
- data/test/integration/tests/fast/eq.input +0 -0
- data/test/integration/tests/fast/eq.output +3 -0
- data/test/integration/tests/fast/exp.bas +2 -0
- data/test/integration/tests/fast/exp.input +0 -0
- data/test/integration/tests/fast/exp.output +2 -0
- data/test/integration/tests/fast/float.bas +3 -0
- data/test/integration/tests/fast/float.input +0 -0
- data/test/integration/tests/fast/float.output +2 -0
- data/test/integration/tests/fast/for_next.bas +61 -0
- data/test/integration/tests/fast/for_next.input +0 -0
- data/test/integration/tests/fast/for_next.output +46 -0
- data/test/integration/tests/fast/ge.bas +3 -0
- data/test/integration/tests/fast/ge.input +0 -0
- data/test/integration/tests/fast/ge.output +3 -0
- data/test/integration/tests/fast/gosub_return.bas +10 -0
- data/test/integration/tests/fast/gosub_return.input +0 -0
- data/test/integration/tests/fast/gosub_return.output +4 -0
- data/test/integration/tests/fast/goto.bas +3 -0
- data/test/integration/tests/fast/goto.input +0 -0
- data/test/integration/tests/fast/goto.output +1 -0
- data/test/integration/tests/fast/gt.bas +3 -0
- data/test/integration/tests/fast/gt.input +0 -0
- data/test/integration/tests/fast/gt.output +3 -0
- data/test/integration/tests/fast/if.bas +25 -0
- data/test/integration/tests/fast/if.input +0 -0
- data/test/integration/tests/fast/if.output +8 -0
- data/test/integration/tests/fast/input.bas +24 -0
- data/test/integration/tests/fast/input.input +10 -0
- data/test/integration/tests/fast/input.output +28 -0
- data/test/integration/tests/fast/int.bas +5 -0
- data/test/integration/tests/fast/int.input +0 -0
- data/test/integration/tests/fast/int.output +5 -0
- data/test/integration/tests/fast/integer_plus_string.bas +1 -0
- data/test/integration/tests/fast/integer_plus_string.input +0 -0
- data/test/integration/tests/fast/integer_plus_string.output +1 -0
- data/test/integration/tests/fast/invalid_argument.bas +1 -0
- data/test/integration/tests/fast/invalid_argument.input +0 -0
- data/test/integration/tests/fast/invalid_argument.output +1 -0
- data/test/integration/tests/fast/le.bas +3 -0
- data/test/integration/tests/fast/le.input +0 -0
- data/test/integration/tests/fast/le.output +3 -0
- data/test/integration/tests/fast/left.bas +1 -0
- data/test/integration/tests/fast/left.input +0 -0
- data/test/integration/tests/fast/left.output +1 -0
- data/test/integration/tests/fast/len.bas +2 -0
- data/test/integration/tests/fast/len.input +0 -0
- data/test/integration/tests/fast/len.output +2 -0
- data/test/integration/tests/fast/let.bas +6 -0
- data/test/integration/tests/fast/let.input +0 -0
- data/test/integration/tests/fast/let.output +4 -0
- data/test/integration/tests/fast/log.bas +1 -0
- data/test/integration/tests/fast/log.input +0 -0
- data/test/integration/tests/fast/log.output +1 -0
- data/test/integration/tests/fast/lt.bas +3 -0
- data/test/integration/tests/fast/lt.input +0 -0
- data/test/integration/tests/fast/lt.output +3 -0
- data/test/integration/tests/fast/math.output +0 -0
- data/test/integration/tests/fast/mid.bas +2 -0
- data/test/integration/tests/fast/mid.input +0 -0
- data/test/integration/tests/fast/mid.output +2 -0
- data/test/integration/tests/fast/multiply.bas +5 -0
- data/test/integration/tests/fast/multiply.input +0 -0
- data/test/integration/tests/fast/multiply.output +5 -0
- data/test/integration/tests/fast/ne.bas +3 -0
- data/test/integration/tests/fast/ne.input +0 -0
- data/test/integration/tests/fast/ne.output +3 -0
- data/test/integration/tests/fast/negate.bas +4 -0
- data/test/integration/tests/fast/negate.input +0 -0
- data/test/integration/tests/fast/negate.output +3 -0
- data/test/integration/tests/fast/not.bas +4 -0
- data/test/integration/tests/fast/not.input +0 -0
- data/test/integration/tests/fast/not.output +4 -0
- data/test/integration/tests/fast/on_goto.bas +6 -0
- data/test/integration/tests/fast/on_goto.input +0 -0
- data/test/integration/tests/fast/on_goto.output +2 -0
- data/test/integration/tests/fast/or.bas +5 -0
- data/test/integration/tests/fast/or.input +0 -0
- data/test/integration/tests/fast/or.output +5 -0
- data/test/integration/tests/fast/parentheses.bas +1 -0
- data/test/integration/tests/fast/parentheses.input +0 -0
- data/test/integration/tests/fast/parentheses.output +1 -0
- data/test/integration/tests/fast/power.bas +4 -0
- data/test/integration/tests/fast/power.input +0 -0
- data/test/integration/tests/fast/power.output +4 -0
- data/test/integration/tests/fast/print.bas +6 -0
- data/test/integration/tests/fast/print.input +0 -0
- data/test/integration/tests/fast/print.output +4 -0
- data/test/integration/tests/fast/read_data.bas +15 -0
- data/test/integration/tests/fast/read_data.input +0 -0
- data/test/integration/tests/fast/read_data.output +4 -0
- data/test/integration/tests/fast/rem.bas +1 -0
- data/test/integration/tests/fast/rem.input +0 -0
- data/test/integration/tests/fast/rem.output +0 -0
- data/test/integration/tests/fast/right.bas +1 -0
- data/test/integration/tests/fast/right.input +0 -0
- data/test/integration/tests/fast/right.output +1 -0
- data/test/integration/tests/fast/rnd.bas +5 -0
- data/test/integration/tests/fast/rnd.input +0 -0
- data/test/integration/tests/fast/rnd.output +5 -0
- data/test/integration/tests/fast/sgn.bas +5 -0
- data/test/integration/tests/fast/sgn.input +0 -0
- data/test/integration/tests/fast/sgn.output +5 -0
- data/test/integration/tests/fast/sin.bas +1 -0
- data/test/integration/tests/fast/sin.input +0 -0
- data/test/integration/tests/fast/sin.output +1 -0
- data/test/integration/tests/fast/sqr.bas +2 -0
- data/test/integration/tests/fast/sqr.input +0 -0
- data/test/integration/tests/fast/sqr.output +2 -0
- data/test/integration/tests/fast/stop.bas +3 -0
- data/test/integration/tests/fast/stop.input +0 -0
- data/test/integration/tests/fast/stop.output +2 -0
- data/test/integration/tests/fast/str.bas +3 -0
- data/test/integration/tests/fast/str.input +0 -0
- data/test/integration/tests/fast/str.output +3 -0
- data/test/integration/tests/fast/string_addition.bas +1 -0
- data/test/integration/tests/fast/string_addition.input +0 -0
- data/test/integration/tests/fast/string_addition.output +1 -0
- data/test/integration/tests/fast/string_comparisons.bas +7 -0
- data/test/integration/tests/fast/string_comparisons.input +0 -0
- data/test/integration/tests/fast/string_comparisons.output +4 -0
- data/test/integration/tests/fast/string_plus_integer.bas +1 -0
- data/test/integration/tests/fast/string_plus_integer.input +0 -0
- data/test/integration/tests/fast/string_plus_integer.output +1 -0
- data/test/integration/tests/fast/subtract.bas +5 -0
- data/test/integration/tests/fast/subtract.input +0 -0
- data/test/integration/tests/fast/subtract.output +5 -0
- data/test/integration/tests/fast/tab.bas +4 -0
- data/test/integration/tests/fast/tab.input +0 -0
- data/test/integration/tests/fast/tab.output +3 -0
- data/test/integration/tests/fast/tan.bas +1 -0
- data/test/integration/tests/fast/tan.input +0 -0
- data/test/integration/tests/fast/tan.output +1 -0
- data/test/integration/tests/fast/val.bas +3 -0
- data/test/integration/tests/fast/val.input +0 -0
- data/test/integration/tests/fast/val.output +3 -0
- data/test/spec/argument_checker_spec.rb +128 -0
- data/test/spec/basic_array_spec.rb +100 -0
- data/test/spec/basic_float_spec.rb +168 -0
- data/test/spec/basic_integer_spec.rb +270 -0
- data/test/spec/basic_numeric_spec.rb +16 -0
- data/test/spec/basic_object_spec.rb +22 -0
- data/test/spec/basic_string_spec.rb +259 -0
- data/test/spec/for_stack_spec.rb +70 -0
- data/test/spec/input_reader_spec.rb +143 -0
- data/test/spec/input_spec.rb +102 -0
- data/test/spec/line_spec.rb +18 -0
- data/test/spec/output_spec.rb +153 -0
- data/test/spec/parser_spec.rb +562 -0
- data/test/spec/program_spec.rb +45 -0
- data/test/spec/spec_helper.rb +15 -0
- data/test/spec/support/basic_numeric_helpers.rb +327 -0
- data/test/spec/support/basic_object_helpers.rb +22 -0
- data/test/spec/transcript_spec.rb +37 -0
- data/test/spec/transform_spec.rb +513 -0
- metadata +742 -0
@@ -0,0 +1,135 @@
|
|
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
|
@@ -0,0 +1,64 @@
|
|
1
|
+
20 PRINT TAB(31);"23 MATCHES"
|
2
|
+
30 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
40 PRINT:PRINT:PRINT
|
4
|
+
80 PRINT " THIS IS A GAME CALLED '23 MATCHES'."
|
5
|
+
90 PRINT
|
6
|
+
100 PRINT "WHEN IT IS YOUR TURN, YOU MAY TAKE ONE, TWO, OR THREE"
|
7
|
+
110 PRINT "MATCHES. THE OBJECT OF THE GAME IS NOT TO HAVE TO TAKE"
|
8
|
+
120 PRINT "THE LAST MATCH."
|
9
|
+
130 PRINT
|
10
|
+
140 PRINT "LET'S FLIP A COIN TO SEE WHO GOES FIRST."
|
11
|
+
150 PRINT "IF IT COMES UP HEADS, I WILL WIN THE TOSS."
|
12
|
+
155 PRINT
|
13
|
+
160 REM
|
14
|
+
165 N = 23
|
15
|
+
170 Q = INT(2*RND(5))
|
16
|
+
180 IF Q = 1 THEN 210
|
17
|
+
190 PRINT "TAILS! YOU GO FIRST. "
|
18
|
+
195 PRINT
|
19
|
+
200 GOTO 300
|
20
|
+
210 PRINT "HEADS! I WIN! HA! HA!"
|
21
|
+
220 PRINT "PREPARE TO LOSE, MEATBALL-NOSE!!"
|
22
|
+
230 PRINT
|
23
|
+
250 PRINT "I TAKE 2 MATCHES"
|
24
|
+
260 N = N -2
|
25
|
+
270 PRINT "THE NUMBER OF MATCHES IS NOW" N
|
26
|
+
280 PRINT
|
27
|
+
290 PRINT "YOUR TURN -- YOU MAY TAKE 1, 2 OR 3 MATCHES."
|
28
|
+
300 PRINT "HOW MANY DO YOU WISH TO REMOVE",
|
29
|
+
310 INPUT K
|
30
|
+
320 IF K > 3 THEN 430
|
31
|
+
330 IF K <= 0 THEN 430
|
32
|
+
340 N = N - K
|
33
|
+
350 PRINT "THERE ARE NOW";N;"MATCHES REMAINING."
|
34
|
+
351 IF N = 4 THEN 381
|
35
|
+
352 IF N = 3 THEN 383
|
36
|
+
353 IF N = 2 THEN 385
|
37
|
+
360 IF N <= 1 THEN 530
|
38
|
+
370 Z = 4 - K
|
39
|
+
372 GOTO 390
|
40
|
+
380 PRINT
|
41
|
+
381 Z = 3
|
42
|
+
382 GOTO 390
|
43
|
+
383 Z = 2
|
44
|
+
384 GOTO 390
|
45
|
+
385 Z = 1
|
46
|
+
390 PRINT "MY TURN ! I REMOVE" Z "MATCHES"
|
47
|
+
400 N = N - Z
|
48
|
+
410 IF N <= 1 THEN 470
|
49
|
+
420 GOTO 270
|
50
|
+
430 PRINT "VERY FUNNY! DUMMY!"
|
51
|
+
440 PRINT "DO YOU WANT TO PLAY OR GOOF AROUND?"
|
52
|
+
450 PRINT "NOW, HOW MANY MATCHES DO YOU WANT",
|
53
|
+
460 GOTO 310
|
54
|
+
470 PRINT
|
55
|
+
480 PRINT"YOU POOR BOOB! YOU TOOK THE LAST MATCH! I GOTCHA!!"
|
56
|
+
490 PRINT "HA ! HA ! I BEAT YOU !!!"
|
57
|
+
500 PRINT
|
58
|
+
510 PRINT "GOOD BYE LOSER!"
|
59
|
+
520 GOTO 560
|
60
|
+
530 PRINT "YOU WON, FLOPPY EARS !"
|
61
|
+
540 PRINT "THINK YOU'RE PRETTY SMART !"
|
62
|
+
550 PRINT "LETS PLAY AGAIN AND I'LL BLOW YOUR SHOES OFF !!"
|
63
|
+
560 STOP
|
64
|
+
570 END
|
@@ -0,0 +1 @@
|
|
1
|
+
3
|
@@ -0,0 +1,29 @@
|
|
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
|
@@ -0,0 +1,17 @@
|
|
1
|
+
1 PRINT TAB(30);"SLOTS"
|
2
|
+
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
3 PRINT: PRINT: PRINT
|
4
|
+
5 DEF FNA(Z)=30*EXP(-Z*Z/100)
|
5
|
+
100 PRINT
|
6
|
+
110 FOR X=-30 TO 30 STEP 1.5
|
7
|
+
120 L=0
|
8
|
+
130 Y1=5*INT(SQR(900-X*X)/5)
|
9
|
+
140 FOR Y=Y1 TO -Y1 STEP -5
|
10
|
+
150 Z=INT(25+FNA(SQR(X*X+Y*Y))-.7*Y)
|
11
|
+
160 IF Z<=L THEN 190
|
12
|
+
170 L=Z
|
13
|
+
180 PRINT TAB(Z);"*";
|
14
|
+
190 NEXT Y
|
15
|
+
200 PRINT
|
16
|
+
210 NEXT X
|
17
|
+
300 END
|
File without changes
|
@@ -0,0 +1,47 @@
|
|
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
|
+
*
|
@@ -0,0 +1,100 @@
|
|
1
|
+
10 PRINT TAB(26);"ACEY DUCEY CARD GAME"
|
2
|
+
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
21 PRINT
|
4
|
+
22 PRINT
|
5
|
+
30 PRINT"ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER "
|
6
|
+
40 PRINT"THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP"
|
7
|
+
50 PRINT"YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING"
|
8
|
+
60 PRINT"ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE"
|
9
|
+
70 PRINT"A VALUE BETWEEN THE FIRST TWO."
|
10
|
+
80 PRINT"IF YOU DO NOT WANT TO BET, INPUT A 0"
|
11
|
+
100 N=100
|
12
|
+
110 Q=100
|
13
|
+
120 PRINT "YOU NOW HAVE";Q;"DOLLARS."
|
14
|
+
130 PRINT
|
15
|
+
140 GOTO 260
|
16
|
+
210 Q=Q+M
|
17
|
+
220 GOTO 120
|
18
|
+
240 Q=Q-M
|
19
|
+
250 GOTO 120
|
20
|
+
260 PRINT"HERE ARE YOUR NEXT TWO CARDS: "
|
21
|
+
270 A=INT(14*RND(1))+2
|
22
|
+
280 IF A<2 THEN 270
|
23
|
+
290 IF A>14 THEN 270
|
24
|
+
300 B=INT(14*RND(1))+2
|
25
|
+
310 IF B<2 THEN 300
|
26
|
+
320 IF B>14 THEN 300
|
27
|
+
330 IF A>=B THEN 270
|
28
|
+
350 IF A<11 THEN 400
|
29
|
+
360 IF A=11 THEN 420
|
30
|
+
370 IF A=12 THEN 440
|
31
|
+
380 IF A=13 THEN 460
|
32
|
+
390 IF A=14 THEN 480
|
33
|
+
400 PRINT A
|
34
|
+
410 GOTO 500
|
35
|
+
420 PRINT"JACK"
|
36
|
+
430 GOTO 500
|
37
|
+
440 PRINT"QUEEN"
|
38
|
+
450 GOTO 500
|
39
|
+
460 PRINT"KING"
|
40
|
+
470 GOTO 500
|
41
|
+
480 PRINT"ACE"
|
42
|
+
500 IF B<11 THEN 550
|
43
|
+
510 IF B=11 THEN 570
|
44
|
+
520 IF B=12 THEN 590
|
45
|
+
530 IF B=13 THEN 610
|
46
|
+
540 IF B=14 THEN 630
|
47
|
+
550 PRINT B
|
48
|
+
560 GOTO 650
|
49
|
+
570 PRINT"JACK"
|
50
|
+
580 GOTO 650
|
51
|
+
590 PRINT"QUEEN"
|
52
|
+
600 GOTO 650
|
53
|
+
610 PRINT"KING"
|
54
|
+
620 GOTO 650
|
55
|
+
630 PRINT"ACE"
|
56
|
+
640 PRINT
|
57
|
+
650 PRINT
|
58
|
+
660 INPUT"WHAT IS YOUR BET";M
|
59
|
+
670 IF M<>0 THEN 680
|
60
|
+
675 PRINT"CHICKEN!!"
|
61
|
+
676 PRINT
|
62
|
+
677 GOTO 260
|
63
|
+
680 IF M<=Q THEN 730
|
64
|
+
690 PRINT"SORRY, MY FRIEND, BUT YOU BET TOO MUCH."
|
65
|
+
700 PRINT"YOU HAVE ONLY ";Q;" DOLLARS TO BET."
|
66
|
+
710 GOTO 650
|
67
|
+
730 C=INT(14*RND(1))+2
|
68
|
+
740 IF C<2 THEN 730
|
69
|
+
750 IF C>14 THEN 730
|
70
|
+
760 IF C<11 THEN 810
|
71
|
+
770 IF C=11 THEN 830
|
72
|
+
780 IF C=12 THEN 850
|
73
|
+
790 IF C=13 THEN 870
|
74
|
+
800 IF C=14 THEN 890
|
75
|
+
810 PRINT C
|
76
|
+
820 GOTO 910
|
77
|
+
830 PRINT"JACK"
|
78
|
+
840 GOTO 910
|
79
|
+
850 PRINT"QUEEN"
|
80
|
+
860 GOTO 910
|
81
|
+
870 PRINT"KING"
|
82
|
+
880 GOTO 910
|
83
|
+
890 PRINT "ACE"
|
84
|
+
900 PRINT
|
85
|
+
910 IF C>A THEN 930
|
86
|
+
920 GOTO 970
|
87
|
+
930 IF C>=B THEN 970
|
88
|
+
950 PRINT"YOU WIN!!!"
|
89
|
+
960 GOTO 210
|
90
|
+
970 PRINT"SORRY, YOU LOSE"
|
91
|
+
980 IF M<Q THEN 240
|
92
|
+
990 PRINT
|
93
|
+
1000 PRINT
|
94
|
+
1010 PRINT"SORRY, FRIEND, BUT YOU BLEW YOUR WAD."
|
95
|
+
1015 PRINT:PRINT
|
96
|
+
1020 INPUT"TRY AGAIN (YES OR NO)";A$
|
97
|
+
1025 PRINT:PRINT
|
98
|
+
1030 IF A$="YES" THEN 110
|
99
|
+
1040 PRINT"O.K., HOPE YOU HAD FUN!"
|
100
|
+
1050 END
|
@@ -0,0 +1,78 @@
|
|
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!
|
@@ -0,0 +1,138 @@
|
|
1
|
+
10 PRINT TAB(28);"AMAZING PROGRAM"
|
2
|
+
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
30 PRINT:PRINT:PRINT:PRINT
|
4
|
+
100 INPUT "WHAT ARE YOUR WIDTH AND LENGTH";H,V
|
5
|
+
102 IF H<>1 AND V<>1 THEN 110
|
6
|
+
104 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN.":GOTO 100
|
7
|
+
110 DIM W(H,V),V(H,V)
|
8
|
+
120 PRINT
|
9
|
+
130 PRINT
|
10
|
+
140 PRINT
|
11
|
+
150 PRINT
|
12
|
+
160 Q=0:Z=0:X=INT(RND(1)*H+1)
|
13
|
+
165 FOR I=1 TO H
|
14
|
+
170 IF I=X THEN 173
|
15
|
+
171 PRINT ".--";:GOTO 180
|
16
|
+
173 PRINT ". ";
|
17
|
+
180 NEXT I
|
18
|
+
190 PRINT "."
|
19
|
+
195 C=1:W(X,1)=C:C=C+1
|
20
|
+
200 R=X:S=1:GOTO 260
|
21
|
+
210 IF R<>H THEN 240
|
22
|
+
215 IF S<>V THEN 230
|
23
|
+
220 R=1:S=1:GOTO 250
|
24
|
+
230 R=1:S=S+1:GOTO 250
|
25
|
+
240 R=R+1
|
26
|
+
250 IF W(R,S)=0 THEN 210
|
27
|
+
260 IF R-1=0 THEN 530
|
28
|
+
265 IF W(R-1,S)<>0 THEN 530
|
29
|
+
270 IF S-1=0 THEN 390
|
30
|
+
280 IF W(R,S-1)<>0 THEN 390
|
31
|
+
290 IF R=H THEN 330
|
32
|
+
300 IF W(R+1,S)<>0 THEN 330
|
33
|
+
310 X=INT(RND(1)*3+1)
|
34
|
+
320 ON X GOTO 790,820,860
|
35
|
+
330 IF S<>V THEN 340
|
36
|
+
334 IF Z=1 THEN 370
|
37
|
+
338 Q=1:GOTO 350
|
38
|
+
340 IF W(R,S+1)<>0 THEN 370
|
39
|
+
350 X=INT(RND(1)*3+1)
|
40
|
+
360 ON X GOTO 790,820,910
|
41
|
+
370 X=INT(RND(1)*2+1)
|
42
|
+
380 ON X GOTO 790,820
|
43
|
+
390 IF R=H THEN 470
|
44
|
+
400 IF W(R+1,S)<>0 THEN 470
|
45
|
+
405 IF S<>V THEN 420
|
46
|
+
410 IF Z=1 THEN 450
|
47
|
+
415 Q=1:GOTO 430
|
48
|
+
420 IF W(R,S+1)<>0 THEN 450
|
49
|
+
430 X=INT(RND(1)*3+1)
|
50
|
+
440 ON X GOTO 790,860,910
|
51
|
+
450 X=INT(RND(1)*2+1)
|
52
|
+
460 ON X GOTO 790,860
|
53
|
+
470 IF S<>V THEN 490
|
54
|
+
480 IF Z=1 THEN 520
|
55
|
+
485 Q=1:GOTO 500
|
56
|
+
490 IF W(R,S+1)<>0 THEN 520
|
57
|
+
500 X=INT(RND(1)*2+1)
|
58
|
+
510 ON X GOTO 790,910
|
59
|
+
520 GOTO 790
|
60
|
+
530 IF S-1=0 THEN 670
|
61
|
+
540 IF W(R,S-1)<>0 THEN 670
|
62
|
+
545 IF R=H THEN 610
|
63
|
+
547 IF W(R+1,S)<>0 THEN 610
|
64
|
+
550 IF S<>V THEN 560
|
65
|
+
552 IF Z=1 THEN 590
|
66
|
+
554 Q=1:GOTO 570
|
67
|
+
560 IF W(R,S+1)<>0 THEN 590
|
68
|
+
570 X=INT(RND(1)*3+1)
|
69
|
+
580 ON X GOTO 820,860,910
|
70
|
+
590 X=INT(RND(1)*2+1)
|
71
|
+
600 ON X GOTO 820,860
|
72
|
+
610 IF S<>V THEN 630
|
73
|
+
620 IF Z=1 THEN 660
|
74
|
+
625 Q=1:GOTO 640
|
75
|
+
630 IF W(R,S+1)<>0 THEN 660
|
76
|
+
640 X=INT(RND(1)*2+1)
|
77
|
+
650 ON X GOTO 820,910
|
78
|
+
660 GOTO 820
|
79
|
+
670 IF R=H THEN 740
|
80
|
+
680 IF W(R+1,S)<>0 THEN 740
|
81
|
+
685 IF S<>V THEN 700
|
82
|
+
690 IF Z=1 THEN 730
|
83
|
+
695 Q=1:GOTO 830
|
84
|
+
700 IF W(R,S+1)<>0 THEN 730
|
85
|
+
710 X=INT(RND(1)*2+1)
|
86
|
+
720 ON X GOTO 860,910
|
87
|
+
730 GOTO 860
|
88
|
+
740 IF S<>V THEN 760
|
89
|
+
750 IF Z=1 THEN 780
|
90
|
+
755 Q=1:GOTO 770
|
91
|
+
760 IF W(R,S+1)<>0 THEN 780
|
92
|
+
770 GOTO 910
|
93
|
+
780 GOTO 1000
|
94
|
+
790 W(R-1,S)=C
|
95
|
+
800 C=C+1:V(R-1,S)=2:R=R-1
|
96
|
+
810 IF C=H*V+1 THEN 1010
|
97
|
+
815 Q=0:GOTO 260
|
98
|
+
820 W(R,S-1)=C
|
99
|
+
830 C=C+1
|
100
|
+
840 V(R,S-1)=1:S=S-1:IF C=H*V+1 THEN 1010
|
101
|
+
850 Q=0:GOTO 260
|
102
|
+
860 W(R+1,S)=C
|
103
|
+
870 C=C+1:IF V(R,S)=0 THEN 880
|
104
|
+
875 V(R,S)=3:GOTO 890
|
105
|
+
880 V(R,S)=2
|
106
|
+
890 R=R+1
|
107
|
+
900 IF C=H*V+1 THEN 1010
|
108
|
+
905 GOTO 530
|
109
|
+
910 IF Q=1 THEN 960
|
110
|
+
920 W(R,S+1)=C:C=C+1:IF V(R,S)=0 THEN 940
|
111
|
+
930 V(R,S)=3:GOTO 950
|
112
|
+
940 V(R,S)=1
|
113
|
+
950 S=S+1:IF C=H*V+1 THEN 1010
|
114
|
+
955 GOTO 260
|
115
|
+
960 Z=1
|
116
|
+
970 IF V(R,S)=0 THEN 980
|
117
|
+
975 V(R,S)=3:Q=0:GOTO 1000
|
118
|
+
980 V(R,S)=1:Q=0:R=1:S=1:GOTO 250
|
119
|
+
1000 GOTO 210
|
120
|
+
1010 FOR J=1 TO V
|
121
|
+
1011 PRINT "I";
|
122
|
+
1012 FOR I=1 TO H
|
123
|
+
1013 IF V(I,J)<2 THEN 1030
|
124
|
+
1020 PRINT " ";
|
125
|
+
1021 GOTO 1040
|
126
|
+
1030 PRINT " I";
|
127
|
+
1040 NEXT I
|
128
|
+
1041 PRINT
|
129
|
+
1043 FOR I=1 TO H
|
130
|
+
1045 IF V(I,J)=0 THEN 1060
|
131
|
+
1050 IF V(I,J)=2 THEN 1060
|
132
|
+
1051 PRINT ": ";
|
133
|
+
1052 GOTO 1070
|
134
|
+
1060 PRINT ":--";
|
135
|
+
1070 NEXT I
|
136
|
+
1071 PRINT "."
|
137
|
+
1072 NEXT J
|
138
|
+
1073 END
|
@@ -0,0 +1 @@
|
|
1
|
+
10,10
|
@@ -0,0 +1,32 @@
|
|
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
|
+
:--:--:--:--:--: :--:--:--:--.
|