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,22 @@
|
|
1
|
+
NAME
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
HELLO.
|
7
|
+
MY NAME IS CREATIVE COMPUTER.
|
8
|
+
WHAT'S YOUR NAME (FIRST AND LAST? FRED FLINSTONE
|
9
|
+
|
10
|
+
THANK YOU, ENOTSNILF DERF.
|
11
|
+
OOPS! I GUESS I GOT IT BACKWARDS. A SMART
|
12
|
+
COMPUTER LIKE ME SHOULDN'T MAKE A MISTAKE LIKE THAT!
|
13
|
+
|
14
|
+
BUT I JUST NOTICED YOUR LETTERS ARE OUT OF ORDER.
|
15
|
+
LET'S PUT THEM IN ORDER LIKE THIS: DEEFFILNNORST
|
16
|
+
|
17
|
+
DON'T YOU LIKE THAT BETTER? YES
|
18
|
+
|
19
|
+
I KNEW YOU'D AGREE!!
|
20
|
+
|
21
|
+
I REALLY ENJOYED MEETING YOU FRED FLINSTONE.
|
22
|
+
HAVE A NICE DAY!
|
@@ -0,0 +1,34 @@
|
|
1
|
+
2 PRINT TAB(33);"NICOMA"
|
2
|
+
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
6 PRINT: PRINT: PRINT
|
4
|
+
10 PRINT "BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!"
|
5
|
+
20 PRINT
|
6
|
+
30 PRINT "PLEASE THINK OF A NUMBER BETWEEN 1 AND 100."
|
7
|
+
40 PRINT "YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF";
|
8
|
+
45 INPUT A
|
9
|
+
50 PRINT "YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF";
|
10
|
+
55 INPUT B
|
11
|
+
60 PRINT "YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF";
|
12
|
+
65 INPUT C
|
13
|
+
70 PRINT
|
14
|
+
80 PRINT "LET ME THINK A MOMENT..."
|
15
|
+
85 PRINT
|
16
|
+
90 FOR I=1 TO 1500: NEXT I
|
17
|
+
100 D=70*A+21*B+15*C
|
18
|
+
110 IF D<=105 THEN 140
|
19
|
+
120 D=D-105
|
20
|
+
130 GOTO 110
|
21
|
+
140 PRINT "YOUR NUMBER WAS";D;", RIGHT";
|
22
|
+
160 INPUT A$
|
23
|
+
165 PRINT
|
24
|
+
170 IF A$="YES" THEN 220
|
25
|
+
180 IF A$="NO" THEN 240
|
26
|
+
190 PRINT "EH? I DON'T UNDERSTAND '";A$;"' TRY 'YES' OR 'NO'."
|
27
|
+
200 GOTO 160
|
28
|
+
220 PRINT "HOW ABOUT THAT!!"
|
29
|
+
230 GOTO 250
|
30
|
+
240 PRINT "I FEEL YOUR ARITHMETIC IS IN ERROR."
|
31
|
+
250 PRINT
|
32
|
+
260 PRINT "LET'S TRY ANOTHER."
|
33
|
+
270 GOTO 20
|
34
|
+
999 END
|
@@ -0,0 +1,36 @@
|
|
1
|
+
NICOMA
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!
|
7
|
+
|
8
|
+
PLEASE THINK OF A NUMBER BETWEEN 1 AND 100.
|
9
|
+
YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF? 2
|
10
|
+
YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF? 0
|
11
|
+
YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF? 1
|
12
|
+
|
13
|
+
LET ME THINK A MOMENT...
|
14
|
+
|
15
|
+
YOUR NUMBER WAS 50 , RIGHT? YES
|
16
|
+
|
17
|
+
HOW ABOUT THAT!!
|
18
|
+
|
19
|
+
LET'S TRY ANOTHER.
|
20
|
+
|
21
|
+
PLEASE THINK OF A NUMBER BETWEEN 1 AND 100.
|
22
|
+
YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF? 1
|
23
|
+
YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF? 1
|
24
|
+
YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF? 1
|
25
|
+
|
26
|
+
LET ME THINK A MOMENT...
|
27
|
+
|
28
|
+
YOUR NUMBER WAS 1 , RIGHT? NO
|
29
|
+
|
30
|
+
I FEEL YOUR ARITHMETIC IS IN ERROR.
|
31
|
+
|
32
|
+
LET'S TRY ANOTHER.
|
33
|
+
|
34
|
+
PLEASE THINK OF A NUMBER BETWEEN 1 AND 100.
|
35
|
+
YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF?
|
36
|
+
Error on line 45: No more input
|
@@ -0,0 +1,156 @@
|
|
1
|
+
100 PRINT TAB(33);"NIM"
|
2
|
+
110 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
120 PRINT:PRINT:PRINT
|
4
|
+
210 DIM A(100),B(100,10),D(2)
|
5
|
+
220 PRINT "THIS IS THE GAME OF NIM."
|
6
|
+
230 PRINT "DO YOU WANT INSTRUCTIONS";
|
7
|
+
240 INPUT Z$
|
8
|
+
250 IF Z$="NO" THEN 440
|
9
|
+
260 IF Z$="no" THEN 440
|
10
|
+
270 IF Z$="YES" THEN 310
|
11
|
+
280 IF Z$="yes" THEN 310
|
12
|
+
290 PRINT "PLEASE ANSWER YES OR NO"
|
13
|
+
300 GOTO 240
|
14
|
+
310 PRINT "THE GAME IS PLAYED WITH A NUMBER OF PILES OF OBJECTS."
|
15
|
+
320 PRINT "ANY NUMBER OF OBJECTS ARE REMOVED FROM ONE PILE BY YOU AND"
|
16
|
+
330 PRINT "THE MACHINE ALTERNATELY. ON YOUR TURN, YOU MAY TAKE"
|
17
|
+
340 PRINT "ALL THE OBJECTS THAT REMAIN IN ANY PILE, BUT YOU MUST"
|
18
|
+
350 PRINT "TAKE AT LEAST ONE OBJECT, AND YOU MAY TAKE OBJECTS FROM"
|
19
|
+
360 PRINT "ONLY ONE PILE ON A SINGLE TURN. YOU MUST SPECIFY WHETHER"
|
20
|
+
370 PRINT "WINNING IS DEFINED AS TAKING OR NOT TAKING THE LAST OBJECT,"
|
21
|
+
380 PRINT "THE NUMBER OF PILES IN THE GAME, AND HOW MANY OBJECTS ARE"
|
22
|
+
390 PRINT "ORIGINALLY IN EACH PILE. EACH PILE MAY CONTAIN A"
|
23
|
+
400 PRINT "DIFFERENT NUMBER OF OBJECTS."
|
24
|
+
410 PRINT "THE MACHINE WILL SHOW ITS MOVE BY LISTING EACH PILE AND THE"
|
25
|
+
420 PRINT "NUMBER OF OBJECTS REMAINING IN THE PILES AFTER EACH OF ITS"
|
26
|
+
430 PRINT "MOVES."
|
27
|
+
440 PRINT
|
28
|
+
450 PRINT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST";
|
29
|
+
460 INPUT W
|
30
|
+
470 IF W=1 THEN 490
|
31
|
+
480 IF W<>2 THEN 450
|
32
|
+
490 PRINT "ENTER NUMBER OF PILES";
|
33
|
+
500 INPUT N
|
34
|
+
510 IF N>100 THEN 490
|
35
|
+
520 IF N<1 THEN 490
|
36
|
+
530 IF N<>INT(N) THEN 490
|
37
|
+
540 PRINT "ENTER PILE SIZES"
|
38
|
+
550 FOR I=1 TO N
|
39
|
+
560 PRINT I;
|
40
|
+
570 INPUT A(I)
|
41
|
+
580 IF A(I)>2000 THEN 560
|
42
|
+
590 IF A(I)<1 THEN 560
|
43
|
+
600 IF A(I)<>INT(A(I)) THEN 560
|
44
|
+
610 NEXT I
|
45
|
+
620 PRINT "DO YOU WANT TO MOVE FIRST";
|
46
|
+
630 INPUT Q9$
|
47
|
+
640 IF Q9$="YES" THEN 1450
|
48
|
+
650 IF Q9$="yes" THEN 1450
|
49
|
+
660 IF Q9$="NO" THEN 700
|
50
|
+
670 IF Q9$="no" THEN 700
|
51
|
+
680 PRINT "PLEASE ANSWER YES OR NO."
|
52
|
+
690 GOTO 630
|
53
|
+
700 IF W=1 THEN 940
|
54
|
+
710 LET C=0
|
55
|
+
720 FOR I=1 TO N
|
56
|
+
730 IF A(I)=0 THEN 770
|
57
|
+
740 LET C=C+1
|
58
|
+
750 IF C=3 THEN 840
|
59
|
+
760 LET D(C)=I
|
60
|
+
770 NEXT I
|
61
|
+
780 IF C=2 THEN 920
|
62
|
+
790 IF A(D(1))>1 THEN 820
|
63
|
+
800 PRINT "MACHINE LOSES"
|
64
|
+
810 GOTO 1640
|
65
|
+
820 PRINT "MACHINE WINS"
|
66
|
+
830 GOTO 1640
|
67
|
+
840 LET C=0
|
68
|
+
850 FOR I=1 TO N
|
69
|
+
860 IF A(I)>1 THEN 940
|
70
|
+
870 IF A(I)=0 THEN 890
|
71
|
+
880 LET C=C+1
|
72
|
+
890 NEXT I
|
73
|
+
900 IF C/2<>INT(C/2) THEN 800
|
74
|
+
910 GOTO 940
|
75
|
+
920 IF A(D(1))=1 THEN 820
|
76
|
+
930 IF A(D(2))=1 THEN 820
|
77
|
+
940 FOR I=1 TO N
|
78
|
+
950 LET E=A(I)
|
79
|
+
960 FOR J=0 TO 10
|
80
|
+
970 LET F=E/2
|
81
|
+
980 LET B(I,J)=2*(F-INT(F))
|
82
|
+
990 LET E=INT(F)
|
83
|
+
1000 NEXT J
|
84
|
+
1010 NEXT I
|
85
|
+
1020 FOR J=10 TO 0 STEP -1
|
86
|
+
1030 LET C=0
|
87
|
+
1040 LET H=0
|
88
|
+
1050 FOR I=1 TO N
|
89
|
+
1060 IF B(I,J)=0 THEN 1110
|
90
|
+
1070 LET C=C+1
|
91
|
+
1080 IF A(I)<=H THEN 1110
|
92
|
+
1090 LET H=A(I)
|
93
|
+
1100 LET G=I
|
94
|
+
1110 NEXT I
|
95
|
+
1120 IF C/2<>INT(C/2) THEN 1190
|
96
|
+
1130 NEXT J
|
97
|
+
1140 LET E=INT(N*RND(1)+1)
|
98
|
+
1150 IF A(E)=0 THEN 1140
|
99
|
+
1160 LET F=INT(A(E)*RND(1)+1)
|
100
|
+
1170 LET A(E)=A(E)-F
|
101
|
+
1180 GOTO 1380
|
102
|
+
1190 LET A(G)=0
|
103
|
+
1200 FOR J=0 TO 10
|
104
|
+
1210 LET B(G,J)=0
|
105
|
+
1220 LET C=0
|
106
|
+
1230 FOR I=1 TO N
|
107
|
+
1240 IF B(I,J)=0 THEN 1260
|
108
|
+
1250 LET C=C+1
|
109
|
+
1260 NEXT I
|
110
|
+
1270 LET A(G)=A(G)+2*(C/2-INT(C/2))*2^J
|
111
|
+
1280 NEXT J
|
112
|
+
1290 IF W=1 THEN 1380
|
113
|
+
1300 LET C=0
|
114
|
+
1310 FOR I=1 TO N
|
115
|
+
1320 IF A(I)>1 THEN 1380
|
116
|
+
1330 IF A(I)=0 THEN 1350
|
117
|
+
1340 LET C=C+1
|
118
|
+
1350 NEXT I
|
119
|
+
1360 IF C/2<>INT(C/2) THEN 1380
|
120
|
+
1370 LET A(G)=1-A(G)
|
121
|
+
1380 PRINT "PILE SIZE"
|
122
|
+
1390 FOR I=1 TO N
|
123
|
+
1400 PRINT I;A(I)
|
124
|
+
1410 NEXT I
|
125
|
+
1420 IF W=2 THEN 1450
|
126
|
+
1430 GOSUB 1570
|
127
|
+
1440 IF Z=1 THEN 820
|
128
|
+
1450 PRINT "YOUR MOVE - PILE, NUMBER TO BE REMOVED";
|
129
|
+
1460 INPUT X,Y
|
130
|
+
1470 IF X>N THEN 1450
|
131
|
+
1480 IF X<1 THEN 1450
|
132
|
+
1490 IF X<>INT(X) THEN 1450
|
133
|
+
1500 IF Y>A(X) THEN 1450
|
134
|
+
1510 IF Y<1 THEN 1450
|
135
|
+
1520 IF Y<>INT(Y) THEN 1450
|
136
|
+
1530 LET A(X)=A(X)-Y
|
137
|
+
1540 GOSUB 1570
|
138
|
+
1550 IF Z=1 THEN 800
|
139
|
+
1560 GOTO 700
|
140
|
+
1570 LET Z=0
|
141
|
+
1580 FOR I=1 TO N
|
142
|
+
1590 IF A(I)=0 THEN 1610
|
143
|
+
1600 RETURN
|
144
|
+
1610 NEXT I
|
145
|
+
1620 LET Z=1
|
146
|
+
1630 RETURN
|
147
|
+
1640 PRINT "do you want to play another game";
|
148
|
+
1650 INPUT Q9$
|
149
|
+
1660 IF Q9$="YES" GOTO 1720
|
150
|
+
1670 IF Q9$="yes" GOTO 1720
|
151
|
+
1680 IF Q9$="NO" GOTO 1730
|
152
|
+
1690 IF Q9$="no" GOTO 1730
|
153
|
+
1700 PRINT "PLEASE. YES OR NO."
|
154
|
+
1710 GOTO 1650
|
155
|
+
1720 GOTO 440
|
156
|
+
1730 END
|
@@ -0,0 +1,30 @@
|
|
1
|
+
NIM
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
THIS IS THE GAME OF NIM.
|
7
|
+
DO YOU WANT INSTRUCTIONS? YES
|
8
|
+
THE GAME IS PLAYED WITH A NUMBER OF PILES OF OBJECTS.
|
9
|
+
ANY NUMBER OF OBJECTS ARE REMOVED FROM ONE PILE BY YOU AND
|
10
|
+
THE MACHINE ALTERNATELY. ON YOUR TURN, YOU MAY TAKE
|
11
|
+
ALL THE OBJECTS THAT REMAIN IN ANY PILE, BUT YOU MUST
|
12
|
+
TAKE AT LEAST ONE OBJECT, AND YOU MAY TAKE OBJECTS FROM
|
13
|
+
ONLY ONE PILE ON A SINGLE TURN. YOU MUST SPECIFY WHETHER
|
14
|
+
WINNING IS DEFINED AS TAKING OR NOT TAKING THE LAST OBJECT,
|
15
|
+
THE NUMBER OF PILES IN THE GAME, AND HOW MANY OBJECTS ARE
|
16
|
+
ORIGINALLY IN EACH PILE. EACH PILE MAY CONTAIN A
|
17
|
+
DIFFERENT NUMBER OF OBJECTS.
|
18
|
+
THE MACHINE WILL SHOW ITS MOVE BY LISTING EACH PILE AND THE
|
19
|
+
NUMBER OF OBJECTS REMAINING IN THE PILES AFTER EACH OF ITS
|
20
|
+
MOVES.
|
21
|
+
|
22
|
+
ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST? 2
|
23
|
+
ENTER NUMBER OF PILES? 2
|
24
|
+
ENTER PILE SIZES
|
25
|
+
1 ? 10
|
26
|
+
2 ? 6
|
27
|
+
DO YOU WANT TO MOVE FIRST? YES
|
28
|
+
YOUR MOVE - PILE, NUMBER TO BE REMOVED? 1,10
|
29
|
+
MACHINE WINS
|
30
|
+
do you want to play another game? NO
|
@@ -0,0 +1,37 @@
|
|
1
|
+
1 PRINT TAB(33);"NUMBER"
|
2
|
+
2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
3 PRINT:PRINT:PRINT
|
4
|
+
4 PRINT "YOU HAVE 100 POINTS. BY GUESSING NUMBERS FROM 1 TO 5, YOU"
|
5
|
+
5 PRINT "CAN GAIN OR LOSE POINTS DEPENDING UPON HOW CLOSE YOU GET TO"
|
6
|
+
6 PRINT "A RANDOM NUMBER SELECTED BY THE COMPUTER.": PRINT
|
7
|
+
7 PRINT "YOU OCCASIONALLY WILL GET A JACKPOT WHICH WILL DOUBLE(!)"
|
8
|
+
8 PRINT "YOUR POINT COUNT. YOU WIN WHEN YOU GET 500 POINTS."
|
9
|
+
9 PRINT: P=100
|
10
|
+
10 DEF FNR(X)=INT(5*RND(1)+1)
|
11
|
+
12 INPUT "GUESS A NUMBER FROM 1 TO 5";G
|
12
|
+
15 R=FNR(1)
|
13
|
+
16 S=FNR(1)
|
14
|
+
17 T=FNR(1)
|
15
|
+
18 U=FNR(1)
|
16
|
+
19 V=FNR(1)
|
17
|
+
20 IF G=R THEN 30
|
18
|
+
21 IF G=S THEN 40
|
19
|
+
22 IF G=T THEN 50
|
20
|
+
23 IF G=U THEN 60
|
21
|
+
24 IF G=V THEN 70
|
22
|
+
25 IF G>5 THEN 12
|
23
|
+
30 P=P-5
|
24
|
+
35 GOTO 80
|
25
|
+
40 P=P+5
|
26
|
+
45 GOTO 80
|
27
|
+
50 P=P+P
|
28
|
+
53 PRINT "YOU HIT THE JACKPOT!!!"
|
29
|
+
55 GOTO 80
|
30
|
+
60 P=P+1
|
31
|
+
65 GOTO 80
|
32
|
+
70 P=P-(P*.5)
|
33
|
+
80 IF P>500 THEN 90
|
34
|
+
82 PRINT "YOU HAVE";P;"POINTS.":PRINT
|
35
|
+
85 GOTO 12
|
36
|
+
90 PRINT "!!!!YOU WIN!!!! WITH ";P;"POINTS."
|
37
|
+
99 END
|
@@ -0,0 +1,73 @@
|
|
1
|
+
NUMBER
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
YOU HAVE 100 POINTS. BY GUESSING NUMBERS FROM 1 TO 5, YOU
|
7
|
+
CAN GAIN OR LOSE POINTS DEPENDING UPON HOW CLOSE YOU GET TO
|
8
|
+
A RANDOM NUMBER SELECTED BY THE COMPUTER.
|
9
|
+
|
10
|
+
YOU OCCASIONALLY WILL GET A JACKPOT WHICH WILL DOUBLE(!)
|
11
|
+
YOUR POINT COUNT. YOU WIN WHEN YOU GET 500 POINTS.
|
12
|
+
|
13
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
14
|
+
YOU HAVE 95 POINTS.
|
15
|
+
|
16
|
+
GUESS A NUMBER FROM 1 TO 5? 2
|
17
|
+
YOU HAVE 47.5 POINTS.
|
18
|
+
|
19
|
+
GUESS A NUMBER FROM 1 TO 5? 1
|
20
|
+
YOU HAVE 23.75 POINTS.
|
21
|
+
|
22
|
+
GUESS A NUMBER FROM 1 TO 5? 4
|
23
|
+
YOU HAVE 24.75 POINTS.
|
24
|
+
|
25
|
+
GUESS A NUMBER FROM 1 TO 5? 5
|
26
|
+
YOU HAVE 19.75 POINTS.
|
27
|
+
|
28
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
29
|
+
YOU HAVE 20.75 POINTS.
|
30
|
+
|
31
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
32
|
+
YOU HIT THE JACKPOT!!!
|
33
|
+
YOU HAVE 41.5 POINTS.
|
34
|
+
|
35
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
36
|
+
YOU HAVE 36.5 POINTS.
|
37
|
+
|
38
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
39
|
+
YOU HAVE 41.5 POINTS.
|
40
|
+
|
41
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
42
|
+
YOU HAVE 36.5 POINTS.
|
43
|
+
|
44
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
45
|
+
YOU HAVE 31.5 POINTS.
|
46
|
+
|
47
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
48
|
+
YOU HAVE 32.5 POINTS.
|
49
|
+
|
50
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
51
|
+
YOU HAVE 27.5 POINTS.
|
52
|
+
|
53
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
54
|
+
YOU HAVE 22.5 POINTS.
|
55
|
+
|
56
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
57
|
+
YOU HAVE 27.5 POINTS.
|
58
|
+
|
59
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
60
|
+
YOU HAVE 22.5 POINTS.
|
61
|
+
|
62
|
+
GUESS A NUMBER FROM 1 TO 5? 3
|
63
|
+
YOU HAVE 27.5 POINTS.
|
64
|
+
|
65
|
+
GUESS A NUMBER FROM 1 TO 5? 2
|
66
|
+
YOU HAVE 22.5 POINTS.
|
67
|
+
|
68
|
+
GUESS A NUMBER FROM 1 TO 5? 1
|
69
|
+
YOU HIT THE JACKPOT!!!
|
70
|
+
YOU HAVE 45 POINTS.
|
71
|
+
|
72
|
+
GUESS A NUMBER FROM 1 TO 5?
|
73
|
+
Error on line 12: No more input
|
@@ -0,0 +1,86 @@
|
|
1
|
+
2 PRINT TAB(30);"ONE CHECK"
|
2
|
+
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
6 PRINT: PRINT: PRINT
|
4
|
+
8 DIM A(64)
|
5
|
+
10 PRINT "SOLITAIRE CHECKER PUZZLE BY DAVID AHL"
|
6
|
+
15 PRINT
|
7
|
+
20 PRINT "48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A"
|
8
|
+
25 PRINT "STANDARD 64-SQUARE CHECKERBOARD. THE OBJECT IS TO"
|
9
|
+
30 PRINT "REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS"
|
10
|
+
35 PRINT "(AS IN STANDARD CHECKERS). USE THE NUMBERED BOARD TO"
|
11
|
+
40 PRINT "INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO. ON"
|
12
|
+
45 PRINT "THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A"
|
13
|
+
50 PRINT "CHECKER AND '0' AN EMPTY SQUARE. WHEN YOU HAVE NO"
|
14
|
+
55 PRINT "POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO"
|
15
|
+
60 PRINT "QUESTION 'JUMP FROM ?'"
|
16
|
+
62 PRINT
|
17
|
+
63 PRINT "HERE IS THE NUMERICAL BOARD:"
|
18
|
+
66 PRINT
|
19
|
+
70 FOR J=1 TO 57 STEP 8
|
20
|
+
74 PRINT J;TAB(4);J+1;TAB(8);J+2;TAB(12);J+3;TAB(16);J+4;TAB(20);J+5;
|
21
|
+
75 PRINT TAB(24);J+6;TAB(28);J+7
|
22
|
+
76 NEXT J
|
23
|
+
77 PRINT
|
24
|
+
78 PRINT "AND HERE IS THE OPENING POSITION OF THE CHECKERS."
|
25
|
+
79 PRINT
|
26
|
+
80 FOR J=1 TO 64
|
27
|
+
82 A(J)=1
|
28
|
+
84 NEXT J
|
29
|
+
86 FOR J=19 TO 43 STEP 8
|
30
|
+
88 FOR I=J TO J+3
|
31
|
+
90 A(I)=0
|
32
|
+
92 NEXT I
|
33
|
+
94 NEXT J
|
34
|
+
96 M=0
|
35
|
+
98 GOTO 340
|
36
|
+
100 INPUT "JUMP FROM";F
|
37
|
+
105 IF F=0 THEN 500
|
38
|
+
110 INPUT "TO";T
|
39
|
+
112 PRINT
|
40
|
+
118 REM *** CHECK LEGALITY OF MOVE
|
41
|
+
120 F1=INT((F-1)/8)
|
42
|
+
130 F2=F-8*F1
|
43
|
+
140 T1=INT((T-1)/8)
|
44
|
+
150 T2=T-8*T1
|
45
|
+
160 IF F1>7 THEN 230
|
46
|
+
170 IF T1>7 THEN 230
|
47
|
+
180 IF F2>8 THEN 230
|
48
|
+
190 IF T2>8 THEN 230
|
49
|
+
200 IF ABS(F1-T1)<>2 THEN 230
|
50
|
+
210 IF ABS(F2-T2)<>2 THEN 230
|
51
|
+
212 IF A((T+F)/2)=0 THEN 230
|
52
|
+
215 IF A(F)=0 THEN 230
|
53
|
+
220 IF A(T)=1 THEN 230
|
54
|
+
225 GOTO 250
|
55
|
+
230 PRINT "ILLEGAL MOVE. TRY AGAIN..."
|
56
|
+
240 GOTO 100
|
57
|
+
245 REM *** UPDATE BOARD
|
58
|
+
250 A(T)=1
|
59
|
+
260 A(F)=0
|
60
|
+
270 A((T+F)/2)=0
|
61
|
+
290 M=M+1
|
62
|
+
310 REM *** PRINT BOARD
|
63
|
+
340 FOR J=1 TO 57 STEP 8
|
64
|
+
350 FOR I=J TO J+7
|
65
|
+
360 PRINT A(I);
|
66
|
+
370 NEXT I
|
67
|
+
380 PRINT
|
68
|
+
390 NEXT J
|
69
|
+
400 PRINT
|
70
|
+
410 GOTO 100
|
71
|
+
490 REM *** END GAME SUMMARY
|
72
|
+
500 S=0
|
73
|
+
510 FOR I=1 TO 64
|
74
|
+
520 S=S+A(I)
|
75
|
+
530 NEXT I
|
76
|
+
540 PRINT:PRINT "YOU MADE";M;"JUMPS AND HAD";S;"PIECES"
|
77
|
+
550 PRINT "REMAINING ON THE BOARD."
|
78
|
+
560 PRINT
|
79
|
+
562 INPUT "TRY AGAIN";A$
|
80
|
+
570 IF A$="YES" THEN 70
|
81
|
+
575 IF A$="NO" THEN 600
|
82
|
+
580 PRINT "PLEASE ANSWER 'YES' OR 'NO'."
|
83
|
+
590 GOTO 562
|
84
|
+
600 PRINT
|
85
|
+
610 PRINT "O.K. HOPE YOU HAD FUN!!"
|
86
|
+
999 END
|
@@ -0,0 +1,77 @@
|
|
1
|
+
ONE CHECK
|
2
|
+
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
SOLITAIRE CHECKER PUZZLE BY DAVID AHL
|
7
|
+
|
8
|
+
48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A
|
9
|
+
STANDARD 64-SQUARE CHECKERBOARD. THE OBJECT IS TO
|
10
|
+
REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS
|
11
|
+
(AS IN STANDARD CHECKERS). USE THE NUMBERED BOARD TO
|
12
|
+
INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO. ON
|
13
|
+
THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A
|
14
|
+
CHECKER AND '0' AN EMPTY SQUARE. WHEN YOU HAVE NO
|
15
|
+
POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO
|
16
|
+
QUESTION 'JUMP FROM ?'
|
17
|
+
|
18
|
+
HERE IS THE NUMERICAL BOARD:
|
19
|
+
|
20
|
+
1 2 3 4 5 6 7 8
|
21
|
+
9 10 11 12 13 14 15 16
|
22
|
+
17 18 19 20 21 22 23 24
|
23
|
+
25 26 27 28 29 30 31 32
|
24
|
+
33 34 35 36 37 38 39 40
|
25
|
+
41 42 43 44 45 46 47 48
|
26
|
+
49 50 51 52 53 54 55 56
|
27
|
+
57 58 59 60 61 62 63 64
|
28
|
+
|
29
|
+
AND HERE IS THE OPENING POSITION OF THE CHECKERS.
|
30
|
+
|
31
|
+
1 1 1 1 1 1 1 1
|
32
|
+
1 1 1 1 1 1 1 1
|
33
|
+
1 1 0 0 0 0 1 1
|
34
|
+
1 1 0 0 0 0 1 1
|
35
|
+
1 1 0 0 0 0 1 1
|
36
|
+
1 1 0 0 0 0 1 1
|
37
|
+
1 1 1 1 1 1 1 1
|
38
|
+
1 1 1 1 1 1 1 1
|
39
|
+
|
40
|
+
JUMP FROM? 1
|
41
|
+
TO? 19
|
42
|
+
|
43
|
+
0 1 1 1 1 1 1 1
|
44
|
+
1 0 1 1 1 1 1 1
|
45
|
+
1 1 1 0 0 0 1 1
|
46
|
+
1 1 0 0 0 0 1 1
|
47
|
+
1 1 0 0 0 0 1 1
|
48
|
+
1 1 0 0 0 0 1 1
|
49
|
+
1 1 1 1 1 1 1 1
|
50
|
+
1 1 1 1 1 1 1 1
|
51
|
+
|
52
|
+
JUMP FROM? 2
|
53
|
+
TO? 20
|
54
|
+
|
55
|
+
0 0 1 1 1 1 1 1
|
56
|
+
1 0 0 1 1 1 1 1
|
57
|
+
1 1 1 1 0 0 1 1
|
58
|
+
1 1 0 0 0 0 1 1
|
59
|
+
1 1 0 0 0 0 1 1
|
60
|
+
1 1 0 0 0 0 1 1
|
61
|
+
1 1 1 1 1 1 1 1
|
62
|
+
1 1 1 1 1 1 1 1
|
63
|
+
|
64
|
+
JUMP FROM? 57
|
65
|
+
TO? 43
|
66
|
+
|
67
|
+
0 0 1 1 1 1 1 1
|
68
|
+
1 0 0 1 1 1 1 1
|
69
|
+
1 1 1 1 0 0 1 1
|
70
|
+
1 1 0 0 0 0 1 1
|
71
|
+
1 1 0 0 0 0 1 1
|
72
|
+
1 1 1 0 0 0 1 1
|
73
|
+
1 0 1 1 1 1 1 1
|
74
|
+
0 1 1 1 1 1 1 1
|
75
|
+
|
76
|
+
JUMP FROM?
|
77
|
+
Error on line 100: No more input
|
@@ -0,0 +1,96 @@
|
|
1
|
+
2 PRINT TAB(33);"ORBIT"
|
2
|
+
4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
3
|
+
6 PRINT:PRINT:PRINT
|
4
|
+
10 PRINT "SOMEWHERE ABOVE YOUR PLANET IS A ROMULAN SHIP."
|
5
|
+
15 PRINT
|
6
|
+
20 PRINT "THE SHIP IS IN A CONSTANT POLAR ORBIT. ITS"
|
7
|
+
25 PRINT "DISTANCE FROM THE CENTER OF YOUR PLANET IS FROM"
|
8
|
+
30 PRINT "10,000 TO 30,000 MILES AND AT ITS PRESENT VELOCITY CAN"
|
9
|
+
31 PRINT "CIRCLE YOUR PLANET ONCE EVERY 12 TO 36 HOURS."
|
10
|
+
35 PRINT
|
11
|
+
40 PRINT "UNFORTUNATELY, THEY ARE USING A CLOAKING DEVICE SO"
|
12
|
+
45 PRINT "YOU ARE UNABLE TO SEE THEM, BUT WITH A SPECIAL"
|
13
|
+
50 PRINT "INSTRUMENT YOU CAN TELL HOW NEAR THEIR SHIP YOUR"
|
14
|
+
55 PRINT "PHOTON BOMB EXPLODED. YOU HAVE SEVEN HOURS UNTIL THEY"
|
15
|
+
60 PRINT "HAVE BUILT UP SUFFICIENT POWER IN ORDER TO ESCAPE"
|
16
|
+
65 PRINT "YOUR PLANET'S GRAVITY."
|
17
|
+
70 PRINT
|
18
|
+
75 PRINT "YOUR PLANET HAS ENOUGH POWER TO FIRE ONE BOMB AN HOUR."
|
19
|
+
80 PRINT
|
20
|
+
85 PRINT "AT THE BEGINNING OF EACH HOUR YOU WILL BE ASKED TO GIVE AN"
|
21
|
+
90 PRINT "ANGLE (BETWEEN 0 AND 360) AND A DISTANCE IN UNITS OF"
|
22
|
+
95 PRINT "100 MILES (BETWEEN 100 AND 300), AFTER WHICH YOUR BOMB'S"
|
23
|
+
100 PRINT "DISTANCE FROM THE ENEMY SHIP WILL BE GIVEN."
|
24
|
+
105 PRINT
|
25
|
+
110 PRINT "AN EXPLOSION WITHIN 5,000 MILES OF THE ROMULAN SHIP"
|
26
|
+
111 PRINT "WILL DESTROY IT."
|
27
|
+
114 PRINT
|
28
|
+
115 PRINT "BELOW IS A DIAGRAM TO HELP YOU VISUALIZE YOUR PLIGHT."
|
29
|
+
116 PRINT
|
30
|
+
117 PRINT
|
31
|
+
168 PRINT " 90"
|
32
|
+
170 PRINT " 0000000000000"
|
33
|
+
171 PRINT " 0000000000000000000"
|
34
|
+
172 PRINT " 000000 000000"
|
35
|
+
173 PRINT " 00000 00000"
|
36
|
+
174 PRINT " 00000 XXXXXXXXXXX 00000"
|
37
|
+
175 PRINT " 00000 XXXXXXXXXXXXX 00000"
|
38
|
+
176 PRINT " 0000 XXXXXXXXXXXXXXX 0000"
|
39
|
+
177 PRINT " 0000 XXXXXXXXXXXXXXXXX 0000"
|
40
|
+
178 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000"
|
41
|
+
179 PRINT "180<== 00000 XXXXXXXXXXXXXXXXXXX 00000 ==>0"
|
42
|
+
180 PRINT " 0000 XXXXXXXXXXXXXXXXXXX 0000"
|
43
|
+
181 PRINT " 0000 XXXXXXXXXXXXXXXXX 0000"
|
44
|
+
182 PRINT " 0000 XXXXXXXXXXXXXXX 0000"
|
45
|
+
183 PRINT " 00000 XXXXXXXXXXXXX 00000"
|
46
|
+
184 PRINT " 00000 XXXXXXXXXXX 00000"
|
47
|
+
185 PRINT " 00000 00000"
|
48
|
+
186 PRINT " 000000 000000"
|
49
|
+
187 PRINT " 0000000000000000000"
|
50
|
+
188 PRINT " 0000000000000"
|
51
|
+
190 PRINT " 270"
|
52
|
+
192 PRINT
|
53
|
+
195 PRINT "X - YOUR PLANET"
|
54
|
+
196 PRINT "O - THE ORBIT OF THE ROMULAN SHIP"
|
55
|
+
197 PRINT
|
56
|
+
198 PRINT "ON THE ABOVE DIAGRAM, THE ROMULAN SHIP IS CIRCLING"
|
57
|
+
199 PRINT "COUNTERCLOCKWISE AROUND YOUR PLANET. DON'T FORGET THAT"
|
58
|
+
200 PRINT "WITHOUT SUFFICIENT POWER THE ROMULAN SHIP'S ALTITUDE"
|
59
|
+
210 PRINT "AND ORBITAL RATE WILL REMAIN CONSTANT."
|
60
|
+
220 PRINT
|
61
|
+
230 PRINT "GOOD LUCK. THE FEDERATION IS COUNTING ON YOU."
|
62
|
+
270 A=INT(360*RND(1))
|
63
|
+
280 D=INT(200*RND(1)+200)
|
64
|
+
290 R=INT(20*RND(1)+10)
|
65
|
+
300 H=0
|
66
|
+
310 IF H=7 THEN 490
|
67
|
+
320 H=H+1
|
68
|
+
325 PRINT
|
69
|
+
326 PRINT
|
70
|
+
330 PRINT "THIS IS HOUR";H;", AT WHAT ANGLE DO YOU WISH TO SEND"
|
71
|
+
335 PRINT "YOUR PHOTON BOMB";
|
72
|
+
340 INPUT A1
|
73
|
+
350 PRINT "HOW FAR OUT DO YOU WISH TO DETONATE IT";
|
74
|
+
360 INPUT D1
|
75
|
+
365 PRINT
|
76
|
+
366 PRINT
|
77
|
+
370 A=A+R
|
78
|
+
380 IF A<360 THEN 400
|
79
|
+
390 A=A-360
|
80
|
+
400 T=ABS(A-A1)
|
81
|
+
410 IF T<180 THEN 430
|
82
|
+
420 T=360-T
|
83
|
+
430 C=SQR(D*D+D1*D1-2*D*D1*COS(T*3.14159/180))
|
84
|
+
440 PRINT "YOUR PHOTON BOMB EXPLODED";C;"*10^2 MILES FROM THE"
|
85
|
+
445 PRINT "ROMULAN SHIP."
|
86
|
+
450 IF C<=50 THEN 470
|
87
|
+
460 GOTO 310
|
88
|
+
470 PRINT "YOU HAVE SUCCESFULLY COMPLETED YOUR MISSION."
|
89
|
+
480 GOTO 500
|
90
|
+
490 PRINT "YOU HAVE ALLOWED THE ROMULANS TO ESCAPE."
|
91
|
+
500 PRINT "ANOTHER ROMULAN SHIP HAS GONE INTO ORBIT."
|
92
|
+
510 PRINT "DO YOU WISH TO TRY TO DESTROY IT";
|
93
|
+
520 INPUT C$
|
94
|
+
530 IF C$="YES" THEN 270
|
95
|
+
540 PRINT "GOOD BYE."
|
96
|
+
999 END
|