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,425 @@
|
|
1
|
+
10 REM SUPER STARTREK - MAY 16,1978 - REQUIRES 24K MEMORY
|
2
|
+
30 REM
|
3
|
+
40 REM **** **** STAR TREK **** ****
|
4
|
+
50 REM **** SIMULATION OF A MISSION OF THE STARSHIP ENTERPRISE,
|
5
|
+
60 REM **** AS SEEN ON THE STAR TREK TV SHOW.
|
6
|
+
70 REM **** ORIGIONAL PROGRAM BY MIKE MAYFIELD, MODIFIED VERSION
|
7
|
+
80 REM **** PUBLISHED IN DEC'S "101 BASIC GAMES", BY DAVE AHL.
|
8
|
+
90 REM **** MODIFICATIONS TO THE LATTER (PLUS DEBUGGING) BY BOB
|
9
|
+
100 REM *** LEEDOM - APRIL & DECEMBER 1974,
|
10
|
+
110 REM *** WITH A LITTLE HELP FROM HIS FRIENDS . . .
|
11
|
+
120 REM *** COMMENTS, EPITHETS, AND SUGGESTIONS SOLICITED --
|
12
|
+
130 REM *** SEND TO: R. C. LEEDOM
|
13
|
+
140 REM *** WESTINGHOUSE DEFENSE & ELECTRONICS SYSTEMS CNTR.
|
14
|
+
150 REM *** BOX 746, M.S. 338
|
15
|
+
160 REM *** BALTIMORE, MD 21203
|
16
|
+
170 REM ***
|
17
|
+
180 REM *** CONVERTED TO MICROSOFT 8 K BASIC 3/16/78 BY JOHN GORDERS
|
18
|
+
190 REM *** LINE NUMBERS FROM VERSION STREK7 OF 1/12/75 PRESERVED AS
|
19
|
+
200 REM *** MUCH AS POSSIBLE WHILE USING MULTIPLE STATEMENTS PER LINE
|
20
|
+
205 REM *** SOME LINES ARE LONGER THAN 72 CHARACTERS; THIS WAS DONE
|
21
|
+
210 REM *** BY USING "?" INSTEAD OF "PRINT" WHEN ENTERING LINES
|
22
|
+
215 REM ***
|
23
|
+
220 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
|
24
|
+
221 PRINT" ,------*------,"
|
25
|
+
222 PRINT" ,------------- '--- ------'"
|
26
|
+
223 PRINT" '-------- --' / /"
|
27
|
+
224 PRINT" ,---' '-------/ /--,"
|
28
|
+
225 PRINT" '----------------'":PRINT
|
29
|
+
226 PRINT" THE USS ENTERPRISE --- NCC-1701"
|
30
|
+
227 PRINT:PRINT:PRINT:PRINT:PRINT
|
31
|
+
260 REM CLEAR 600
|
32
|
+
270 Z$=" "
|
33
|
+
330 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8)
|
34
|
+
370 T=INT(RND(1)*20+20)*100:T0=T:T9=25+INT(RND(1)*10):D0=0:E=3000:E0=E
|
35
|
+
440 P=10:P0=P:S9=200:S=0:B9=2:K9=0:X$="":X0$=" IS "
|
36
|
+
470 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
|
37
|
+
475 DEF FNR(R)=INT(RND(R)*7.98+1.01)
|
38
|
+
480 REM INITIALIZE ENTERPRIZE'S POSITION
|
39
|
+
490 Q1=FNR(1):Q2=FNR(1):S1=FNR(1):S2=FNR(1)
|
40
|
+
530 FORI=1TO9:C(I,1)=0:C(I,2)=0:NEXTI
|
41
|
+
540 C(3,1)=-1:C(2,1)=-1:C(4,1)=-1:C(4,2)=-1:C(5,2)=-1:C(6,2)=-1
|
42
|
+
600 C(1,2)=1:C(2,2)=1:C(6,1)=1:C(7,1)=1:C(8,1)=1:C(8,2)=1:C(9,2)=1
|
43
|
+
670 FORI=1TO8:D(I)=0:NEXTI
|
44
|
+
710 A1$="NAVSRSLRSPHATORSHEDAMCOMXXX"
|
45
|
+
810 REM SETUP WHAT EXHISTS IN GALAXY . . .
|
46
|
+
815 REM K3= # KLINGONS B3= # STARBASES S3 = # STARS
|
47
|
+
820 FORI=1TO8:FORJ=1TO8:K3=0:Z(I,J)=0:R1=RND(1)
|
48
|
+
850 IFR1>.98THENK3=3:K9=K9+3:GOTO980
|
49
|
+
860 IFR1>.95THENK3=2:K9=K9+2:GOTO980
|
50
|
+
870 IFR1>.80THENK3=1:K9=K9+1
|
51
|
+
980 B3=0:IFRND(1)>.96THENB3=1:B9=B9+1
|
52
|
+
1040 G(I,J)=K3*100+B3*10+FNR(1):NEXTJ:NEXTI:IFK9>T9THENT9=K9+1
|
53
|
+
1100 IFB9<>0THEN1200
|
54
|
+
1150 IFG(Q1,Q2)<200THENG(Q1,Q2)=G(Q1,Q2)+120:K9=K9+1
|
55
|
+
1160 B9=1:G(Q1,Q2)=G(Q1,Q2)+10:Q1=FNR(1):Q2=FNR(1)
|
56
|
+
1200 K7=K9:IFB9<>1THENX$="S":X0$=" ARE "
|
57
|
+
1230 PRINT"YOUR ORDERS ARE AS FOLLOWS:"
|
58
|
+
1240 PRINT" DESTROY THE";K9;"KLINGON WARSHIPS WHICH HAVE INVADED"
|
59
|
+
1252 PRINT" THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS"
|
60
|
+
1260 PRINT" ON STARDATE";T0+T9;" THIS GIVES YOU";T9;"DAYS. THERE";X0$
|
61
|
+
1272 PRINT" ";B9;"STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP"
|
62
|
+
1280 PRINT:REM PRINT"HIT ANY KEY EXCEPT RETURN WHEN READY TO ACCEPT COMMAND"
|
63
|
+
1300 I=RND(1):REM IF INP(1)=13 THEN 1300
|
64
|
+
1310 REM HERE ANY TIME NEW QUADRANT ENTERED
|
65
|
+
1320 Z4=Q1:Z5=Q2:K3=0:B3=0:S3=0:G5=0:D4=.5*RND(1):Z(Q1,Q2)=G(Q1,Q2)
|
66
|
+
1390 IFQ1<1ORQ1>8ORQ2<1ORQ2>8THEN1600
|
67
|
+
1430 GOSUB 9030:PRINT:IF T0<>T THEN 1490
|
68
|
+
1460 PRINT"YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED"
|
69
|
+
1470 PRINT"IN THE GALACTIC QUADRANT, '";G2$;"'.":GOTO 1500
|
70
|
+
1490 PRINT"NOW ENTERING ";G2$;" QUADRANT . . ."
|
71
|
+
1500 PRINT:K3=INT(G(Q1,Q2)*.01):B3=INT(G(Q1,Q2)*.1)-10*K3
|
72
|
+
1540 S3=G(Q1,Q2)-100*K3-10*B3:IFK3=0THEN1590
|
73
|
+
1560 PRINT"COMBAT AREA CONDITION RED":IFS>200THEN1590
|
74
|
+
1580 PRINT" SHIELDS DANGEROUSLY LOW"
|
75
|
+
1590 FORI=1TO3:K(I,1)=0:K(I,2)=0:NEXTI
|
76
|
+
1600 FORI=1TO3:K(I,3)=0:NEXTI:Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17)
|
77
|
+
1660 REM POSITION ENTERPRISE IN QUADRANT, THEN PLACE "K3" KLINGONS, &
|
78
|
+
1670 REM "B3" STARBASES, & "S3" STARS ELSEWHERE.
|
79
|
+
1680 A$="<*>":Z1=S1:Z2=S2:GOSUB8670:IFK3<1THEN1820
|
80
|
+
1720 FORI=1TOK3:GOSUB8590:A$="+K+":Z1=R1:Z2=R2
|
81
|
+
1780 GOSUB8670:K(I,1)=R1:K(I,2)=R2:K(I,3)=S9*(0.5+RND(1)):NEXTI
|
82
|
+
1820 IFB3<1THEN1910
|
83
|
+
1880 GOSUB8590:A$=">!<":Z1=R1:B4=R1:Z2=R2:B5=R2:GOSUB8670
|
84
|
+
1910 FORI=1TOS3:GOSUB8590:A$=" * ":Z1=R1:Z2=R2:GOSUB8670:NEXTI
|
85
|
+
1980 GOSUB6430
|
86
|
+
1990 IFS+E>10THENIFE>10ORD(7)=0THEN2060
|
87
|
+
2020 PRINT:PRINT"** FATAL ERROR ** YOU'VE JUST STRANDED YOUR SHIP IN "
|
88
|
+
2030 PRINT"SPACE":PRINT"YOU HAVE INSUFFICIENT MANEUVERING ENERGY,";
|
89
|
+
2040 PRINT" AND SHIELD CONTROL":PRINT"IS PRESENTLY INCAPABLE OF CROSS";
|
90
|
+
2050 PRINT"-CIRCUITING TO ENGINE ROOM!!":GOTO6220
|
91
|
+
2060 INPUT"COMMAND";A$
|
92
|
+
2080 FORI=1TO9:IFLEFT$(A$,3)<>MID$(A1$,3*I-2,3)THEN2160
|
93
|
+
2140 ONIGOTO2300,1980,4000,4260,4700,5530,5690,7290,6270
|
94
|
+
2160 NEXTI:PRINT"ENTER ONE OF THE FOLLOWING:"
|
95
|
+
2180 PRINT" NAV (TO SET COURSE)"
|
96
|
+
2190 PRINT" SRS (FOR SHORT RANGE SENSOR SCAN)"
|
97
|
+
2200 PRINT" LRS (FOR LONG RANGE SENSOR SCAN)"
|
98
|
+
2210 PRINT" PHA (TO FIRE PHASERS)"
|
99
|
+
2220 PRINT" TOR (TO FIRE PHOTON TORPEDOES)"
|
100
|
+
2230 PRINT" SHE (TO RAISE OR LOWER SHIELDS)"
|
101
|
+
2240 PRINT" DAM (FOR DAMAGE CONTROL REPORTS)"
|
102
|
+
2250 PRINT" COM (TO CALL ON LIBRARY-COMPUTER)"
|
103
|
+
2260 PRINT" XXX (TO RESIGN YOUR COMMAND)":PRINT:GOTO 1990
|
104
|
+
2290 REM COURSE CONTROL BEGINS HERE
|
105
|
+
2300 INPUT"COURSE (0-9)";C1:IFC1=9THENC1=1
|
106
|
+
2310 IFC1>=1ANDC1<9THEN2350
|
107
|
+
2330 PRINT" LT. SULU REPORTS, 'INCORRECT COURSE DATA, SIR!'":GOTO1990
|
108
|
+
2350 X$="8":IFD(1)<0THENX$="0.2"
|
109
|
+
2360 PRINT"WARP FACTOR (0-";X$;")";:INPUTW1:IFD(1)<0ANDW1>.2THEN2470
|
110
|
+
2380 IFW1>0ANDW1<=8THEN2490
|
111
|
+
2390 IFW1=0THEN1990
|
112
|
+
2420 PRINT" CHIEF ENGINEER SCOTT REPORTS 'THE ENGINES WON'T TAKE";
|
113
|
+
2430 PRINT" WARP ";W1;"!'":GOTO1990
|
114
|
+
2470 PRINT"WARP ENGINES ARE DAMAGED. MAXIUM SPEED = WARP 0.2":GOTO1990
|
115
|
+
2490 N=INT(W1*8+.5):IFE-N>=0THEN2590
|
116
|
+
2500 PRINT"ENGINEERING REPORTS 'INSUFFICIENT ENERGY AVAILABLE"
|
117
|
+
2510 PRINT" FOR MANEUVERING AT WARP";W1;"!'"
|
118
|
+
2530 IFS<N-EORD(7)<0THEN1990
|
119
|
+
2550 PRINT"DEFLECTOR CONTROL ROOM ACKNOWLEDGES";S;"UNITS OF ENERGY"
|
120
|
+
2560 PRINT" PRESENTLY DEPLOYED TO SHIELDS."
|
121
|
+
2570 GOTO1990
|
122
|
+
2580 REM KLINGONS MOVE/FIRE ON MOVING STARSHIP . . .
|
123
|
+
2590 FORI=1TOK3:IFK(I,3)=0THEN2700
|
124
|
+
2610 A$=" ":Z1=K(I,1):Z2=K(I,2):GOSUB8670:GOSUB8590
|
125
|
+
2660 K(I,1)=Z1:K(I,2)=Z2:A$="+K+":GOSUB8670
|
126
|
+
2700 NEXTI:GOSUB6000:D1=0:D6=W1:IFW1>=1THEND6=1
|
127
|
+
2770 FORI=1TO8:IFD(I)>=0THEN2880
|
128
|
+
2790 D(I)=D(I)+D6:IFD(I)>-.1ANDD(I)<0THEND(I)=-.1:GOTO2880
|
129
|
+
2800 IFD(I)<0THEN2880
|
130
|
+
2810 IFD1<>1THEND1=1:PRINT"DAMAGE CONTROL REPORT: ";
|
131
|
+
2840 PRINTTAB(8);:R1=I:GOSUB8790:PRINTG2$;" REPAIR COMPLETED."
|
132
|
+
2880 NEXTI:IFRND(1)>.2THEN3070
|
133
|
+
2910 R1=FNR(1):IFRND(1)>=.6THEN3000
|
134
|
+
2930 D(R1)=D(R1)-(RND(1)*5+1):PRINT"DAMAGE CONTROL REPORT: ";
|
135
|
+
2960 GOSUB8790:PRINTG2$;" DAMAGED":PRINT:GOTO3070
|
136
|
+
3000 D(R1)=D(R1)+RND(1)*3+1:PRINT"DAMAGE CONTROL REPORT: ";
|
137
|
+
3030 GOSUB8790:PRINTG2$;" STATE OF REPAIR IMPROVED":PRINT
|
138
|
+
3060 REM BEGIN MOVING STARSHIP
|
139
|
+
3070 A$=" ":Z1=INT(S1):Z2=INT(S2):GOSUB8670
|
140
|
+
3110 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):X=S1:Y=S2
|
141
|
+
3140 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):Q4=Q1:Q5=Q2
|
142
|
+
3170 FORI=1TON:S1=S1+X1:S2=S2+X2:IFS1<1ORS1>=9ORS2<1ORS2>=9THEN3500
|
143
|
+
3240 S8=INT(S1)*24+INT(S2)*3-26:IFMID$(Q$,S8,2)=" "THEN3360
|
144
|
+
3320 S1=INT(S1-X1):S2=INT(S2-X2):PRINT"WARP ENGINES SHUT DOWN AT ";
|
145
|
+
3350 PRINT"SECTOR";S1;",";S2;"DUE TO BAD NAVAGATION":GOTO3370
|
146
|
+
3360 NEXTI:S1=INT(S1):S2=INT(S2)
|
147
|
+
3370 A$="<*>":Z1=INT(S1):Z2=INT(S2):GOSUB8670:GOSUB3910:T8=1
|
148
|
+
3430 IFW1<1THENT8=.1*INT(10*W1)
|
149
|
+
3450 T=T+T8:IFT>T0+T9THEN6220
|
150
|
+
3470 REM SEE IF DOCKED, THEN GET COMMAND
|
151
|
+
3480 GOTO1980
|
152
|
+
3490 REM EXCEEDED QUADRANT LIMITS
|
153
|
+
3500 X=8*Q1+X+N*X1:Y=8*Q2+Y+N*X2:Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8)
|
154
|
+
3550 S2=INT(Y-Q2*8):IFS1=0THENQ1=Q1-1:S1=8
|
155
|
+
3590 IFS2=0THENQ2=Q2-1:S2=8
|
156
|
+
3620 X5=0:IFQ1<1THENX5=1:Q1=1:S1=1
|
157
|
+
3670 IFQ1>8THENX5=1:Q1=8:S1=8
|
158
|
+
3710 IFQ2<1THENX5=1:Q2=1:S2=1
|
159
|
+
3750 IFQ2>8THENX5=1:Q2=8:S2=8
|
160
|
+
3790 IFX5=0THEN3860
|
161
|
+
3800 PRINT"LT. UHURA REPORTS MESSAGE FROM STARFLEET COMMAND:"
|
162
|
+
3810 PRINT" 'PERMISSION TO ATTEMPT CROSSING OF GALACTIC PERIMETER"
|
163
|
+
3820 PRINT" IS HEREBY *DENIED*. SHUT DOWN YOUR ENGINES.'"
|
164
|
+
3830 PRINT"CHIEF ENGINEER SCOTT REPORTS 'WARP ENGINES SHUT DOWN"
|
165
|
+
3840 PRINT" AT SECTOR";S1;",";S2;"OF QUADRANT";Q1;",";Q2;".'"
|
166
|
+
3850 IFT>T0+T9THEN6220
|
167
|
+
3860 IF8*Q1+Q2=8*Q4+Q5THEN3370
|
168
|
+
3870 T=T+1:GOSUB3910:GOTO1320
|
169
|
+
3900 REM MANEUVER ENERGY S/R **
|
170
|
+
3910 E=E-N-10:IFE>=0THENRETURN
|
171
|
+
3930 PRINT"SHIELD CONTROL SUPPLIES ENERGY TO COMPLETE THE MANEUVER."
|
172
|
+
3940 S=S+E:E=0:IFS<=0THENS=0
|
173
|
+
3980 RETURN
|
174
|
+
3990 REM LONG RANGE SENSOR SCAN CODE
|
175
|
+
4000 IFD(3)<0THENPRINT"LONG RANGE SENSORS ARE INOPERABLE":GOTO1990
|
176
|
+
4030 PRINT"LONG RANGE SCAN FOR QUADRANT";Q1;",";Q2
|
177
|
+
4040 O1$="-------------------":PRINTO1$
|
178
|
+
4060 FORI=Q1-1TOQ1+1:N(1)=-1:N(2)=-2:N(3)=-3:FORJ=Q2-1TOQ2+1
|
179
|
+
4120 IFI>0ANDI<9ANDJ>0ANDJ<9THENN(J-Q2+2)=G(I,J):Z(I,J)=G(I,J)
|
180
|
+
4180 NEXTJ:FORL=1TO3:PRINT": ";:IFN(L)<0THENPRINT"*** ";:GOTO4230
|
181
|
+
4210 PRINTRIGHT$(STR$(N(L)+1000),3);" ";
|
182
|
+
4230 NEXTL:PRINT":":PRINTO1$:NEXTI:GOTO1990
|
183
|
+
4250 REM PHASER CONTROL CODE BEGINS HERE
|
184
|
+
4260 IFD(4)<0THENPRINT"PHASERS INOPERATIVE":GOTO1990
|
185
|
+
4265 IFK3>0THEN4330
|
186
|
+
4270 PRINT"SCIENCE OFFICER SPOCK REPORTS 'SENSORS SHOW NO ENEMY SHIPS"
|
187
|
+
4280 PRINT" IN THIS QUADRANT'":GOTO1990
|
188
|
+
4330 IFD(8)<0THENPRINT"COMPUTER FAILURE HAMPERS ACCURACY"
|
189
|
+
4350 PRINT"PHASERS LOCKED ON TARGET; ";
|
190
|
+
4360 PRINT"ENERGY AVAILABLE =";E;"UNITS"
|
191
|
+
4370 INPUT"NUMBER OF UNITS TO FIRE";X:IFX<=0THEN1990
|
192
|
+
4400 IFE-X<0THEN4360
|
193
|
+
4410 E=E-X:IFD(7)<0THENX=X*RND(1)
|
194
|
+
4450 H1=INT(X/K3):FORI=1TO3:IFK(I,3)<=0THEN4670
|
195
|
+
4480 H=INT((H1/FND(0))*(RND(1)+2)):IFH>.15*K(I,3)THEN4530
|
196
|
+
4500 PRINT"SENSORS SHOW NO DAMAGE TO ENEMY AT ";K(I,1);",";K(I,2):GOTO4670
|
197
|
+
4530 K(I,3)=K(I,3)-H:PRINTH;"UNIT HIT ON KLINGON AT SECTOR";K(I,1);",";
|
198
|
+
4550 PRINTK(I,2):IFK(I,3)<=0THENPRINT"*** KLINGON DESTROYED ***":GOTO4580
|
199
|
+
4560 PRINT" (SENSORS SHOW";K(I,3);"UNITS REMAINING)":GOTO4670
|
200
|
+
4580 K3=K3-1:K9=K9-1:Z1=K(I,1):Z2=K(I,2):A$=" ":GOSUB8670
|
201
|
+
4650 K(I,3)=0:G(Q1,Q2)=G(Q1,Q2)-100:Z(Q1,Q2)=G(Q1,Q2):IFK9<=0THEN6370
|
202
|
+
4670 NEXTI:GOSUB6000:GOTO1990
|
203
|
+
4690 REM PHOTON TORPEDO CODE BEGINS HERE
|
204
|
+
4700 IFP<=0THENPRINT"ALL PHOTON TORPEDOES EXPENDED":GOTO 1990
|
205
|
+
4730 IFD(5)<0THENPRINT"PHOTON TUBES ARE NOT OPERATIONAL":GOTO1990
|
206
|
+
4760 INPUT"PHOTON TORPEDO COURSE (1-9)";C1:IFC1=9THENC1=1
|
207
|
+
4780 IFC1>=1ANDC1<9THEN4850
|
208
|
+
4790 PRINT"ENSIGN CHEKOV REPORTS, 'INCORRECT COURSE DATA, SIR!'"
|
209
|
+
4800 GOTO1990
|
210
|
+
4850 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)):E=E-2:P=P-1
|
211
|
+
4860 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)):X=S1:Y=S2
|
212
|
+
4910 PRINT"TORPEDO TRACK:"
|
213
|
+
4920 X=X+X1:Y=Y+X2:X3=INT(X+.5):Y3=INT(Y+.5)
|
214
|
+
4960 IFX3<1ORX3>8ORY3<1ORY3>8THEN5490
|
215
|
+
5000 PRINT" ";X3;",";Y3:A$=" ":Z1=X:Z2=Y:GOSUB8830
|
216
|
+
5050 IFZ3<>0THEN4920
|
217
|
+
5060 A$="+K+":Z1=X:Z2=Y:GOSUB8830:IFZ3=0THEN5210
|
218
|
+
5110 PRINT"*** KLINGON DESTROYED ***":K3=K3-1:K9=K9-1:IFK9<=0THEN6370
|
219
|
+
5150 FORI=1TO3:IFX3=K(I,1)ANDY3=K(I,2)THEN5190
|
220
|
+
5180 NEXTI:I=3
|
221
|
+
5190 K(I,3)=0:GOTO5430
|
222
|
+
5210 A$=" * ":Z1=X:Z2=Y:GOSUB8830:IFZ3=0THEN5280
|
223
|
+
5260 PRINT"STAR AT";X3;",";Y3;"ABSORBED TORPEDO ENERGY.":GOSUB6000:GOTO1990
|
224
|
+
5280 A$=">!<":Z1=X:Z2=Y:GOSUB8830:IFZ3=0THEN4760
|
225
|
+
5330 PRINT"*** STARBASE DESTROYED ***":B3=B3-1:B9=B9-1
|
226
|
+
5360 IFB9>0ORK9>T-T0-T9THEN5400
|
227
|
+
5370 PRINT"THAT DOES IT, CAPTAIN!! YOU ARE HEREBY RELIEVED OF COMMAND"
|
228
|
+
5380 PRINT"AND SENTENCED TO 99 STARDATES AT HARD LABOR ON CYGNUS 12!!"
|
229
|
+
5390 GOTO 6270
|
230
|
+
5400 PRINT"STARFLEET COMMAND REVIEWING YOUR RECORD TO CONSIDER"
|
231
|
+
5410 PRINT"COURT MARTIAL!":D0=0
|
232
|
+
5430 Z1=X:Z2=Y:A$=" ":GOSUB8670
|
233
|
+
5470 G(Q1,Q2)=K3*100+B3*10+S3:Z(Q1,Q2)=G(Q1,Q2):GOSUB6000:GOTO1990
|
234
|
+
5490 PRINT"TORPEDO MISSED":GOSUB6000:GOTO1990
|
235
|
+
5520 REM SHIELD CONTROL
|
236
|
+
5530 IFD(7)<0THENPRINT"SHIELD CONTROL INOPERABLE":GOTO1990
|
237
|
+
5560 PRINT"ENERGY AVAILABLE =";E+S;:INPUT"NUMBER OF UNITS TO SHIELDS";X
|
238
|
+
5580 IFX<0ORS=XTHENPRINT"<SHIELDS UNCHANGED>":GOTO1990
|
239
|
+
5590 IFX<=E+STHEN5630
|
240
|
+
5600 PRINT"SHIELD CONTROL REPORTS 'THIS IS NOT THE FEDERATION TREASURY.'"
|
241
|
+
5610 PRINT"<SHIELDS UNCHANGED>":GOTO1990
|
242
|
+
5630 E=E+S-X:S=X:PRINT"DEFLECTOR CONTROL ROOM REPORT:"
|
243
|
+
5660 PRINT" 'SHIELDS NOW AT";INT(S);"UNITS PER YOUR COMMAND.'":GOTO1990
|
244
|
+
5680 REM DAMAGE CONTROL
|
245
|
+
5690 IFD(6)>=0THEN5910
|
246
|
+
5700 PRINT"DAMAGE CONTROL REPORT NOT AVAILABLE":IFD0=0THEN1990
|
247
|
+
5720 D3=0:FORI=1TO8:IFD(I)<0THEND3=D3+.1
|
248
|
+
5760 NEXTI:IFD3=0THEN1990
|
249
|
+
5780 PRINT:D3=D3+D4:IFD3>=1THEND3=.9
|
250
|
+
5810 PRINT"TECHNICIANS STANDING BY TO EFFECT REPAIRS TO YOUR SHIP;"
|
251
|
+
5820 PRINT"ESTIMATED TIME TO REPAIR:";.01*INT(100*D3);"STARDATES"
|
252
|
+
5840 INPUT "WILL YOU AUTHORIZE THE REPAIR ORDER (Y/N)";A$
|
253
|
+
5860 IFA$<>"Y"THEN 1990
|
254
|
+
5870 FORI=1TO8:IFD(I)<0THEND(I)=0
|
255
|
+
5890 NEXTI:T=T+D3+.1
|
256
|
+
5910 PRINT:PRINT"DEVICE STATE OF REPAIR":FORR1=1TO8
|
257
|
+
5920 GOSUB8790:PRINTG2$;LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*.01
|
258
|
+
5950 NEXTR1:PRINT:IFD0<>0THEN5720
|
259
|
+
5980 GOTO 1990
|
260
|
+
5990 REM KLINGONS SHOOTING
|
261
|
+
6000 IFK3<=0THENRETURN
|
262
|
+
6010 IFD0<>0THENPRINT"STARBASE SHIELDS PROTECT THE ENTERPRISE":RETURN
|
263
|
+
6040 FORI=1TO3:IFK(I,3)<=0THEN6200
|
264
|
+
6060 H=INT((K(I,3)/FND(1))*(2+RND(1))):S=S-H:K(I,3)=K(I,3)/(3+RND(0))
|
265
|
+
6080 PRINTH;"UNIT HIT ON ENTERPRISE FROM SECTOR";K(I,1);",";K(I,2)
|
266
|
+
6090 IFS<=0THEN6240
|
267
|
+
6100 PRINT" <SHIELDS DOWN TO";S;"UNITS>":IFH<20THEN6200
|
268
|
+
6120 IFRND(1)>.6ORH/S<=.02THEN6200
|
269
|
+
6140 R1=FNR(1):D(R1)=D(R1)-H/S-.5*RND(1):GOSUB8790
|
270
|
+
6170 PRINT"DAMAGE CONTROL REPORTS ";G2$;" DAMAGED BY THE HIT'"
|
271
|
+
6200 NEXTI:RETURN
|
272
|
+
6210 REM END OF GAME
|
273
|
+
6220 PRINT"IT IS STARDATE";T:GOTO 6270
|
274
|
+
6240 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THEN FEDERATION ";
|
275
|
+
6250 PRINT"WILL BE CONQUERED":GOTO 6220
|
276
|
+
6270 PRINT"THERE WERE";K9;"KLINGON BATTLE CRUISERS LEFT AT"
|
277
|
+
6280 PRINT"THE END OF YOUR MISSION."
|
278
|
+
6290 PRINT:PRINT:IFB9=0THEN6360
|
279
|
+
6310 PRINT"THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER"
|
280
|
+
6320 PRINT"FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER,"
|
281
|
+
6330 INPUT"LET HIM STEP FORWARD AND ENTER 'AYE'";A$:IFA$="AYE"THEN10
|
282
|
+
6360 END
|
283
|
+
6370 PRINT"CONGRULATION, CAPTAIN! THEN LAST KLINGON BATTLE CRUISER"
|
284
|
+
6380 PRINT"MENACING THE FDERATION HAS BEEN DESTROYED.":PRINT
|
285
|
+
6400 PRINT"YOUR EFFICIENCY RATING IS";1000*(K7/(T-T0))^2:GOTO6290
|
286
|
+
6420 REM SHORT RANGE SENSOR SCAN & STARTUP SUBROUTINE
|
287
|
+
6430 FORI=S1-1TOS1+1:FORJ=S2-1TOS2+1
|
288
|
+
6450 IFINT(I+.5)<1ORINT(I+.5)>8ORINT(J+.5)<1ORINT(J+.5)>8THEN6540
|
289
|
+
6490 A$=">!<":Z1=I:Z2=J:GOSUB8830:IFZ3=1THEN6580
|
290
|
+
6540 NEXTJ:NEXTI:D0=0:GOTO6650
|
291
|
+
6580 D0=1:C$="DOCKED":E=E0:P=P0
|
292
|
+
6620 PRINT"SHIELDS DROPPED FOR DOCKING PURPOSES":S=0:GOTO6720
|
293
|
+
6650 IFK3>0THENC$="*RED*":GOTO6720
|
294
|
+
6660 C$="GREEN":IFE<E0*.1THENC$="YELLOW"
|
295
|
+
6720 IFD(2)>=0THEN6770
|
296
|
+
6730 PRINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":PRINT:RETURN
|
297
|
+
6770 O1$="---------------------------------":PRINTO1$:FORI=1TO8
|
298
|
+
6820 FORJ=(I-1)*24+1TO(I-1)*24+22STEP3:PRINT" ";MID$(Q$,J,3);:NEXTJ
|
299
|
+
6830 ONIGOTO6850,6900,6960,7020,7070,7120,7180,7240
|
300
|
+
6850 PRINT" STARDATE ";INT(T*10)*.1:GOTO7260
|
301
|
+
6900 PRINT" CONDITION ";C$:GOTO7260
|
302
|
+
6960 PRINT" QUADRANT ";Q1;",";Q2:GOTO7260
|
303
|
+
7020 PRINT" SECTOR ";S1;",";S2:GOTO7260
|
304
|
+
7070 PRINT" PHOTON TORPEDOES ";INT(P):GOTO7260
|
305
|
+
7120 PRINT" TOTAL ENERGY ";INT(E+S):GOTO7260
|
306
|
+
7180 PRINT" SHIELDS ";INT(S):GOTO7260
|
307
|
+
7240 PRINT" KLINGONS REMAINING";INT(K9)
|
308
|
+
7260 NEXTI:PRINTO1$:RETURN
|
309
|
+
7280 REM LIBRARY COMPUTER CODE
|
310
|
+
7290 IFD(8)<0THENPRINT"COMPUTER DISABLED":GOTO1990
|
311
|
+
7320 INPUT"COMPUTER ACTIVE AND AWAITING COMMAND";A:IFA<0THEN1990
|
312
|
+
7350 PRINT:H8=1:ONA+1GOTO7540,7900,8070,8500,8150,7400
|
313
|
+
7360 PRINT"FUNCTIONS AVAILABLE FROM LIBRARY-COMPUTER:"
|
314
|
+
7370 PRINT" 0 = CUMULATIVE GALACTIC RECORD"
|
315
|
+
7372 PRINT" 1 = STATUS REPORT"
|
316
|
+
7374 PRINT" 2 = PHOTON TORPEDO DATA"
|
317
|
+
7376 PRINT" 3 = STARBASE NAV DATA"
|
318
|
+
7378 PRINT" 4 = DIRECTION/DISTANCE CALCULATOR"
|
319
|
+
7380 PRINT" 5 = GALAXY 'REGION NAME' MAP":PRINT:GOTO7320
|
320
|
+
7390 REM SETUP TO CHANGE CUM GAL RECORD TO GALAXY MAP
|
321
|
+
7400 H8=0:G5=1:PRINT" THE GALAXY":GOTO7550
|
322
|
+
7530 REM CUM GALACTIC RECORD
|
323
|
+
7540 REM INPUT"DO YOU WANT A HARDCOPY? IS THE TTY ON (Y/N)";A$
|
324
|
+
7542 REM IFA$="Y"THENPOKE1229,2:POKE1237,3:NULL1
|
325
|
+
7543 PRINT:PRINT" ";
|
326
|
+
7544 PRINT"COMPUTER RECORD OF GALAXY FOR QUADRANT";Q1;",";Q2
|
327
|
+
7546 PRINT
|
328
|
+
7550 PRINT" 1 2 3 4 5 6 7 8"
|
329
|
+
7560 O1$=" ----- ----- ----- ----- ----- ----- ----- -----"
|
330
|
+
7570 PRINTO1$:FORI=1TO8:PRINTI;:IFH8=0THEN7740
|
331
|
+
7630 FORJ=1TO8:PRINT" ";:IFZ(I,J)=0THENPRINT"***";:GOTO7720
|
332
|
+
7700 PRINTRIGHT$(STR$(Z(I,J)+1000),3);
|
333
|
+
7720 NEXTJ:GOTO7850
|
334
|
+
7740 Z4=I:Z5=1:GOSUB9030:J0=INT(15-.5*LEN(G2$)):PRINTTAB(J0);G2$;
|
335
|
+
7800 Z5=5:GOSUB 9030:J0=INT(39-.5*LEN(G2$)):PRINTTAB(J0);G2$;
|
336
|
+
7850 PRINT:PRINTO1$:NEXTI:PRINT:GOTO1990
|
337
|
+
7890 REM STATUS REPORT
|
338
|
+
7900 PRINT " STATUS REPORT:":X$="":IFK9>1THENX$="S"
|
339
|
+
7940 PRINT"KLINGON";X$;" LEFT: ";K9
|
340
|
+
7960 PRINT"MISSION MUST BE COMPLETED IN";.1*INT((T0+T9-T)*10);"STARDATES"
|
341
|
+
7970 X$="S":IFB9<2THENX$="":IFB9<1THEN8010
|
342
|
+
7980 PRINT"THE FEDERATION IS MAINTAINING";B9;"STARBASE";X$;" IN THE GALAXY"
|
343
|
+
7990 GOTO5690
|
344
|
+
8010 PRINT"YOUR STUPIDITY HAS LEFT YOU ON YOUR ON IN"
|
345
|
+
8020 PRINT" THE GALAXY -- YOU HAVE NO STARBASES LEFT!":GOTO5690
|
346
|
+
8060 REM TORPEDO, BASE NAV, D/D CALCULATOR
|
347
|
+
8070 IFK3<=0THEN4270
|
348
|
+
8080 X$="":IFK3>1THENX$="S"
|
349
|
+
8090 PRINT"FROM ENTERPRISE TO KLINGON BATTLE CRUSER";X$
|
350
|
+
8100 H8=0:FORI=1TO3:IFK(I,3)<=0THEN8480
|
351
|
+
8110 W1=K(I,1):X=K(I,2)
|
352
|
+
8120 C1=S1:A=S2:GOTO8220
|
353
|
+
8150 PRINT"DIRECTION/DISTANCE CALCULATOR:"
|
354
|
+
8160 PRINT"YOU ARE AT QUADRANT ";Q1;",";Q2;" SECTOR ";S1;",";S2
|
355
|
+
8170 PRINT"PLEASE ENTER":INPUT" INITIAL COORDINATES (X,Y)";C1,A
|
356
|
+
8200 INPUT" FINAL COORDINATES (X,Y)";W1,X
|
357
|
+
8220 X=X-A:A=C1-W1:IFX<0THEN8350
|
358
|
+
8250 IFA<0THEN8410
|
359
|
+
8260 IFX>0THEN8280
|
360
|
+
8270 IFA=0THENC1=5:GOTO8290
|
361
|
+
8280 C1=1
|
362
|
+
8290 IFABS(A)<=ABS(X)THEN8330
|
363
|
+
8310 PRINT"DIRECTION =";C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)):GOTO8460
|
364
|
+
8330 PRINT"DIRECTION =";C1+(ABS(A)/ABS(X)):GOTO8460
|
365
|
+
8350 IFA>0THENC1=3:GOTO8420
|
366
|
+
8360 IFX<>0THENC1=5:GOTO8290
|
367
|
+
8410 C1=7
|
368
|
+
8420 IFABS(A)>=ABS(X)THEN8450
|
369
|
+
8430 PRINT"DIRECTION =";C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)):GOTO8460
|
370
|
+
8450 PRINT"DIRECTION =";C1+(ABS(X)/ABS(A))
|
371
|
+
8460 PRINT"DISTANCE =";SQR(X^2+A^2):IFH8=1THEN1990
|
372
|
+
8480 NEXTI:GOTO1990
|
373
|
+
8500 IFB3<>0THENPRINT"FROM ENTERPRISE TO STARBASE:":W1=B4:X=B5:GOTO8120
|
374
|
+
8510 PRINT"MR. SPOCK REPORTS, 'SENSORS SHOW NO STARBASES IN THIS";
|
375
|
+
8520 PRINT" QUADRANT.'":GOTO1990
|
376
|
+
8580 REM FIND EMPTY PLACE IN QUADRANT (FOR THINGS)
|
377
|
+
8590 R1=FNR(1):R2=FNR(1):A$=" ":Z1=R1:Z2=R2:GOSUB8830:IFZ3=0THEN8590
|
378
|
+
8600 RETURN
|
379
|
+
8660 REM INSERT IN STRING ARRAY FOR QUADRANT
|
380
|
+
8670 S8=INT(Z2-.5)*3+INT(Z1-.5)*24+1
|
381
|
+
8675 IF LEN(A$)<>3THEN PRINT"ERROR":STOP
|
382
|
+
8680 IFS8=1THENQ$=A$+RIGHT$(Q$,189):RETURN
|
383
|
+
8690 IFS8=190THENQ$=LEFT$(Q$,189)+A$:RETURN
|
384
|
+
8700 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,190-S8):RETURN
|
385
|
+
8780 REM PRINTS DEVICE NAME
|
386
|
+
8790 ONR1GOTO8792,8794,8796,8798,8800,8802,8804,8806
|
387
|
+
8792 G2$="WARP ENGINES":RETURN
|
388
|
+
8794 G2$="SHORT RANGE SENSORS":RETURN
|
389
|
+
8796 G2$="LONG RANGE SENSORS":RETURN
|
390
|
+
8798 G2$="PHASER CONTROL":RETURN
|
391
|
+
8800 G2$="PHOTON TUBES":RETURN
|
392
|
+
8802 G2$="DAMAGE CONTROL":RETURN
|
393
|
+
8804 G2$="SHIELD CONTROL":RETURN
|
394
|
+
8806 G2$="LIBRARY-COMPUTER":RETURN
|
395
|
+
8820 REM STRING COMPARISON IN QUADRANT ARRAY
|
396
|
+
8830 Z1=INT(Z1+.5):Z2=INT(Z2+.5):S8=(Z2-1)*3+(Z1-1)*24+1:Z3=0
|
397
|
+
8890 IFMID$(Q$,S8,3)<>A$THENRETURN
|
398
|
+
8900 Z3=1:RETURN
|
399
|
+
9010 REM QUADRANT NAME IN G2$ FROM Z4,Z5 (=Q1,Q2)
|
400
|
+
9020 REM CALL WITH G5=1 TO GET REGION NAME ONLY
|
401
|
+
9030 IFZ5<=4THENONZ4GOTO9040,9050,9060,9070,9080,9090,9100,9110
|
402
|
+
9035 GOTO9120
|
403
|
+
9040 G2$="ANTARES":GOTO9210
|
404
|
+
9050 G2$="RIGEL":GOTO9210
|
405
|
+
9060 G2$="PROCYON":GOTO9210
|
406
|
+
9070 G2$="VEGA":GOTO9210
|
407
|
+
9080 G2$="CANOPUS":GOTO9210
|
408
|
+
9090 G2$="ALTAIR":GOTO9210
|
409
|
+
9100 G2$="SAGITTARIUS":GOTO9210
|
410
|
+
9110 G2$="POLLUX":GOTO9210
|
411
|
+
9120 ONZ4GOTO9130,9140,9150,9160,9170,9180,9190,9200
|
412
|
+
9130 G2$="SIRIUS":GOTO9210
|
413
|
+
9140 G2$="DENEB":GOTO9210
|
414
|
+
9150 G2$="CAPELLA":GOTO9210
|
415
|
+
9160 G2$="BETELGEUSE":GOTO9210
|
416
|
+
9170 G2$="ALDEBARAN":GOTO9210
|
417
|
+
9180 G2$="REGULUS":GOTO9210
|
418
|
+
9190 G2$="ARCTURUS":GOTO9210
|
419
|
+
9200 G2$="SPICA"
|
420
|
+
9210 IFG5<>1THENONZ5GOTO9230,9240,9250,9260,9230,9240,9250,9260
|
421
|
+
9220 RETURN
|
422
|
+
9230 G2$=G2$+" I":RETURN
|
423
|
+
9240 G2$=G2$+" II":RETURN
|
424
|
+
9250 G2$=G2$+" III":RETURN
|
425
|
+
9260 G2$=G2$+" IV":RETURN
|
@@ -0,0 +1,151 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
,------*------,
|
13
|
+
,------------- '--- ------'
|
14
|
+
'-------- --' / /
|
15
|
+
,---' '-------/ /--,
|
16
|
+
'----------------'
|
17
|
+
|
18
|
+
THE USS ENTERPRISE --- NCC-1701
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
YOUR ORDERS ARE AS FOLLOWS:
|
25
|
+
DESTROY THE 11 KLINGON WARSHIPS WHICH HAVE INVADED
|
26
|
+
THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS
|
27
|
+
ON STARDATE 3032 THIS GIVES YOU 32 DAYS. THERE ARE
|
28
|
+
5 STARBASES IN THE GALAXY FOR RESUPPLYING YOUR SHIP
|
29
|
+
|
30
|
+
|
31
|
+
YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED
|
32
|
+
IN THE GALACTIC QUADRANT, 'ALDEBARAN I'.
|
33
|
+
|
34
|
+
COMBAT AREA CONDITION RED
|
35
|
+
SHIELDS DANGEROUSLY LOW
|
36
|
+
---------------------------------
|
37
|
+
* STARDATE 3000
|
38
|
+
* * CONDITION *RED*
|
39
|
+
* +K+ QUADRANT 5 , 5
|
40
|
+
* <*> SECTOR 4 , 6
|
41
|
+
PHOTON TORPEDOES 10
|
42
|
+
TOTAL ENERGY 3000
|
43
|
+
* * SHIELDS 0
|
44
|
+
* KLINGONS REMAINING 11
|
45
|
+
---------------------------------
|
46
|
+
COMMAND? PHA
|
47
|
+
PHASERS LOCKED ON TARGET; ENERGY AVAILABLE = 3000 UNITS
|
48
|
+
NUMBER OF UNITS TO FIRE? 300
|
49
|
+
861 UNIT HIT ON KLINGON AT SECTOR 3 , 6
|
50
|
+
*** KLINGON DESTROYED ***
|
51
|
+
COMMAND? LRS
|
52
|
+
LONG RANGE SCAN FOR QUADRANT 5 , 5
|
53
|
+
-------------------
|
54
|
+
: 008 : 002 : 002 :
|
55
|
+
-------------------
|
56
|
+
: 103 : 008 : 006 :
|
57
|
+
-------------------
|
58
|
+
: 006 : 008 : 008 :
|
59
|
+
-------------------
|
60
|
+
COMMAND? NAV
|
61
|
+
COURSE (0-9)? 8
|
62
|
+
WARP FACTOR (0-8)? 0.2
|
63
|
+
---------------------------------
|
64
|
+
* STARDATE 3000.2
|
65
|
+
* * CONDITION GREEN
|
66
|
+
* QUADRANT 5 , 5
|
67
|
+
* SECTOR 6 , 8
|
68
|
+
PHOTON TORPEDOES 10
|
69
|
+
<*> TOTAL ENERGY 2688
|
70
|
+
* * SHIELDS 0
|
71
|
+
* KLINGONS REMAINING 10
|
72
|
+
---------------------------------
|
73
|
+
COMMAND? NAV
|
74
|
+
COURSE (0-9)? 3
|
75
|
+
WARP FACTOR (0-8)? 0.2
|
76
|
+
---------------------------------
|
77
|
+
* STARDATE 3000.3
|
78
|
+
* * CONDITION GREEN
|
79
|
+
* QUADRANT 5 , 5
|
80
|
+
* <*> SECTOR 4 , 8
|
81
|
+
PHOTON TORPEDOES 10
|
82
|
+
TOTAL ENERGY 2676
|
83
|
+
* * SHIELDS 0
|
84
|
+
* KLINGONS REMAINING 10
|
85
|
+
---------------------------------
|
86
|
+
COMMAND? NAV
|
87
|
+
COURSE (0-9)? 5
|
88
|
+
WARP FACTOR (0-8)? 0.2
|
89
|
+
DAMAGE CONTROL REPORT: LIBRARY-COMPUTER STATE OF REPAIR IMPROVED
|
90
|
+
|
91
|
+
---------------------------------
|
92
|
+
* STARDATE 3000.5
|
93
|
+
* * CONDITION GREEN
|
94
|
+
* QUADRANT 5 , 5
|
95
|
+
* <*> SECTOR 4 , 6
|
96
|
+
PHOTON TORPEDOES 10
|
97
|
+
TOTAL ENERGY 2664
|
98
|
+
* * SHIELDS 0
|
99
|
+
* KLINGONS REMAINING 10
|
100
|
+
---------------------------------
|
101
|
+
COMMAND? NAV
|
102
|
+
COURSE (0-9)? 6
|
103
|
+
WARP FACTOR (0-8)? 0.2
|
104
|
+
---------------------------------
|
105
|
+
* STARDATE 3000.7
|
106
|
+
* * CONDITION GREEN
|
107
|
+
* QUADRANT 5 , 5
|
108
|
+
* SECTOR 6 , 4
|
109
|
+
PHOTON TORPEDOES 10
|
110
|
+
<*> TOTAL ENERGY 2652
|
111
|
+
* * SHIELDS 0
|
112
|
+
* KLINGONS REMAINING 10
|
113
|
+
---------------------------------
|
114
|
+
COMMAND? NAV
|
115
|
+
COURSE (0-9)? 5
|
116
|
+
WARP FACTOR (0-8)? 1
|
117
|
+
|
118
|
+
NOW ENTERING CANOPUS IV QUADRANT . . .
|
119
|
+
|
120
|
+
COMBAT AREA CONDITION RED
|
121
|
+
SHIELDS DANGEROUSLY LOW
|
122
|
+
---------------------------------
|
123
|
+
STARDATE 3001.7
|
124
|
+
* +K+ CONDITION *RED*
|
125
|
+
* * QUADRANT 5 , 4
|
126
|
+
SECTOR 6 , 4
|
127
|
+
PHOTON TORPEDOES 10
|
128
|
+
<*> TOTAL ENERGY 2634
|
129
|
+
SHIELDS 0
|
130
|
+
KLINGONS REMAINING 10
|
131
|
+
---------------------------------
|
132
|
+
COMMAND? TORP
|
133
|
+
PHOTON TORPEDO COURSE (1-9)? 2.5
|
134
|
+
TORPEDO TRACK:
|
135
|
+
5 , 5
|
136
|
+
4 , 5
|
137
|
+
3 , 6
|
138
|
+
2 , 6
|
139
|
+
1 , 7
|
140
|
+
TORPEDO MISSED
|
141
|
+
73 UNIT HIT ON ENTERPRISE FROM SECTOR 2 , 5
|
142
|
+
|
143
|
+
THE ENTERPRISE HAS BEEN DESTROYED. THEN FEDERATION WILL BE CONQUERED
|
144
|
+
IT IS STARDATE 3001.8
|
145
|
+
THERE WERE 10 KLINGON BATTLE CRUISERS LEFT AT
|
146
|
+
THE END OF YOUR MISSION.
|
147
|
+
|
148
|
+
|
149
|
+
THE FEDERATION IS IN NEED OF A NEW STARSHIP COMMANDER
|
150
|
+
FOR A SIMILAR MISSION -- IF THERE IS A VOLUNTEER,
|
151
|
+
LET HIM STEP FORWARD AND ENTER 'AYE'? NO
|