basic101 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
:--:--:--:--:--: :--:--:--:--.
|