2019-10-24 15:10:47 +02:00
|
|
|
# Sokoban
|
|
|
|
|
|
|
|
CP/M port of a Unix curses clone of sokoban
|
|
|
|
|
|
|
|
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 unused variables have been removed :)
|
|
|
|
|
|
|
|
``sokoban.com`` is the compiled binary.
|
|
|
|
|
|
|
|
To run it, the files ``sokoban.com`` and ``soklevls.dat`` are needed
|
|
|
|
The help file, ``sokoban.hlp``, is not used in this version.
|
|
|
|
You find the contents below.
|
|
|
|
|
|
|
|
See the ``readme.*`` files for more information.
|
|
|
|
|
|
|
|
## Commands
|
|
|
|
|
2019-10-24 15:22:53 +02:00
|
|
|
| Key | Action | Key | Action | Key | Action |
|
|
|
|
| ----- | ------------------- | ------ | -------------- | --- | ------------------- |
|
|
|
|
| h | move/push left | H | run/push left | ^H | run left to object |
|
|
|
|
| l | move/push right | L | run/push right | ^L | run right to object |
|
|
|
|
| j | move/push down | J | run/push down | ^J | run down to object |
|
|
|
|
| k | move/push up | K | run/push up | ^K | run up to object |
|
|
|
|
| u | undo last move/push | U | undo all | | |
|
|
|
|
| c / s | temporary save | ^U / r | reset to temporary save | | |
|
|
|
|
| ^R | Refresh screen | q | quit | | |
|
2019-10-24 15:10:47 +02:00
|
|
|
|
|
|
|
## The game
|
|
|
|
|
|
|
|
Characters on screen are:
|
|
|
|
|
2019-10-24 15:12:23 +02:00
|
|
|
| Symbol | Meaning | Symbol | Meanging |
|
|
|
|
| ------ | -------------------------- | ------ | -------------------------- |
|
2019-10-24 15:22:53 +02:00
|
|
|
| ``@@`` | player | ``++`` | player on saving position |
|
|
|
|
| ``..`` | saving position for packet | ``$$`` | packets |
|
|
|
|
| ``**`` | saved packet | ``##`` | wall |
|
2019-10-24 15:10:47 +02:00
|
|
|
|
|
|
|
Your goal is to move all packets to the saving position by pushing them.
|
|
|
|
|
|
|
|
As you could see you can make a temporary save. This is useful if you think
|
|
|
|
that all the moves/pushes you have made are correct, but you don't know how
|
|
|
|
to go on. In this case you can temporary save (using the c command). If you
|
|
|
|
then get stucked you need not undo all (using U), you can reset to you
|
|
|
|
temporary save.
|
|
|
|
|
|
|
|
If you have restored a saved game, a temporary save is automatically made
|
|
|
|
at the start.
|
|
|
|
|
|
|
|
## Compiling
|
|
|
|
|
|
|
|
HiTech C has been used to compile it, it is placed in the directory ``HitechC``.
|
|
|
|
|
|
|
|
To compile Sokoban, I used the command ``c -O sokoban.c`` in CP/M.
|
|
|
|
|