2.5 KiB
Battleships
CP/M port of the Unix game.
Copyright:
- bs.c - original author: Bruce Holloway
-
salvo option by: Chuck A DeGaul
- with improved user interface, autoconfiguration and code cleanup
-
by Eric S. Raymond <esr@snark.thyrsus.com>
- v1.2 with color support and minor portability fixes, November 1990
- v2.0 featuring strict ANSI/POSIX conformance, November 1993.
- v2.1 for Linux, October 1994.
- Slipstreamed in fixes to make it gcc -Wall clean, May '95.
- fairly seriously hacked for Hitech C and CP/M, rjm 95/8/14
I found it as part of the ZCN repository: https://github.com/jamesots/zcn
The C source has been modified for VT100 compatibility and some minor changes have been made by me (Anna Christina Naß acn@acn.wtf.
bs.com
is the compiled binary.
See the *.txt
files for more information.
Modes
-b
selects a "blitz" variant-s
selects a "salvo" variant-c
permits ships to be placed adjacently
The "blitz" variant allows a side to shoot for as long as it continues to score hits.
The "salvo" game allows a player one shot per turn for each of his/her ships still afloat. This puts a premium scoring hits early and knocking out some ships and also makes much harder the situation where you face a superior force with only your PT-boat.
Keys
To position your ships: move the cursor to a spot, then type the first letter of a ship
(using CAPITAL letters) type to select it, then type a direction ([hjkl] or [4862]),
indicating how the ship should be pointed.
You may also type a ship letter followed by r' to position it randomly, or type
R' to
place all remaining ships randomly.
Navigation and aiming keys:
yz k u 7 8 9
\|/ \|/
h-+-l 4-+-6
/|\ /|\
b j n 1 2 3
Key | Action | Key | Action |
---|---|---|---|
h / 4 | move left | y / z / 7 | move up+left |
l / 6 | move right | b / 1 | move down+left |
j / 2 | move down | u / 9 | move up+right |
k / 8 | move up | n / 3 | move down+right |
r | place this ship randomly | R | place all ships randomly |
^L | screen redraw | Q | quit game |
Compiling
HiTech C has been used to compile it, but it needs a lot of free memory (TPA).
For compiling, I used the command c bs.c
in CP/M.