basic101 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.simplecov +1 -0
- data/.yardopts +7 -0
- data/Changelog.md +3 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +75 -0
- data/LICENSE.md +9 -0
- data/README.md +193 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/bin/basic101 +10 -0
- data/lib/basic101/abs_function.rb +19 -0
- data/lib/basic101/argument_checker.rb +61 -0
- data/lib/basic101/arguments.rb +32 -0
- data/lib/basic101/array_reference.rb +52 -0
- data/lib/basic101/asc_function.rb +17 -0
- data/lib/basic101/basic_array.rb +69 -0
- data/lib/basic101/basic_comparisons.rb +20 -0
- data/lib/basic101/basic_float.rb +48 -0
- data/lib/basic101/basic_integer.rb +48 -0
- data/lib/basic101/basic_math.rb +22 -0
- data/lib/basic101/basic_numeric.rb +96 -0
- data/lib/basic101/basic_object.rb +35 -0
- data/lib/basic101/basic_string.rb +85 -0
- data/lib/basic101/binary_operation.rb +32 -0
- data/lib/basic101/binary_operations.rb +26 -0
- data/lib/basic101/built_in_functions.rb +31 -0
- data/lib/basic101/chr_function.rb +17 -0
- data/lib/basic101/cos_function.rb +17 -0
- data/lib/basic101/data_statement.rb +24 -0
- data/lib/basic101/define_function_statement.rb +23 -0
- data/lib/basic101/dim_statement.rb +25 -0
- data/lib/basic101/else_statement.rb +22 -0
- data/lib/basic101/end_statement.rb +13 -0
- data/lib/basic101/endif_statement.rb +19 -0
- data/lib/basic101/errors.rb +50 -0
- data/lib/basic101/exp_function.rb +17 -0
- data/lib/basic101/for_stack.rb +48 -0
- data/lib/basic101/for_statement.rb +57 -0
- data/lib/basic101/function.rb +11 -0
- data/lib/basic101/function_call.rb +32 -0
- data/lib/basic101/function_identifier.rb +8 -0
- data/lib/basic101/functions.rb +39 -0
- data/lib/basic101/gosub_statement.rb +23 -0
- data/lib/basic101/goto_statement.rb +23 -0
- data/lib/basic101/identifier.rb +23 -0
- data/lib/basic101/identity.rb +18 -0
- data/lib/basic101/if_statement.rb +31 -0
- data/lib/basic101/input.rb +44 -0
- data/lib/basic101/input_reader.rb +55 -0
- data/lib/basic101/input_statement.rb +46 -0
- data/lib/basic101/int_function.rb +17 -0
- data/lib/basic101/left_function.rb +19 -0
- data/lib/basic101/len_function.rb +18 -0
- data/lib/basic101/let_statement.rb +24 -0
- data/lib/basic101/line.rb +32 -0
- data/lib/basic101/log_function.rb +17 -0
- data/lib/basic101/main.rb +24 -0
- data/lib/basic101/mid_function.rb +20 -0
- data/lib/basic101/negate_operation.rb +21 -0
- data/lib/basic101/next_statement.rb +34 -0
- data/lib/basic101/not_operation.rb +23 -0
- data/lib/basic101/null_prompt_delimeter.rb +12 -0
- data/lib/basic101/null_transcript.rb +20 -0
- data/lib/basic101/numeric_identifier.rb +16 -0
- data/lib/basic101/on_goto_statement.rb +29 -0
- data/lib/basic101/output.rb +73 -0
- data/lib/basic101/parser.rb +457 -0
- data/lib/basic101/power_operation.rb +24 -0
- data/lib/basic101/print_comma.rb +20 -0
- data/lib/basic101/print_semicolon.rb +19 -0
- data/lib/basic101/print_statement.rb +33 -0
- data/lib/basic101/program.rb +100 -0
- data/lib/basic101/program_counter.rb +52 -0
- data/lib/basic101/prompt_delimeter.rb +13 -0
- data/lib/basic101/randomize_statement.rb +13 -0
- data/lib/basic101/read_statement.rb +25 -0
- data/lib/basic101/reference.rb +25 -0
- data/lib/basic101/remark_statement.rb +12 -0
- data/lib/basic101/restore_statement.rb +23 -0
- data/lib/basic101/return_statement.rb +16 -0
- data/lib/basic101/right_function.rb +19 -0
- data/lib/basic101/rnd_function.rb +24 -0
- data/lib/basic101/runtime.rb +132 -0
- data/lib/basic101/scalar_reference.rb +19 -0
- data/lib/basic101/sgn_function.rb +17 -0
- data/lib/basic101/sin_function.rb +17 -0
- data/lib/basic101/sqr_function.rb +17 -0
- data/lib/basic101/statement.rb +36 -0
- data/lib/basic101/stop_statement.rb +14 -0
- data/lib/basic101/str_function.rb +16 -0
- data/lib/basic101/string_identifier.rb +16 -0
- data/lib/basic101/tab.rb +18 -0
- data/lib/basic101/tab_function.rb +17 -0
- data/lib/basic101/tan_function.rb +17 -0
- data/lib/basic101/transcript.rb +37 -0
- data/lib/basic101/transform.rb +264 -0
- data/lib/basic101/user_defined_function.rb +54 -0
- data/lib/basic101/val_function.rb +16 -0
- data/lib/basic101.rb +93 -0
- data/rake_tasks/default.rake +1 -0
- data/rake_tasks/integration.rake +8 -0
- data/rake_tasks/jeweler.rake +28 -0
- data/rake_tasks/spec.rake +8 -0
- data/rake_tasks/test.rake +2 -0
- data/rake_tasks/yard.rake +3 -0
- data/test/integration/arguments.rb +25 -0
- data/test/integration/errors.rb +7 -0
- data/test/integration/integration_test.rb +28 -0
- data/test/integration/main.rb +49 -0
- data/test/integration/output_file.rb +40 -0
- data/test/integration/test.rb +135 -0
- data/test/integration/tests/basic_computer_games/23-match.bas +64 -0
- data/test/integration/tests/basic_computer_games/23-match.input +1 -0
- data/test/integration/tests/basic_computer_games/23-match.output +29 -0
- data/test/integration/tests/basic_computer_games/3dplot.bas +17 -0
- data/test/integration/tests/basic_computer_games/3dplot.input +0 -0
- data/test/integration/tests/basic_computer_games/3dplot.output +47 -0
- data/test/integration/tests/basic_computer_games/aceyducy.bas +100 -0
- data/test/integration/tests/basic_computer_games/aceyducy.input +8 -0
- data/test/integration/tests/basic_computer_games/aceyducy.output +78 -0
- data/test/integration/tests/basic_computer_games/amazing.bas +138 -0
- data/test/integration/tests/basic_computer_games/amazing.input +1 -0
- data/test/integration/tests/basic_computer_games/amazing.output +32 -0
- data/test/integration/tests/basic_computer_games/animal.bas +71 -0
- data/test/integration/tests/basic_computer_games/animal.input +17 -0
- data/test/integration/tests/basic_computer_games/animal.output +38 -0
- data/test/integration/tests/basic_computer_games/awari.bas +70 -0
- data/test/integration/tests/basic_computer_games/awari.input +11 -0
- data/test/integration/tests/basic_computer_games/awari.output +117 -0
- data/test/integration/tests/basic_computer_games/bagels.bas +81 -0
- data/test/integration/tests/basic_computer_games/bagels.input +12 -0
- data/test/integration/tests/basic_computer_games/bagels.output +42 -0
- data/test/integration/tests/basic_computer_games/banner.bas +94 -0
- data/test/integration/tests/basic_computer_games/banner.input +6 -0
- data/test/integration/tests/basic_computer_games/banner.output +135 -0
- data/test/integration/tests/basic_computer_games/basketbl.bas +196 -0
- data/test/integration/tests/basic_computer_games/basketbl.input +46 -0
- data/test/integration/tests/basic_computer_games/basketbl.output +509 -0
- data/test/integration/tests/basic_computer_games/batnum.bas +90 -0
- data/test/integration/tests/basic_computer_games/batnum.input +14 -0
- data/test/integration/tests/basic_computer_games/batnum.output +67 -0
- data/test/integration/tests/basic_computer_games/battle.bas +196 -0
- data/test/integration/tests/basic_computer_games/battle.input +21 -0
- data/test/integration/tests/basic_computer_games/battle.output +118 -0
- data/test/integration/tests/basic_computer_games/blackjck.bas +321 -0
- data/test/integration/tests/basic_computer_games/blackjck.input +26 -0
- data/test/integration/tests/basic_computer_games/blackjck.output +144 -0
- data/test/integration/tests/basic_computer_games/bombard.bas +93 -0
- data/test/integration/tests/basic_computer_games/bombard.input +20 -0
- data/test/integration/tests/basic_computer_games/bombard.output +175 -0
- data/test/integration/tests/basic_computer_games/bounce.bas +53 -0
- data/test/integration/tests/basic_computer_games/bounce.input +0 -0
- data/test/integration/tests/basic_computer_games/bounce.output +15 -0
- data/test/integration/tests/basic_computer_games/bowling.bas +101 -0
- data/test/integration/tests/basic_computer_games/bowling.input +23 -0
- data/test/integration/tests/basic_computer_games/bowling.output +229 -0
- data/test/integration/tests/basic_computer_games/boxing.bas +142 -0
- data/test/integration/tests/basic_computer_games/boxing.input +8 -0
- data/test/integration/tests/basic_computer_games/boxing.output +47 -0
- data/test/integration/tests/basic_computer_games/bug.bas +256 -0
- data/test/integration/tests/basic_computer_games/bug.input +17 -0
- data/test/integration/tests/basic_computer_games/bug.output +847 -0
- data/test/integration/tests/basic_computer_games/bullfght.bas +193 -0
- data/test/integration/tests/basic_computer_games/bullfght.input +4 -0
- data/test/integration/tests/basic_computer_games/bullfght.output +60 -0
- data/test/integration/tests/basic_computer_games/bullseye.bas +37 -0
- data/test/integration/tests/basic_computer_games/bullseye.input +10 -0
- data/test/integration/tests/basic_computer_games/bullseye.output +79 -0
- data/test/integration/tests/basic_computer_games/bunny.bas +40 -0
- data/test/integration/tests/basic_computer_games/bunny.input +0 -0
- data/test/integration/tests/basic_computer_games/bunny.output +67 -0
- data/test/integration/tests/basic_computer_games/buzzword.bas +25 -0
- data/test/integration/tests/basic_computer_games/buzzword.input +4 -0
- data/test/integration/tests/basic_computer_games/buzzword.output +25 -0
- data/test/integration/tests/basic_computer_games/calendar.bas +58 -0
- data/test/integration/tests/basic_computer_games/calendar.input +0 -0
- data/test/integration/tests/basic_computer_games/calendar.output +213 -0
- data/test/integration/tests/basic_computer_games/change.bas +51 -0
- data/test/integration/tests/basic_computer_games/change.input +4 -0
- data/test/integration/tests/basic_computer_games/change.output +28 -0
- data/test/integration/tests/basic_computer_games/checkers.bas +82 -0
- data/test/integration/tests/basic_computer_games/checkers.input +74 -0
- data/test/integration/tests/basic_computer_games/checkers.output +673 -0
- data/test/integration/tests/basic_computer_games/chemist.bas +27 -0
- data/test/integration/tests/basic_computer_games/chemist.input +11 -0
- data/test/integration/tests/basic_computer_games/chemist.output +54 -0
- data/test/integration/tests/basic_computer_games/chief.bas +51 -0
- data/test/integration/tests/basic_computer_games/chief.input +5 -0
- data/test/integration/tests/basic_computer_games/chief.output +19 -0
- data/test/integration/tests/basic_computer_games/chomp.bas +104 -0
- data/test/integration/tests/basic_computer_games/chomp.input +15 -0
- data/test/integration/tests/basic_computer_games/chomp.output +159 -0
- data/test/integration/tests/basic_computer_games/combat.bas +124 -0
- data/test/integration/tests/basic_computer_games/combat.input +7 -0
- data/test/integration/tests/basic_computer_games/combat.output +33 -0
- data/test/integration/tests/basic_computer_games/craps.bas +82 -0
- data/test/integration/tests/basic_computer_games/craps.input +9 -0
- data/test/integration/tests/basic_computer_games/craps.output +51 -0
- data/test/integration/tests/basic_computer_games/cube.bas +161 -0
- data/test/integration/tests/basic_computer_games/cube.input +25 -0
- data/test/integration/tests/basic_computer_games/cube.output +72 -0
- data/test/integration/tests/basic_computer_games/depthchg.bas +33 -0
- data/test/integration/tests/basic_computer_games/depthchg.input +16 -0
- data/test/integration/tests/basic_computer_games/depthchg.output +83 -0
- data/test/integration/tests/basic_computer_games/diamond.bas +27 -0
- data/test/integration/tests/basic_computer_games/diamond.input +1 -0
- data/test/integration/tests/basic_computer_games/diamond.output +65 -0
- data/test/integration/tests/basic_computer_games/dice.bas +31 -0
- data/test/integration/tests/basic_computer_games/dice.input +4 -0
- data/test/integration/tests/basic_computer_games/dice.output +46 -0
- data/test/integration/tests/basic_computer_games/digits.bas +78 -0
- data/test/integration/tests/basic_computer_games/digits.input +5 -0
- data/test/integration/tests/basic_computer_games/digits.output +70 -0
- data/test/integration/tests/basic_computer_games/evenwin1.bas +128 -0
- data/test/integration/tests/basic_computer_games/evenwin1.input +13 -0
- data/test/integration/tests/basic_computer_games/evenwin1.output +116 -0
- data/test/integration/tests/basic_computer_games/evenwin2.bas +70 -0
- data/test/integration/tests/basic_computer_games/evenwin2.input +14 -0
- data/test/integration/tests/basic_computer_games/evenwin2.output +56 -0
- data/test/integration/tests/basic_computer_games/flipflop.bas +79 -0
- data/test/integration/tests/basic_computer_games/flipflop.input +8 -0
- data/test/integration/tests/basic_computer_games/flipflop.output +45 -0
- data/test/integration/tests/basic_computer_games/footbal1.bas +298 -0
- data/test/integration/tests/basic_computer_games/footbal1.input +13 -0
- data/test/integration/tests/basic_computer_games/footbal1.output +315 -0
- data/test/integration/tests/basic_computer_games/footbal2.bas +181 -0
- data/test/integration/tests/basic_computer_games/footbal2.input +23 -0
- data/test/integration/tests/basic_computer_games/footbal2.output +318 -0
- data/test/integration/tests/basic_computer_games/furtradr.bas +170 -0
- data/test/integration/tests/basic_computer_games/furtradr.input +20 -0
- data/test/integration/tests/basic_computer_games/furtradr.output +133 -0
- data/test/integration/tests/basic_computer_games/golf.bas +244 -0
- data/test/integration/tests/basic_computer_games/golf.input +11 -0
- data/test/integration/tests/basic_computer_games/golf.output +69 -0
- data/test/integration/tests/basic_computer_games/gomoko.bas +54 -0
- data/test/integration/tests/basic_computer_games/gomoko.input +6 -0
- data/test/integration/tests/basic_computer_games/gomoko.output +66 -0
- data/test/integration/tests/basic_computer_games/guess.bas +40 -0
- data/test/integration/tests/basic_computer_games/guess.input +8 -0
- data/test/integration/tests/basic_computer_games/guess.output +37 -0
- data/test/integration/tests/basic_computer_games/gunner.bas +52 -0
- data/test/integration/tests/basic_computer_games/gunner.input +18 -0
- data/test/integration/tests/basic_computer_games/gunner.output +91 -0
- data/test/integration/tests/basic_computer_games/hamurabi.bas +119 -0
- data/test/integration/tests/basic_computer_games/hamurabi.input +7 -0
- data/test/integration/tests/basic_computer_games/hamurabi.output +51 -0
- data/test/integration/tests/basic_computer_games/hangman.bas +81 -0
- data/test/integration/tests/basic_computer_games/hangman.input +69 -0
- data/test/integration/tests/basic_computer_games/hangman.output +889 -0
- data/test/integration/tests/basic_computer_games/hello.bas +83 -0
- data/test/integration/tests/basic_computer_games/hello.input +7 -0
- data/test/integration/tests/basic_computer_games/hello.output +46 -0
- data/test/integration/tests/basic_computer_games/hexapawn.bas +174 -0
- data/test/integration/tests/basic_computer_games/hexapawn.input +38 -0
- data/test/integration/tests/basic_computer_games/hexapawn.output +521 -0
- data/test/integration/tests/basic_computer_games/hi-q.bas +135 -0
- data/test/integration/tests/basic_computer_games/hi-q.input +14 -0
- data/test/integration/tests/basic_computer_games/hi-q.output +115 -0
- data/test/integration/tests/basic_computer_games/hilo.bas +29 -0
- data/test/integration/tests/basic_computer_games/hilo.input +20 -0
- data/test/integration/tests/basic_computer_games/hilo.output +76 -0
- data/test/integration/tests/basic_computer_games/hockey.bas +210 -0
- data/test/integration/tests/basic_computer_games/hockey.input +59 -0
- data/test/integration/tests/basic_computer_games/hockey.output +243 -0
- data/test/integration/tests/basic_computer_games/horsrace.bas +130 -0
- data/test/integration/tests/basic_computer_games/horsrace.input +11 -0
- data/test/integration/tests/basic_computer_games/horsrace.output +517 -0
- data/test/integration/tests/basic_computer_games/hurkle.bas +51 -0
- data/test/integration/tests/basic_computer_games/hurkle.input +16 -0
- data/test/integration/tests/basic_computer_games/hurkle.output +81 -0
- data/test/integration/tests/basic_computer_games/kinema.bas +34 -0
- data/test/integration/tests/basic_computer_games/kinema.input +9 -0
- data/test/integration/tests/basic_computer_games/kinema.output +64 -0
- data/test/integration/tests/basic_computer_games/king.bas +268 -0
- data/test/integration/tests/basic_computer_games/king.input +7 -0
- data/test/integration/tests/basic_computer_games/king.output +57 -0
- data/test/integration/tests/basic_computer_games/lem.bas +246 -0
- data/test/integration/tests/basic_computer_games/lem.input +4 -0
- data/test/integration/tests/basic_computer_games/lem.output +68 -0
- data/test/integration/tests/basic_computer_games/letter.bas +26 -0
- data/test/integration/tests/basic_computer_games/letter.input +24 -0
- data/test/integration/tests/basic_computer_games/letter.output +123 -0
- data/test/integration/tests/basic_computer_games/life.bas +66 -0
- data/test/integration/tests/basic_computer_games/life.input +4 -0
- data/test/integration/tests/basic_computer_games/life.options +1 -0
- data/test/integration/tests/basic_computer_games/life.output +200 -0
- data/test/integration/tests/basic_computer_games/life2.bas +83 -0
- data/test/integration/tests/basic_computer_games/life2.input +17 -0
- data/test/integration/tests/basic_computer_games/life2.output +113 -0
- data/test/integration/tests/basic_computer_games/litquiz.bas +49 -0
- data/test/integration/tests/basic_computer_games/litquiz.input +4 -0
- data/test/integration/tests/basic_computer_games/litquiz.output +36 -0
- data/test/integration/tests/basic_computer_games/love.bas +34 -0
- data/test/integration/tests/basic_computer_games/love.input +1 -0
- data/test/integration/tests/basic_computer_games/love.output +67 -0
- data/test/integration/tests/basic_computer_games/lunar.bas +48 -0
- data/test/integration/tests/basic_computer_games/lunar.input +87 -0
- data/test/integration/tests/basic_computer_games/lunar.output +195 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.bas +232 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.input +18 -0
- data/test/integration/tests/basic_computer_games/mastrmnd.output +67 -0
- data/test/integration/tests/basic_computer_games/mathdice.bas +60 -0
- data/test/integration/tests/basic_computer_games/mathdice.input +4 -0
- data/test/integration/tests/basic_computer_games/mathdice.output +86 -0
- data/test/integration/tests/basic_computer_games/mugwump.bas +56 -0
- data/test/integration/tests/basic_computer_games/mugwump.input +16 -0
- data/test/integration/tests/basic_computer_games/mugwump.output +139 -0
- data/test/integration/tests/basic_computer_games/name.bas +25 -0
- data/test/integration/tests/basic_computer_games/name.input +2 -0
- data/test/integration/tests/basic_computer_games/name.output +22 -0
- data/test/integration/tests/basic_computer_games/nicoma.bas +34 -0
- data/test/integration/tests/basic_computer_games/nicoma.input +8 -0
- data/test/integration/tests/basic_computer_games/nicoma.output +36 -0
- data/test/integration/tests/basic_computer_games/nim.bas +156 -0
- data/test/integration/tests/basic_computer_games/nim.input +8 -0
- data/test/integration/tests/basic_computer_games/nim.output +30 -0
- data/test/integration/tests/basic_computer_games/number.bas +37 -0
- data/test/integration/tests/basic_computer_games/number.input +19 -0
- data/test/integration/tests/basic_computer_games/number.output +73 -0
- data/test/integration/tests/basic_computer_games/onecheck.bas +86 -0
- data/test/integration/tests/basic_computer_games/onecheck.input +6 -0
- data/test/integration/tests/basic_computer_games/onecheck.output +77 -0
- data/test/integration/tests/basic_computer_games/orbit.bas +96 -0
- data/test/integration/tests/basic_computer_games/orbit.input +10 -0
- data/test/integration/tests/basic_computer_games/orbit.output +113 -0
- data/test/integration/tests/basic_computer_games/pizza.bas +68 -0
- data/test/integration/tests/basic_computer_games/pizza.input +10 -0
- data/test/integration/tests/basic_computer_games/pizza.output +93 -0
- data/test/integration/tests/basic_computer_games/poetry.bas +42 -0
- data/test/integration/tests/basic_computer_games/poetry.input +0 -0
- data/test/integration/tests/basic_computer_games/poetry.options +1 -0
- data/test/integration/tests/basic_computer_games/poetry.output +50 -0
- data/test/integration/tests/basic_computer_games/poker.bas +416 -0
- data/test/integration/tests/basic_computer_games/poker.input +34 -0
- data/test/integration/tests/basic_computer_games/poker.output +197 -0
- data/test/integration/tests/basic_computer_games/queen.bas +168 -0
- data/test/integration/tests/basic_computer_games/queen.input +10 -0
- data/test/integration/tests/basic_computer_games/queen.output +133 -0
- data/test/integration/tests/basic_computer_games/reverse.bas +62 -0
- data/test/integration/tests/basic_computer_games/reverse.input +12 -0
- data/test/integration/tests/basic_computer_games/reverse.output +79 -0
- data/test/integration/tests/basic_computer_games/rocket.bas +71 -0
- data/test/integration/tests/basic_computer_games/rocket.input +42 -0
- data/test/integration/tests/basic_computer_games/rocket.output +149 -0
- data/test/integration/tests/basic_computer_games/rocksp.bas +33 -0
- data/test/integration/tests/basic_computer_games/rocksp.input +9 -0
- data/test/integration/tests/basic_computer_games/rocksp.output +69 -0
- data/test/integration/tests/basic_computer_games/roulette.bas +239 -0
- data/test/integration/tests/basic_computer_games/roulette.input +9 -0
- data/test/integration/tests/basic_computer_games/roulette.output +98 -0
- data/test/integration/tests/basic_computer_games/rusrou.bas +26 -0
- data/test/integration/tests/basic_computer_games/rusrou.input +9 -0
- data/test/integration/tests/basic_computer_games/rusrou.output +50 -0
- data/test/integration/tests/basic_computer_games/salvo.bas +329 -0
- data/test/integration/tests/basic_computer_games/salvo.input +21 -0
- data/test/integration/tests/basic_computer_games/salvo.output +49 -0
- data/test/integration/tests/basic_computer_games/sinewave.bas +17 -0
- data/test/integration/tests/basic_computer_games/sinewave.input +0 -0
- data/test/integration/tests/basic_computer_games/sinewave.output +168 -0
- data/test/integration/tests/basic_computer_games/slalom.bas +165 -0
- data/test/integration/tests/basic_computer_games/slalom.input +20 -0
- data/test/integration/tests/basic_computer_games/slalom.output +122 -0
- data/test/integration/tests/basic_computer_games/slots.bas +134 -0
- data/test/integration/tests/basic_computer_games/slots.input +2 -0
- data/test/integration/tests/basic_computer_games/slots.output +20 -0
- data/test/integration/tests/basic_computer_games/splat.bas +128 -0
- data/test/integration/tests/basic_computer_games/splat.input +9 -0
- data/test/integration/tests/basic_computer_games/splat.output +61 -0
- data/test/integration/tests/basic_computer_games/stars.bas +54 -0
- data/test/integration/tests/basic_computer_games/stars.input +15 -0
- data/test/integration/tests/basic_computer_games/stars.output +70 -0
- data/test/integration/tests/basic_computer_games/stock.bas +232 -0
- data/test/integration/tests/basic_computer_games/stock.input +30 -0
- data/test/integration/tests/basic_computer_games/stock.output +156 -0
- data/test/integration/tests/basic_computer_games/superstartrek.bas +425 -0
- data/test/integration/tests/basic_computer_games/superstartrek.input +21 -0
- data/test/integration/tests/basic_computer_games/superstartrek.output +151 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.bas +127 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.input +1 -0
- data/test/integration/tests/basic_computer_games/superstartrekins.output +134 -0
- data/test/integration/tests/basic_computer_games/synonym.bas +53 -0
- data/test/integration/tests/basic_computer_games/synonym.input +13 -0
- data/test/integration/tests/basic_computer_games/synonym.output +57 -0
- data/test/integration/tests/basic_computer_games/target.bas +51 -0
- data/test/integration/tests/basic_computer_games/target.input +2 -0
- data/test/integration/tests/basic_computer_games/target.output +39 -0
- data/test/integration/tests/basic_computer_games/tictac1.bas +69 -0
- data/test/integration/tests/basic_computer_games/tictac1.input +10 -0
- data/test/integration/tests/basic_computer_games/tictac1.output +49 -0
- data/test/integration/tests/basic_computer_games/tictac2.bas +114 -0
- data/test/integration/tests/basic_computer_games/tictac2.input +6 -0
- data/test/integration/tests/basic_computer_games/tictac2.output +104 -0
- data/test/integration/tests/basic_computer_games/towers.bas +125 -0
- data/test/integration/tests/basic_computer_games/towers.input +9 -0
- data/test/integration/tests/basic_computer_games/towers.output +70 -0
- data/test/integration/tests/basic_computer_games/train.bas +24 -0
- data/test/integration/tests/basic_computer_games/train.input +4 -0
- data/test/integration/tests/basic_computer_games/train.output +23 -0
- data/test/integration/tests/basic_computer_games/trap.bas +49 -0
- data/test/integration/tests/basic_computer_games/trap.input +7 -0
- data/test/integration/tests/basic_computer_games/trap.output +40 -0
- data/test/integration/tests/basic_computer_games/war.bas +68 -0
- data/test/integration/tests/basic_computer_games/war.input +11 -0
- data/test/integration/tests/basic_computer_games/war.output +54 -0
- data/test/integration/tests/basic_computer_games/weekday.bas +150 -0
- data/test/integration/tests/basic_computer_games/weekday.input +2 -0
- data/test/integration/tests/basic_computer_games/weekday.output +28 -0
- data/test/integration/tests/basic_computer_games/word.bas +65 -0
- data/test/integration/tests/basic_computer_games/word.input +6 -0
- data/test/integration/tests/basic_computer_games/word.output +0 -0
- data/test/integration/tests/fast/abs.bas +5 -0
- data/test/integration/tests/fast/abs.input +0 -0
- data/test/integration/tests/fast/abs.output +5 -0
- data/test/integration/tests/fast/add.bas +5 -0
- data/test/integration/tests/fast/add.input +0 -0
- data/test/integration/tests/fast/add.output +5 -0
- data/test/integration/tests/fast/and.bas +5 -0
- data/test/integration/tests/fast/and.input +0 -0
- data/test/integration/tests/fast/and.output +5 -0
- data/test/integration/tests/fast/array.bas +11 -0
- data/test/integration/tests/fast/array.input +0 -0
- data/test/integration/tests/fast/array.output +6 -0
- data/test/integration/tests/fast/asc.bas +1 -0
- data/test/integration/tests/fast/asc.input +0 -0
- data/test/integration/tests/fast/asc.output +1 -0
- data/test/integration/tests/fast/chr.bas +1 -0
- data/test/integration/tests/fast/chr.input +0 -0
- data/test/integration/tests/fast/chr.output +1 -0
- data/test/integration/tests/fast/cos.bas +1 -0
- data/test/integration/tests/fast/cos.input +0 -0
- data/test/integration/tests/fast/cos.output +1 -0
- data/test/integration/tests/fast/def_fn.bas +9 -0
- data/test/integration/tests/fast/def_fn.input +0 -0
- data/test/integration/tests/fast/def_fn.output +5 -0
- data/test/integration/tests/fast/divide.bas +5 -0
- data/test/integration/tests/fast/divide.input +0 -0
- data/test/integration/tests/fast/divide.output +5 -0
- data/test/integration/tests/fast/end.bas +3 -0
- data/test/integration/tests/fast/end.input +0 -0
- data/test/integration/tests/fast/end.output +1 -0
- data/test/integration/tests/fast/eq.bas +3 -0
- data/test/integration/tests/fast/eq.input +0 -0
- data/test/integration/tests/fast/eq.output +3 -0
- data/test/integration/tests/fast/exp.bas +2 -0
- data/test/integration/tests/fast/exp.input +0 -0
- data/test/integration/tests/fast/exp.output +2 -0
- data/test/integration/tests/fast/float.bas +3 -0
- data/test/integration/tests/fast/float.input +0 -0
- data/test/integration/tests/fast/float.output +2 -0
- data/test/integration/tests/fast/for_next.bas +61 -0
- data/test/integration/tests/fast/for_next.input +0 -0
- data/test/integration/tests/fast/for_next.output +46 -0
- data/test/integration/tests/fast/ge.bas +3 -0
- data/test/integration/tests/fast/ge.input +0 -0
- data/test/integration/tests/fast/ge.output +3 -0
- data/test/integration/tests/fast/gosub_return.bas +10 -0
- data/test/integration/tests/fast/gosub_return.input +0 -0
- data/test/integration/tests/fast/gosub_return.output +4 -0
- data/test/integration/tests/fast/goto.bas +3 -0
- data/test/integration/tests/fast/goto.input +0 -0
- data/test/integration/tests/fast/goto.output +1 -0
- data/test/integration/tests/fast/gt.bas +3 -0
- data/test/integration/tests/fast/gt.input +0 -0
- data/test/integration/tests/fast/gt.output +3 -0
- data/test/integration/tests/fast/if.bas +25 -0
- data/test/integration/tests/fast/if.input +0 -0
- data/test/integration/tests/fast/if.output +8 -0
- data/test/integration/tests/fast/input.bas +24 -0
- data/test/integration/tests/fast/input.input +10 -0
- data/test/integration/tests/fast/input.output +28 -0
- data/test/integration/tests/fast/int.bas +5 -0
- data/test/integration/tests/fast/int.input +0 -0
- data/test/integration/tests/fast/int.output +5 -0
- data/test/integration/tests/fast/integer_plus_string.bas +1 -0
- data/test/integration/tests/fast/integer_plus_string.input +0 -0
- data/test/integration/tests/fast/integer_plus_string.output +1 -0
- data/test/integration/tests/fast/invalid_argument.bas +1 -0
- data/test/integration/tests/fast/invalid_argument.input +0 -0
- data/test/integration/tests/fast/invalid_argument.output +1 -0
- data/test/integration/tests/fast/le.bas +3 -0
- data/test/integration/tests/fast/le.input +0 -0
- data/test/integration/tests/fast/le.output +3 -0
- data/test/integration/tests/fast/left.bas +1 -0
- data/test/integration/tests/fast/left.input +0 -0
- data/test/integration/tests/fast/left.output +1 -0
- data/test/integration/tests/fast/len.bas +2 -0
- data/test/integration/tests/fast/len.input +0 -0
- data/test/integration/tests/fast/len.output +2 -0
- data/test/integration/tests/fast/let.bas +6 -0
- data/test/integration/tests/fast/let.input +0 -0
- data/test/integration/tests/fast/let.output +4 -0
- data/test/integration/tests/fast/log.bas +1 -0
- data/test/integration/tests/fast/log.input +0 -0
- data/test/integration/tests/fast/log.output +1 -0
- data/test/integration/tests/fast/lt.bas +3 -0
- data/test/integration/tests/fast/lt.input +0 -0
- data/test/integration/tests/fast/lt.output +3 -0
- data/test/integration/tests/fast/math.output +0 -0
- data/test/integration/tests/fast/mid.bas +2 -0
- data/test/integration/tests/fast/mid.input +0 -0
- data/test/integration/tests/fast/mid.output +2 -0
- data/test/integration/tests/fast/multiply.bas +5 -0
- data/test/integration/tests/fast/multiply.input +0 -0
- data/test/integration/tests/fast/multiply.output +5 -0
- data/test/integration/tests/fast/ne.bas +3 -0
- data/test/integration/tests/fast/ne.input +0 -0
- data/test/integration/tests/fast/ne.output +3 -0
- data/test/integration/tests/fast/negate.bas +4 -0
- data/test/integration/tests/fast/negate.input +0 -0
- data/test/integration/tests/fast/negate.output +3 -0
- data/test/integration/tests/fast/not.bas +4 -0
- data/test/integration/tests/fast/not.input +0 -0
- data/test/integration/tests/fast/not.output +4 -0
- data/test/integration/tests/fast/on_goto.bas +6 -0
- data/test/integration/tests/fast/on_goto.input +0 -0
- data/test/integration/tests/fast/on_goto.output +2 -0
- data/test/integration/tests/fast/or.bas +5 -0
- data/test/integration/tests/fast/or.input +0 -0
- data/test/integration/tests/fast/or.output +5 -0
- data/test/integration/tests/fast/parentheses.bas +1 -0
- data/test/integration/tests/fast/parentheses.input +0 -0
- data/test/integration/tests/fast/parentheses.output +1 -0
- data/test/integration/tests/fast/power.bas +4 -0
- data/test/integration/tests/fast/power.input +0 -0
- data/test/integration/tests/fast/power.output +4 -0
- data/test/integration/tests/fast/print.bas +6 -0
- data/test/integration/tests/fast/print.input +0 -0
- data/test/integration/tests/fast/print.output +4 -0
- data/test/integration/tests/fast/read_data.bas +15 -0
- data/test/integration/tests/fast/read_data.input +0 -0
- data/test/integration/tests/fast/read_data.output +4 -0
- data/test/integration/tests/fast/rem.bas +1 -0
- data/test/integration/tests/fast/rem.input +0 -0
- data/test/integration/tests/fast/rem.output +0 -0
- data/test/integration/tests/fast/right.bas +1 -0
- data/test/integration/tests/fast/right.input +0 -0
- data/test/integration/tests/fast/right.output +1 -0
- data/test/integration/tests/fast/rnd.bas +5 -0
- data/test/integration/tests/fast/rnd.input +0 -0
- data/test/integration/tests/fast/rnd.output +5 -0
- data/test/integration/tests/fast/sgn.bas +5 -0
- data/test/integration/tests/fast/sgn.input +0 -0
- data/test/integration/tests/fast/sgn.output +5 -0
- data/test/integration/tests/fast/sin.bas +1 -0
- data/test/integration/tests/fast/sin.input +0 -0
- data/test/integration/tests/fast/sin.output +1 -0
- data/test/integration/tests/fast/sqr.bas +2 -0
- data/test/integration/tests/fast/sqr.input +0 -0
- data/test/integration/tests/fast/sqr.output +2 -0
- data/test/integration/tests/fast/stop.bas +3 -0
- data/test/integration/tests/fast/stop.input +0 -0
- data/test/integration/tests/fast/stop.output +2 -0
- data/test/integration/tests/fast/str.bas +3 -0
- data/test/integration/tests/fast/str.input +0 -0
- data/test/integration/tests/fast/str.output +3 -0
- data/test/integration/tests/fast/string_addition.bas +1 -0
- data/test/integration/tests/fast/string_addition.input +0 -0
- data/test/integration/tests/fast/string_addition.output +1 -0
- data/test/integration/tests/fast/string_comparisons.bas +7 -0
- data/test/integration/tests/fast/string_comparisons.input +0 -0
- data/test/integration/tests/fast/string_comparisons.output +4 -0
- data/test/integration/tests/fast/string_plus_integer.bas +1 -0
- data/test/integration/tests/fast/string_plus_integer.input +0 -0
- data/test/integration/tests/fast/string_plus_integer.output +1 -0
- data/test/integration/tests/fast/subtract.bas +5 -0
- data/test/integration/tests/fast/subtract.input +0 -0
- data/test/integration/tests/fast/subtract.output +5 -0
- data/test/integration/tests/fast/tab.bas +4 -0
- data/test/integration/tests/fast/tab.input +0 -0
- data/test/integration/tests/fast/tab.output +3 -0
- data/test/integration/tests/fast/tan.bas +1 -0
- data/test/integration/tests/fast/tan.input +0 -0
- data/test/integration/tests/fast/tan.output +1 -0
- data/test/integration/tests/fast/val.bas +3 -0
- data/test/integration/tests/fast/val.input +0 -0
- data/test/integration/tests/fast/val.output +3 -0
- data/test/spec/argument_checker_spec.rb +128 -0
- data/test/spec/basic_array_spec.rb +100 -0
- data/test/spec/basic_float_spec.rb +168 -0
- data/test/spec/basic_integer_spec.rb +270 -0
- data/test/spec/basic_numeric_spec.rb +16 -0
- data/test/spec/basic_object_spec.rb +22 -0
- data/test/spec/basic_string_spec.rb +259 -0
- data/test/spec/for_stack_spec.rb +70 -0
- data/test/spec/input_reader_spec.rb +143 -0
- data/test/spec/input_spec.rb +102 -0
- data/test/spec/line_spec.rb +18 -0
- data/test/spec/output_spec.rb +153 -0
- data/test/spec/parser_spec.rb +562 -0
- data/test/spec/program_spec.rb +45 -0
- data/test/spec/spec_helper.rb +15 -0
- data/test/spec/support/basic_numeric_helpers.rb +327 -0
- data/test/spec/support/basic_object_helpers.rb +22 -0
- data/test/spec/transcript_spec.rb +37 -0
- data/test/spec/transform_spec.rb +513 -0
- metadata +742 -0
@@ -0,0 +1,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
|