mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-12 15:50:20 -08:00
Added instructions. Chose to incorporate these into the main program
rather than as a separate program; I think the original BASIC programs were separated only due to memory limitations.
This commit is contained in:
@@ -22,6 +22,139 @@ import "listUtil"
|
||||
import "stringUtil"
|
||||
import "mathUtil"
|
||||
|
||||
//=================================================================
|
||||
// Instructions
|
||||
// (This was originally in a separate program, superstartreckins.bas,
|
||||
// for memory reasons. I've chosen to incorporate it into the main
|
||||
// program, as that's more convenient for everybody.)
|
||||
//=================================================================
|
||||
Instructions = {}
|
||||
Instructions.print = function
|
||||
print
|
||||
print "At each pause, press Return to continue."
|
||||
input
|
||||
|
||||
print " Instructions for 'Super Star Trek'"
|
||||
print
|
||||
print "1. When you see \Command?\ printed, enter one of the legal"
|
||||
print " commands (NAV,SRS,LRS,PHA,TOR,SHE,DAM,COM, OR XXX)."
|
||||
print "2. If you should type in an illegal command, you'll get a short"
|
||||
print " list of the legal commands printed out."
|
||||
print "3. Some commands require you to enter data (for example, the"
|
||||
print " 'NAV' command comes back with 'Course (1-9)?'.) If you"
|
||||
print " type in illegal data (like negative numbers), that command"
|
||||
print " will be aborted"
|
||||
print
|
||||
print " The galaxy is divided into an 8 x 8 quadrant grid,"
|
||||
print "and each quadrant is further divided into an 8 x 8 sector grid."
|
||||
print
|
||||
print " You will be assigned a starting point somewhere in the"
|
||||
print "galaxy to begin a tour of duty as comander of the starship"
|
||||
print "\Enterprise\; your mission: to seek and destroy the fleet of"
|
||||
print "klingon warwhips which are menacing the United Federation of"
|
||||
print "Planets."
|
||||
input
|
||||
|
||||
print
|
||||
print " You have the following commands available to you as captain"
|
||||
print "of the starship Enterprise:"
|
||||
print
|
||||
print "\NAV\ command = warp engine control --"
|
||||
print " course is in a circular numerical 4 3 2"
|
||||
print " vector arrangement as shown . | ."
|
||||
print " integer and real values may be .|."
|
||||
print " used. (Thus course 1.5 is half- 5 ---*--- 1"
|
||||
print " way between 1 and 2.) .|."
|
||||
print " . | ."
|
||||
print " Values may approach 9.0, which 6 7 8"
|
||||
print " itself is equivalent to 1.0"
|
||||
print " course"
|
||||
print " One warp factor is the size of "
|
||||
print " one quadrant. Therefore, to get"
|
||||
print " from quadrant 6,5 to 5,5, you would"
|
||||
print " use course 3, warp factor 1."
|
||||
input
|
||||
|
||||
print
|
||||
print "\SRS\ command = short range sensor scan"
|
||||
print " Shows you a scan of your present quadrant."
|
||||
print
|
||||
print " Symbology on your sensor screen is as follows:"
|
||||
print " <*> = your starship's position"
|
||||
print " +K+ = klingon battle cruiser"
|
||||
print " >!< = federation starbase (refuel/repair/re-arm here!)"
|
||||
print " * = star"
|
||||
print
|
||||
print " A condensed 'status report' will also be presented."
|
||||
input
|
||||
|
||||
print
|
||||
print "\LRS\ command = long range sensor scan"
|
||||
print " Shows conditions in space for one quadrant on each side"
|
||||
print " of the enterprise (which is in the middle of the scan)."
|
||||
print " The scan is coded in the form \###\, where the units digit"
|
||||
print " is the number of stars, the tens digit is the number of"
|
||||
print " starbases, and the hundresds digit is the number of"
|
||||
print " klingons."
|
||||
print
|
||||
print " Example - 207 = 2 klingons, no starbases, & 7 stars."
|
||||
input
|
||||
|
||||
print
|
||||
print "\PHA\ command = phaser control."
|
||||
print " Allows you to destroy the klingon battle cruisers by "
|
||||
print " zapping them with suitably large units of energy to"
|
||||
print " deplete their shield power. (Remember, klingons have"
|
||||
print " phasers too!)"
|
||||
print
|
||||
print "\TOR\ command = photon torpedo control"
|
||||
print " Torpedo course is the same as used in warp engine control."
|
||||
print " If you hit the klingon vessel, he is destroyed and"
|
||||
print " cannot fire back at you. If you miss, you are subject to"
|
||||
print " his phaser fire. In either case, you are also subject to "
|
||||
print " the phaser fire of all other klingons in the quadrant."
|
||||
print
|
||||
print " The library-computer (\COM\ command) has an option to "
|
||||
print " compute torpedo trajectory for you (option 2)."
|
||||
input
|
||||
|
||||
print
|
||||
print "\SHE\ command = shield control"
|
||||
print " Defines the number of energy units to be assigned to the"
|
||||
print " shields. Energy is taken from total ship's energy. Note"
|
||||
print " that the status display total energy includes shield energy."
|
||||
print
|
||||
print "\DAM\ command = dammage control report"
|
||||
print " Gives the state of repair of all devices, where a negative"
|
||||
print " 'state of repair' shows that the device is temporarily"
|
||||
print " damaged."
|
||||
input
|
||||
|
||||
print
|
||||
print "\COM\ command = library-computer"
|
||||
print " The library-computer contains six options:"
|
||||
print " option 0 = cumulative galactic record"
|
||||
print " This option showes computer memory of the results of all"
|
||||
print " previous short and long range sensor scans."
|
||||
print " option 1 = status report"
|
||||
print " This option shows the number of klingons, stardates,"
|
||||
print " and starbases remaining in the game."
|
||||
print " option 2 = photon torpedo data"
|
||||
print " Which gives directions and distance from the enterprise"
|
||||
print " to all klingons in your quadrant."
|
||||
print " option 3 = starbase nav data"
|
||||
print " This option gives direction and distance to any "
|
||||
print " starbase within your quadrant."
|
||||
print " option 4 = direction/distance calculator"
|
||||
print " This option allows you to enter coordinates for"
|
||||
print " direction/distance calculations."
|
||||
print " option 5 = galactic /region name/ map"
|
||||
print " This option prints the names of the sixteen major "
|
||||
print " galactic regions referred to in the game."
|
||||
input
|
||||
print
|
||||
end function
|
||||
|
||||
//=================================================================
|
||||
// Constants (tweak these to make the game easier or harder!)
|
||||
//=================================================================
|
||||
@@ -1081,6 +1214,7 @@ Game.addCommand "TOR", "to fire photon torpedos", @Game.torpedos
|
||||
Game.addCommand "SHE", "to raise or lower shields", @Game.shieldControl
|
||||
Game.addCommand "DAM", "for damage control reports", @Game.damageControl
|
||||
Game.addCommand "COM", "to call on library-computer", @Game.computer
|
||||
Game.addCommand "HLP", "for help, i.e. instructions", @Instructions.print // (not in original game)
|
||||
Game.addCommand "XXX", "to resign your command", @Game.endGame
|
||||
|
||||
|
||||
@@ -1112,6 +1246,19 @@ Game.mainLoop = function
|
||||
end while
|
||||
end function
|
||||
|
||||
for i in range(1,12); print; end for
|
||||
print " "*10 + "*************************************"
|
||||
print " "*10 + "* *"
|
||||
print " "*10 + "* *"
|
||||
print " "*10 + "* * * SUPER STAR TREK * * *"
|
||||
print " "*10 + "* *"
|
||||
print " "*10 + "* *"
|
||||
print " "*10 + "*************************************"
|
||||
for i in range(1,8); print; end for
|
||||
if getYesNo("Do you need instructions (y/n)") == "yes" then
|
||||
Instructions.print
|
||||
end if
|
||||
|
||||
while true
|
||||
game = new Game
|
||||
game.init
|
||||
|
||||
Reference in New Issue
Block a user