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,298 @@
|
|
1
|
+
10 PRINT TAB(33);"FTBALL"
|
2
|
+
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
30 PRINT:PRINT
|
4
|
+
220 PRINT "THIS IS DARTMOUTH CHAMPIONSHIP FOOTBALL.":PRINT
|
5
|
+
230 PRINT "YOU WILL QUARTERBACK DARTMOUTH. CALL PLAYS AS FOLLOWS:"
|
6
|
+
240 PRINT "1= SIMPLE RUN; 2= TRICKY RUN; 3= SHORT PASS;"
|
7
|
+
250 PRINT "4= LONG PASS; 5= PUNT; 6= QUICK KICK; 7= PLACE KICK."
|
8
|
+
260 PRINT
|
9
|
+
270 PRINT "CHOOSE YOUR OPPONENT";
|
10
|
+
280 INPUT O$(1)
|
11
|
+
290 O$(0)="DARTMOUTH"
|
12
|
+
300 PRINT
|
13
|
+
310 LET S(0)=0: LET S(1)=0
|
14
|
+
320 REM
|
15
|
+
330 DIM L$(20)
|
16
|
+
340 FOR I=1 TO 20: READ L$(I): NEXT I
|
17
|
+
350 DATA "KICK","RECEIVE"," YARD ","RUN BACK FOR ","BALL ON "
|
18
|
+
360 DATA "YARD LINE"," SIMPLE RUN"," TRICKY RUN"," SHORT PASS"
|
19
|
+
370 DATA " LONG PASS","PUNT"," QUICK KICK "," PLACE KICK"," LOSS "
|
20
|
+
380 DATA " NO GAIN","GAIN "," TOUCHDOWN "," TOUCHBACK ","SAFETY***"
|
21
|
+
385 DATA "JUNK"
|
22
|
+
390 LET P=INT(RND(1)*2)
|
23
|
+
400 PRINT O$(P);" WON THE TOSS"
|
24
|
+
410 DEF FNF(X)=1-2*P
|
25
|
+
420 DEF FNG(Z)=P*(X1-X)+(1-P)*(X-X1)
|
26
|
+
430 IF P=0 THEN 470
|
27
|
+
440 PRINT O$(1);" ELECTS TO RECEIVE."
|
28
|
+
450 PRINT
|
29
|
+
460 GOTO 580
|
30
|
+
470 PRINT "DO YOU ELECT TO KICK OR RECEIVE";
|
31
|
+
480 INPUT A$
|
32
|
+
490 PRINT
|
33
|
+
500 FOR E=1 TO 2
|
34
|
+
510 IF A$=L$(E) THEN 550
|
35
|
+
520 NEXT E
|
36
|
+
530 PRINT "INCORRECT ANSWER. PLEASE TYPE 'KICK' OR 'RECIEVE'";
|
37
|
+
540 GOTO 480
|
38
|
+
550 IF E=2 THEN 580
|
39
|
+
560 LET P=1
|
40
|
+
580 LET X=40+(1-P)*20
|
41
|
+
590 LET Y=INT(200*(RND(1)-.5)^3+55)
|
42
|
+
600 PRINT Y;L$(3);" KICKOFF"
|
43
|
+
610 LET X=X-FNF(1)*Y
|
44
|
+
620 IF ABS(X-50)>=50 THEN 700
|
45
|
+
630 LET Y=INT(50*RND(1)^2)+(1-P)*INT(50*RND(1)^4)
|
46
|
+
640 LET X=X+FNF(1)*Y
|
47
|
+
650 IF ABS(X-50)>=50 THEN 655
|
48
|
+
651 PRINT Y;L$(3);" RUNBACK"
|
49
|
+
652 GOTO 720
|
50
|
+
655 PRINT L$(4);
|
51
|
+
660 GOTO 2600
|
52
|
+
700 PRINT "TOUCHBACK FOR ";O$(P);"."
|
53
|
+
710 LET X=20+P*60
|
54
|
+
720 REM FIRST DOWN
|
55
|
+
730 GOSUB 800
|
56
|
+
740 LET X1=X
|
57
|
+
750 LET D=1
|
58
|
+
760 PRINT:PRINT "FIRST DOWN ";O$(P);"***"
|
59
|
+
770 PRINT
|
60
|
+
780 PRINT
|
61
|
+
790 GOTO 860
|
62
|
+
800 REM PRINT POSITION
|
63
|
+
810 IF X>50 THEN 840
|
64
|
+
820 PRINT L$(5);O$(0);X;L$(6)
|
65
|
+
830 GOTO 850
|
66
|
+
840 PRINT L$(5);O$(1);100-X;L$(6)
|
67
|
+
850 RETURN
|
68
|
+
860 REM NEW PLAY
|
69
|
+
870 LET T=T+1
|
70
|
+
880 IF T=30 THEN 1060
|
71
|
+
890 IF T<50 THEN 940
|
72
|
+
900 IF RND(1)>.2 THEN 940
|
73
|
+
910 PRINT "END OF GAME ***"
|
74
|
+
920 PRINT "FINAL SCORE: ";O$(0);": ";S(0);" ";O$(1);": ";S(1)
|
75
|
+
930 STOP
|
76
|
+
940 IF P=1 THEN 1870
|
77
|
+
950 PRINT "NEXT PLAY";
|
78
|
+
960 INPUT Z
|
79
|
+
970 IF Z<>INT(Z) THEN 990
|
80
|
+
980 IF ABS(Z-4)<=3 THEN 1010
|
81
|
+
990 PRINT "ILLEGAL PLAY NUMBER, RETYPE";
|
82
|
+
1000 GOTO 960
|
83
|
+
1010 LET F=0
|
84
|
+
1020 PRINT L$(Z+6);". ";
|
85
|
+
1030 LET R=RND(1)*(.98+FNF(1)*.02)
|
86
|
+
1040 LET R1=RND(1)
|
87
|
+
1050 ON Z GOTO 1110,1150,1260,1480,1570,1570,1680
|
88
|
+
1060 REM JEAN'S SPECIAL
|
89
|
+
1070 IF RND(1)> 1/3 THEN 940
|
90
|
+
1080 PRINT "GAME DELAYED. DOG ON FIELD."
|
91
|
+
1090 PRINT
|
92
|
+
1100 GOTO 940
|
93
|
+
1110 REM SIMPLE RUN
|
94
|
+
1120 LET Y=INT(24*(R-.5)^3+3)
|
95
|
+
1130 IF RND(1)<.05 THEN 1180
|
96
|
+
1140 GOTO 2190
|
97
|
+
1150 REM TRICKY RUN
|
98
|
+
1160 LET Y=INT(20*R-5)
|
99
|
+
1170 IF RND(1)>.1 THEN 2190
|
100
|
+
1180 LET F=-1
|
101
|
+
1190 LET X3=X
|
102
|
+
1200 LET X=X+FNF(1)*Y
|
103
|
+
1210 IF ABS(X-50)>=50 THEN 1240
|
104
|
+
1220 PRINT "*** FUMBLE AFTER ";
|
105
|
+
1230 GOTO 2230
|
106
|
+
1240 PRINT "*** FUMBLE."
|
107
|
+
1250 GOTO 2450
|
108
|
+
1260 REM SHORT PASS
|
109
|
+
1270 LET Y=INT(60*(R1-.5)^3+10)
|
110
|
+
1280 IF R<.05 THEN 1330
|
111
|
+
1290 IF R<.15 THEN 1390
|
112
|
+
1300 IF R<.55 THEN 1420
|
113
|
+
1310 PRINT "COMPLETE. ";
|
114
|
+
1320 GOTO 2190
|
115
|
+
1330 IF D=4 THEN 1420
|
116
|
+
1340 PRINT "INTERCEPTED."
|
117
|
+
1350 LET F=-1
|
118
|
+
1360 LET X=X+FNF(1)*Y
|
119
|
+
1370 IF ABS(X-50)>=50 THEN 2450
|
120
|
+
1380 GOTO 2300
|
121
|
+
1390 PRINT "PASSER TACKLED. ";
|
122
|
+
1400 LET Y=-INT(10*R1)
|
123
|
+
1410 GOTO 2190
|
124
|
+
1420 LET Y=0
|
125
|
+
1430 IF RND(1)<.3 THEN 1460
|
126
|
+
1440 PRINT "INCOMPLETE. ";
|
127
|
+
1450 GOTO 2190
|
128
|
+
1460 PRINT "BATTED DOWN. ";
|
129
|
+
1470 GOTO 2190
|
130
|
+
1480 REM LONG PASS
|
131
|
+
1490 LET Y=INT(160*(R1-.5)^3+30)
|
132
|
+
1500 IF R<.1 THEN 1330
|
133
|
+
1510 IF R<.3 THEN 1540
|
134
|
+
1520 IF R<.75 THEN 1420
|
135
|
+
1530 GOTO 1310
|
136
|
+
1540 PRINT "PASSER TACKLED. ";
|
137
|
+
1550 LET Y=-INT(15*R1+3)
|
138
|
+
1560 GOTO 2190
|
139
|
+
1570 REM PUNT OR KICK
|
140
|
+
1580 LET Y=INT(100*(R-.5)^3+35)
|
141
|
+
1590 IF D=4 THEN 1610
|
142
|
+
1600 LET Y=INT(Y*1.3)
|
143
|
+
1610 PRINT Y;L$(3);" PUNT"
|
144
|
+
1620 IF ABS(X+Y*FNF(1)-50)>=50 THEN 1670
|
145
|
+
1630 IF D<4 THEN 1670
|
146
|
+
1640 LET Y1=INT(R1^2*20)
|
147
|
+
1650 PRINT Y1;L$(3);" RUN BACK"
|
148
|
+
1660 LET Y=Y-Y1
|
149
|
+
1670 GOTO 1350
|
150
|
+
1680 REM PLACE KICK
|
151
|
+
1690 LET Y=INT(100*(R-.5)^3+35)
|
152
|
+
1700 IF R1>.15 THEN 1740
|
153
|
+
1710 PRINT "KICK IS BLOCKED ***"
|
154
|
+
1720 LET X=X-5*FNF(1)
|
155
|
+
1730 LET P=1-P
|
156
|
+
1740 GOTO 720
|
157
|
+
1750 LET X=X+FNF(1)*Y
|
158
|
+
1760 IF ABS(X-50)>=60 THEN 1810
|
159
|
+
1770 PRINT "KICK IS SHORT."
|
160
|
+
1780 IF ABS(X-50)>=50 THEN 2710
|
161
|
+
1790 P=1-P
|
162
|
+
1800 GOTO 630
|
163
|
+
1810 IF R1>.5 THEN 1840
|
164
|
+
1820 PRINT "KICK IS OFF TO THE SIDE."
|
165
|
+
1830 GOTO 2710
|
166
|
+
1840 PRINT "FIELD GOAL ***"
|
167
|
+
1850 LET S(P)=S(P)+3
|
168
|
+
1860 GOTO 2640
|
169
|
+
1870 REM OPPONENT'S PLAY
|
170
|
+
1880 IF D>1 THEN 1940
|
171
|
+
1890 IF RND(1)>1/3 THEN 1920
|
172
|
+
1900 LET Z=3
|
173
|
+
1910 GOTO 1010
|
174
|
+
1920 LET Z=1
|
175
|
+
1930 GOTO 1010
|
176
|
+
1940 IF D=4 THEN 2090
|
177
|
+
1950 IF 10+X-X1<5 THEN 1890
|
178
|
+
1960 IF X<5 THEN 1890
|
179
|
+
1970 IF X<=10 THEN 2160
|
180
|
+
1980 IF X>X1 THEN 2020
|
181
|
+
1990 LET A=INT(2*RND(1))
|
182
|
+
2000 LET Z=2+A*2
|
183
|
+
2010 GOTO 1010
|
184
|
+
2020 IF D<3 THEN 1990
|
185
|
+
2030 IF X<45 THEN 1990
|
186
|
+
2040 IF RND(1)>1/4 THEN 2070
|
187
|
+
2050 LET Z=6
|
188
|
+
2060 GOTO 1010
|
189
|
+
2070 LET Z=4
|
190
|
+
2080 GOTO 1010
|
191
|
+
2090 IF X>30 THEN 2140
|
192
|
+
2100 IF 10+X-X1<3 THEN 1890
|
193
|
+
2110 IF X<3 THEN 1890
|
194
|
+
2120 LET Z=7
|
195
|
+
2130 GOTO 1010
|
196
|
+
2140 LET Z=5
|
197
|
+
2150 GOTO 1010
|
198
|
+
2160 LET A=INT(2*RND(1))
|
199
|
+
2170 LET Z=2+A
|
200
|
+
2180 GOTO 1010
|
201
|
+
2190 REM GAIN OR LOSS
|
202
|
+
2200 LET X3=X
|
203
|
+
2210 LET X=X+FNF(1)*Y
|
204
|
+
2220 IF ABS(X-50)>=50 THEN 2450
|
205
|
+
2230 IF Y=0 THEN 2250
|
206
|
+
2240 PRINT ABS(Y);L$(3);
|
207
|
+
2250 PRINT L$(15+SGN(Y))
|
208
|
+
2280 IF ABS(X3-50)>40 THEN 2300
|
209
|
+
2290 IF RND(1)<.1 THEN 2860
|
210
|
+
2300 GOSUB 800
|
211
|
+
2310 IF F=0 THEN 2340
|
212
|
+
2320 LET P=1-P
|
213
|
+
2330 GOTO 740
|
214
|
+
2340 IF FNG(1)>=10 THEN 740
|
215
|
+
2350 IF D=4 THEN 2320
|
216
|
+
2360 LET D=D+1
|
217
|
+
2370 PRINT "DOWN: ";D;" ";
|
218
|
+
2380 IF (X1-50)*FNF(1)<40 THEN 2410
|
219
|
+
2390 PRINT "GOAL TO GO"
|
220
|
+
2400 GOTO 2420
|
221
|
+
2410 PRINT "YARDS TO GO: ";10-FNG(1)
|
222
|
+
2420 PRINT
|
223
|
+
2430 PRINT
|
224
|
+
2440 GOTO 860
|
225
|
+
2450 REM BALL IN END-ZONE
|
226
|
+
2460 IF X>=100 THEN 2490
|
227
|
+
2470 LET E=0
|
228
|
+
2480 GOTO 2500
|
229
|
+
2490 LET E=1
|
230
|
+
2500 ON 1+E-F*2+P*4 GOTO 2510,2590,2760,2710,2590,2510,2710,2760
|
231
|
+
2510 REM SAFETY
|
232
|
+
2520 LET S(1-P)=S(1-P)+2
|
233
|
+
2530 PRINT L$(19)
|
234
|
+
2540 GOSUB 2800
|
235
|
+
2550 PRINT O$(P);" KICKS OFF FROM ITS 20 YARD LINE."
|
236
|
+
2560 LET X=20+P*60
|
237
|
+
2570 LET P=1-P
|
238
|
+
2580 GOTO 590
|
239
|
+
2590 REM OFFENSIVE TD
|
240
|
+
2600 PRINT L$(17);"***"
|
241
|
+
2610 IF RND(1)>.8 THEN 2680
|
242
|
+
2620 LET S(P)=S(P)+7
|
243
|
+
2630 PRINT "KICK IS GOOD."
|
244
|
+
2640 GOSUB 2800
|
245
|
+
2650 PRINT O$(P);" KICKS OFF"
|
246
|
+
2660 LET P=1-P
|
247
|
+
2670 GOTO 580
|
248
|
+
2680 PRINT "KICK IS OFF TO THE SIDE"
|
249
|
+
2690 LET S(P)=S(P)+6
|
250
|
+
2700 GOTO 2640
|
251
|
+
2710 REM TOUCHBACK
|
252
|
+
2720 PRINT L$(18)
|
253
|
+
2730 LET P=1-P
|
254
|
+
2740 LET X=20+P*60
|
255
|
+
2750 GOTO 720
|
256
|
+
2760 REM DEFENSIVE TD
|
257
|
+
2770 PRINT L$(17);"FOR ";O$(1-P);"***"
|
258
|
+
2780 LET P=1-P
|
259
|
+
2790 GOTO 2600
|
260
|
+
2800 REM SCORE
|
261
|
+
2810 PRINT
|
262
|
+
2820 PRINT "SCORE: ";S(0);" TO ";S(1)
|
263
|
+
2830 PRINT
|
264
|
+
2840 PRINT
|
265
|
+
2850 RETURN
|
266
|
+
2860 REM PENALTY
|
267
|
+
2870 LET P3=INT(2*RND(1))
|
268
|
+
2880 PRINT O$(P3);" OFFSIDES -- PENALTY OF 5 YARDS."
|
269
|
+
2890 PRINT
|
270
|
+
2900 PRINT
|
271
|
+
2910 IF P3=0 THEN 2980
|
272
|
+
2920 PRINT "DO YOU ACCEPT THE PENALTY";
|
273
|
+
2930 INPUT A$
|
274
|
+
2940 IF A$="NO" THEN 2300
|
275
|
+
2950 IF A$="YES" THEN 3110
|
276
|
+
2960 PRINT "TYPE 'YES' OR 'NO'";
|
277
|
+
2970 GOTO 2930
|
278
|
+
2980 REM OPPONENT'S STRATEGY ON PENALTY
|
279
|
+
2990 IF P=1 THEN 3040
|
280
|
+
3000 IF Y<=0 THEN 3080
|
281
|
+
3010 IF F<0 THEN 3080
|
282
|
+
3020 IF FNG(1)<3*D-2 THEN 3080
|
283
|
+
3030 GOTO 3100
|
284
|
+
3040 IF Y<=5 THEN 3100
|
285
|
+
3050 IF F<0 THEN 3100
|
286
|
+
3060 IF D<4 THEN 3080
|
287
|
+
3070 IF FNG(1)<10 THEN 3100
|
288
|
+
3080 PRINT "PENALTY REFUSED."
|
289
|
+
3090 GOTO 2300
|
290
|
+
3100 PRINT "PENALTY ACCEPTED."
|
291
|
+
3110 LET F=0
|
292
|
+
3120 LET D=D-1
|
293
|
+
3130 IF P<>P3 THEN 3160
|
294
|
+
3140 LET X=X3-FNF(1)*5
|
295
|
+
3150 GOTO 2300
|
296
|
+
3160 LET X=X3+FNF(1)*5
|
297
|
+
3170 GOTO 2300
|
298
|
+
3180 END
|
@@ -0,0 +1,315 @@
|
|
1
|
+
FTBALL
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
THIS IS DARTMOUTH CHAMPIONSHIP FOOTBALL.
|
6
|
+
|
7
|
+
YOU WILL QUARTERBACK DARTMOUTH. CALL PLAYS AS FOLLOWS:
|
8
|
+
1= SIMPLE RUN; 2= TRICKY RUN; 3= SHORT PASS;
|
9
|
+
4= LONG PASS; 5= PUNT; 6= QUICK KICK; 7= PLACE KICK.
|
10
|
+
|
11
|
+
CHOOSE YOUR OPPONENT? FOOBAR
|
12
|
+
|
13
|
+
FOOBAR WON THE TOSS
|
14
|
+
FOOBAR ELECTS TO RECEIVE.
|
15
|
+
|
16
|
+
56 YARD KICKOFF
|
17
|
+
18 YARD RUNBACK
|
18
|
+
BALL ON FOOBAR 22 YARD LINE
|
19
|
+
|
20
|
+
FIRST DOWN FOOBAR***
|
21
|
+
|
22
|
+
|
23
|
+
SIMPLE RUN. 3 YARD GAIN
|
24
|
+
BALL ON FOOBAR 25 YARD LINE
|
25
|
+
DOWN: 2 YARDS TO GO: 7
|
26
|
+
|
27
|
+
|
28
|
+
TRICKY RUN. 10 YARD GAIN
|
29
|
+
BALL ON FOOBAR 35 YARD LINE
|
30
|
+
|
31
|
+
FIRST DOWN FOOBAR***
|
32
|
+
|
33
|
+
|
34
|
+
SHORT PASS. PASSER TACKLED. NO GAIN
|
35
|
+
BALL ON FOOBAR 35 YARD LINE
|
36
|
+
DOWN: 2 YARDS TO GO: 10
|
37
|
+
|
38
|
+
|
39
|
+
LONG PASS. COMPLETE. 47 YARD GAIN
|
40
|
+
BALL ON DARTMOUTH 18 YARD LINE
|
41
|
+
|
42
|
+
FIRST DOWN FOOBAR***
|
43
|
+
|
44
|
+
|
45
|
+
SIMPLE RUN. 3 YARD GAIN
|
46
|
+
BALL ON DARTMOUTH 15 YARD LINE
|
47
|
+
DOWN: 2 YARDS TO GO: 7
|
48
|
+
|
49
|
+
|
50
|
+
LONG PASS. BATTED DOWN. NO GAIN
|
51
|
+
BALL ON DARTMOUTH 15 YARD LINE
|
52
|
+
DOWN: 3 YARDS TO GO: 7
|
53
|
+
|
54
|
+
|
55
|
+
TRICKY RUN. 5 YARD GAIN
|
56
|
+
BALL ON DARTMOUTH 10 YARD LINE
|
57
|
+
DOWN: 4 YARDS TO GO: 2
|
58
|
+
|
59
|
+
|
60
|
+
SIMPLE RUN. 4 YARD GAIN
|
61
|
+
BALL ON DARTMOUTH 6 YARD LINE
|
62
|
+
|
63
|
+
FIRST DOWN FOOBAR***
|
64
|
+
|
65
|
+
|
66
|
+
SIMPLE RUN. NO GAIN
|
67
|
+
BALL ON DARTMOUTH 6 YARD LINE
|
68
|
+
DOWN: 2 GOAL TO GO
|
69
|
+
|
70
|
+
|
71
|
+
TRICKY RUN. 3 YARD LOSS
|
72
|
+
BALL ON DARTMOUTH 9 YARD LINE
|
73
|
+
DOWN: 3 GOAL TO GO
|
74
|
+
|
75
|
+
|
76
|
+
SHORT PASS. BATTED DOWN. NO GAIN
|
77
|
+
BALL ON DARTMOUTH 9 YARD LINE
|
78
|
+
DOWN: 4 GOAL TO GO
|
79
|
+
|
80
|
+
|
81
|
+
PLACE KICK. BALL ON DARTMOUTH 9 YARD LINE
|
82
|
+
|
83
|
+
FIRST DOWN FOOBAR***
|
84
|
+
|
85
|
+
|
86
|
+
SIMPLE RUN. 2 YARD GAIN
|
87
|
+
BALL ON DARTMOUTH 7 YARD LINE
|
88
|
+
DOWN: 2 GOAL TO GO
|
89
|
+
|
90
|
+
|
91
|
+
TRICKY RUN. 3 YARD LOSS
|
92
|
+
BALL ON DARTMOUTH 10 YARD LINE
|
93
|
+
DOWN: 3 GOAL TO GO
|
94
|
+
|
95
|
+
|
96
|
+
TRICKY RUN. *** FUMBLE AFTER 2 YARD GAIN
|
97
|
+
BALL ON DARTMOUTH 8 YARD LINE
|
98
|
+
|
99
|
+
FIRST DOWN DARTMOUTH***
|
100
|
+
|
101
|
+
|
102
|
+
NEXT PLAY? 1
|
103
|
+
SIMPLE RUN. 1 YARD GAIN
|
104
|
+
BALL ON DARTMOUTH 9 YARD LINE
|
105
|
+
DOWN: 2 YARDS TO GO: 9
|
106
|
+
|
107
|
+
|
108
|
+
NEXT PLAY? 2
|
109
|
+
TRICKY RUN. 14 YARD GAIN
|
110
|
+
BALL ON DARTMOUTH 23 YARD LINE
|
111
|
+
|
112
|
+
FIRST DOWN DARTMOUTH***
|
113
|
+
|
114
|
+
|
115
|
+
NEXT PLAY? 3
|
116
|
+
SHORT PASS. INTERCEPTED.
|
117
|
+
BALL ON DARTMOUTH 32 YARD LINE
|
118
|
+
|
119
|
+
FIRST DOWN FOOBAR***
|
120
|
+
|
121
|
+
|
122
|
+
SHORT PASS. INCOMPLETE. NO GAIN
|
123
|
+
BALL ON DARTMOUTH 32 YARD LINE
|
124
|
+
DOWN: 2 YARDS TO GO: 10
|
125
|
+
|
126
|
+
|
127
|
+
TRICKY RUN. 8 YARD GAIN
|
128
|
+
BALL ON DARTMOUTH 24 YARD LINE
|
129
|
+
DOWN: 3 YARDS TO GO: 2
|
130
|
+
|
131
|
+
|
132
|
+
SHORT PASS. COMPLETE. 14 YARD GAIN
|
133
|
+
BALL ON DARTMOUTH 10 YARD LINE
|
134
|
+
|
135
|
+
FIRST DOWN FOOBAR***
|
136
|
+
|
137
|
+
|
138
|
+
SIMPLE RUN. 1 YARD GAIN
|
139
|
+
BALL ON DARTMOUTH 9 YARD LINE
|
140
|
+
DOWN: 2 GOAL TO GO
|
141
|
+
|
142
|
+
|
143
|
+
SHORT PASS. INTERCEPTED.
|
144
|
+
TOUCHBACK
|
145
|
+
BALL ON DARTMOUTH 20 YARD LINE
|
146
|
+
|
147
|
+
FIRST DOWN DARTMOUTH***
|
148
|
+
|
149
|
+
|
150
|
+
NEXT PLAY? 4
|
151
|
+
LONG PASS. INTERCEPTED.
|
152
|
+
BALL ON DARTMOUTH 50 YARD LINE
|
153
|
+
|
154
|
+
FIRST DOWN FOOBAR***
|
155
|
+
|
156
|
+
|
157
|
+
SHORT PASS. COMPLETE. 15 YARD GAIN
|
158
|
+
BALL ON DARTMOUTH 35 YARD LINE
|
159
|
+
|
160
|
+
FIRST DOWN FOOBAR***
|
161
|
+
|
162
|
+
|
163
|
+
SIMPLE RUN. 3 YARD GAIN
|
164
|
+
BALL ON DARTMOUTH 32 YARD LINE
|
165
|
+
DOWN: 2 YARDS TO GO: 7
|
166
|
+
|
167
|
+
|
168
|
+
TRICKY RUN. 11 YARD GAIN
|
169
|
+
BALL ON DARTMOUTH 21 YARD LINE
|
170
|
+
|
171
|
+
FIRST DOWN FOOBAR***
|
172
|
+
|
173
|
+
|
174
|
+
SIMPLE RUN. 3 YARD GAIN
|
175
|
+
BALL ON DARTMOUTH 18 YARD LINE
|
176
|
+
DOWN: 2 YARDS TO GO: 7
|
177
|
+
|
178
|
+
|
179
|
+
LONG PASS. INCOMPLETE. NO GAIN
|
180
|
+
BALL ON DARTMOUTH 18 YARD LINE
|
181
|
+
DOWN: 3 YARDS TO GO: 7
|
182
|
+
|
183
|
+
|
184
|
+
TRICKY RUN. NO GAIN
|
185
|
+
BALL ON DARTMOUTH 18 YARD LINE
|
186
|
+
DOWN: 4 YARDS TO GO: 7
|
187
|
+
|
188
|
+
|
189
|
+
PLACE KICK. KICK IS BLOCKED ***
|
190
|
+
BALL ON DARTMOUTH 23 YARD LINE
|
191
|
+
|
192
|
+
FIRST DOWN DARTMOUTH***
|
193
|
+
|
194
|
+
|
195
|
+
NEXT PLAY? 5
|
196
|
+
PUNT. 44 YARD PUNT
|
197
|
+
BALL ON FOOBAR 33 YARD LINE
|
198
|
+
|
199
|
+
FIRST DOWN FOOBAR***
|
200
|
+
|
201
|
+
|
202
|
+
SIMPLE RUN. 3 YARD GAIN
|
203
|
+
BALL ON FOOBAR 36 YARD LINE
|
204
|
+
DOWN: 2 YARDS TO GO: 7
|
205
|
+
|
206
|
+
|
207
|
+
LONG PASS. INCOMPLETE. NO GAIN
|
208
|
+
BALL ON FOOBAR 36 YARD LINE
|
209
|
+
DOWN: 3 YARDS TO GO: 7
|
210
|
+
|
211
|
+
|
212
|
+
LONG PASS. INTERCEPTED.
|
213
|
+
BALL ON DARTMOUTH 23 YARD LINE
|
214
|
+
|
215
|
+
FIRST DOWN DARTMOUTH***
|
216
|
+
|
217
|
+
|
218
|
+
NEXT PLAY? 6
|
219
|
+
QUICK KICK . 45 YARD PUNT
|
220
|
+
BALL ON FOOBAR 32 YARD LINE
|
221
|
+
|
222
|
+
FIRST DOWN FOOBAR***
|
223
|
+
|
224
|
+
|
225
|
+
SHORT PASS. COMPLETE. 7 YARD GAIN
|
226
|
+
BALL ON FOOBAR 39 YARD LINE
|
227
|
+
DOWN: 2 YARDS TO GO: 3
|
228
|
+
|
229
|
+
|
230
|
+
SHORT PASS. COMPLETE. 11 YARD GAIN
|
231
|
+
BALL ON DARTMOUTH 50 YARD LINE
|
232
|
+
|
233
|
+
FIRST DOWN FOOBAR***
|
234
|
+
|
235
|
+
|
236
|
+
SIMPLE RUN. 1 YARD GAIN
|
237
|
+
BALL ON DARTMOUTH 49 YARD LINE
|
238
|
+
DOWN: 2 YARDS TO GO: 9
|
239
|
+
|
240
|
+
|
241
|
+
LONG PASS. COMPLETE. 37 YARD GAIN
|
242
|
+
DARTMOUTH OFFSIDES -- PENALTY OF 5 YARDS.
|
243
|
+
|
244
|
+
|
245
|
+
PENALTY REFUSED.
|
246
|
+
BALL ON DARTMOUTH 12 YARD LINE
|
247
|
+
|
248
|
+
FIRST DOWN FOOBAR***
|
249
|
+
|
250
|
+
|
251
|
+
SIMPLE RUN. 2 YARD GAIN
|
252
|
+
BALL ON DARTMOUTH 10 YARD LINE
|
253
|
+
DOWN: 2 YARDS TO GO: 8
|
254
|
+
|
255
|
+
|
256
|
+
TRICKY RUN. TOUCHDOWN ***
|
257
|
+
KICK IS OFF TO THE SIDE
|
258
|
+
|
259
|
+
SCORE: 0 TO 6
|
260
|
+
|
261
|
+
|
262
|
+
FOOBAR KICKS OFF
|
263
|
+
56 YARD KICKOFF
|
264
|
+
0 YARD RUNBACK
|
265
|
+
BALL ON DARTMOUTH 4 YARD LINE
|
266
|
+
|
267
|
+
FIRST DOWN DARTMOUTH***
|
268
|
+
|
269
|
+
|
270
|
+
NEXT PLAY? 7
|
271
|
+
PLACE KICK. BALL ON DARTMOUTH 4 YARD LINE
|
272
|
+
|
273
|
+
FIRST DOWN DARTMOUTH***
|
274
|
+
|
275
|
+
|
276
|
+
NEXT PLAY? 1
|
277
|
+
SIMPLE RUN. 2 YARD GAIN
|
278
|
+
BALL ON DARTMOUTH 6 YARD LINE
|
279
|
+
DOWN: 2 YARDS TO GO: 8
|
280
|
+
|
281
|
+
|
282
|
+
NEXT PLAY? 2
|
283
|
+
TRICKY RUN. 5 YARD GAIN
|
284
|
+
BALL ON DARTMOUTH 11 YARD LINE
|
285
|
+
DOWN: 3 YARDS TO GO: 3
|
286
|
+
|
287
|
+
|
288
|
+
NEXT PLAY? 3
|
289
|
+
SHORT PASS. BATTED DOWN. NO GAIN
|
290
|
+
BALL ON DARTMOUTH 11 YARD LINE
|
291
|
+
DOWN: 4 YARDS TO GO: 3
|
292
|
+
|
293
|
+
|
294
|
+
NEXT PLAY? 4
|
295
|
+
LONG PASS. COMPLETE. 32 YARD GAIN
|
296
|
+
BALL ON DARTMOUTH 43 YARD LINE
|
297
|
+
|
298
|
+
FIRST DOWN DARTMOUTH***
|
299
|
+
|
300
|
+
|
301
|
+
NEXT PLAY? 5
|
302
|
+
PUNT. 41 YARD PUNT
|
303
|
+
BALL ON FOOBAR 16 YARD LINE
|
304
|
+
|
305
|
+
FIRST DOWN FOOBAR***
|
306
|
+
|
307
|
+
|
308
|
+
SHORT PASS. INCOMPLETE. NO GAIN
|
309
|
+
BALL ON FOOBAR 16 YARD LINE
|
310
|
+
DOWN: 2 YARDS TO GO: 10
|
311
|
+
|
312
|
+
|
313
|
+
END OF GAME ***
|
314
|
+
FINAL SCORE: DARTMOUTH: 0 FOOBAR: 6
|
315
|
+
Break in line 930
|