
   Thanks for downloading Lee Haywood's Chain Reaction game.

   Note: The computer player (YACRAI) was written by Brian Damgaard.
         Both the main program and the computer player are distributed
         under the GNU General Public License.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to:

            The Free Software Foundation, Inc.,
            59 Temple Place - Suite 330, Boston, MA
            02111-1307, USA.

INSTALLATION

   The current directory when the program is started should be the
   one in which it resides - the location of the configuration file
   and data/ directory.  It does not matter if some of the files are
   missing, but obviously functionality may be lost.  The computer
   player library must be present.

   The configuration file provided, DEFAULTS.ini, has all options set
   set to the defaults.  It is automatically renamed to SETTINGS.ini
   when first used so that a later install won't lose any options.
   Settings may also be overridden on the command line for any value
   using the format <name>=<value>, e.g. NumPlayers=2.

   If sounds are required, the WAV files should be also be installed
   in the data/ directory.  Other samples may be substituted for the
   ones provided.

   Also, default foreground and background images are provided in the
   data/ directory.  Use the configuration file to change these.

   See http://www.libsdl.org/ to download SDL - the library this
   program uses for cross-platform compilation.  There are hundreds of
   other games, applications and libraries that use it...

INSTRUCTIONS

   Information about playing the game is available on the Chain
   Reaction website - see http://fruise.googlepages.com/reaction.html
   for more.

   Note: The computer player wins by brute force, it does not use the
         same strategies as a human player and so it is a completely
         different form of opponent.  Play against another person for
         a more stimulating game.

OPTIONS PANEL

   The options panel at the bottom of the screen shows the keyboard
   short-cuts for each option in red.  The mouse may also be used to
   select options, using the left mouse button.

   Using the shift key with a keyboard short-cut or using the right
   button can also be used as follows.

   * For (U)ndo and (R)edo, the mouse pointer will move.
   * For (A)udio beeps/bells are toggled rather than the sound card.
   * For (C)ycle a random number of cycles will be performed.
   * For (Q)uit the current player ends the game by resigning (this
     is only valid if 2 players remain).

   Choosing (Q)uit during a game abandons the game (if confirmed).
   Choosing (Q)uit when no game is in progress exits immediately.

   Click (Q)uit twice to abandon a game and then once again to exit.
   If a prompt appears, clicking anywhere other than on (Q)uit will
   remove the prompt.

   (Q)uit may also be using during a long or slow explosion to jump
   to the final state of the explosion and also to force the computer
   player to make a move prematurely when it is taking too long.

PLAYER SELECTION

   Players are activated or deactivated by clicking one of the
   coloured blobs on the right-hand side of the screen with the left
   mouse button, or by pressing keys 1 to 6 which correspond to the 6
   players shown.

   There must be at least 2 players.  Attempting to deactivate one of
   2 players will toggle computer control of that player.  The
   computer must have exactly one opponent.  If the computer player
   proves to be easy or hard to beat then edit the configuration file.

   Player names can be edited by either clicking on them or by
   pressing both the Ctrl key and one of the keys from 1 to 6.  Press
   the Return key to finish editing, or just click anywhere.  If a
   player's name is set to "computer" then it will be placed under
   computer control, otherwise it will be controlled normally.

   Selecting (C)ycle will cause the names and coloured blobs of active
   players to move, allowing the order of play for each colour to be
   chosen.  This way each person can always use their favourite colour
   while the choice of who goes first can be cycled after each game.

MOVEMENT

   Either the mouse or cursor keys can be used to move the cell
   highlight around.  Also keys 7, 8, 9, 0 move the pointer left,
   down, up or right respectively.  If a shift key is held, the cell
   highlight will wrap when at the edge (or jump across a gap) when
   a movement key is used.

   A player may repeatedly use the middle mouse button or press Home
   to jump to the cells that each previous player made a move in.

MAKING MOVES

   The game starts when the first move is made.  Use the left mouse
   button or Return/Insert keys to make moves.

   NOTE: While the computer is thinking, use the left mouse button to
         select (Q)uit or press the Q key to force a premature move.

INPUT LOCKING

   Input is either unlocked or is locked for just the keyboard or the
   mouse.  The first move made by a player locks input - to mouse-only
   if the mouse was used, keyboard-only if keyboard used.

   Selecting (M)ouse or (K)eyboard input will unlock input if it is
   already locked for the chosen device.

   See the configuration file for configurable locking choices.

GRID EDITING

  Before the game starts, the right mouse button or space bar can be
  used to toggle cells and edit the board.  Drag the mouse, or use
  space to go in and out of edit mode and use the movement keys.

SAVING AND LOADING

   Choosing (S)ave will save the current game, including the current
   player selection, current board design and full undo/redo history.

   Choosing (L)oad will replace the current player selection, board
   design and place the game in its saved state.  Undo and redo are
   available and input is unlocked.

   Any current game must be saved or abandoned before a game may be
   loaded.

ANTI-CHEAT CHECKING

   If a player needs to be absent during a game and wishes to check
   for cheating, they can request a special code to be memorised
   before they leave and check that the same code is still displayed
   when they return.

   The code is requested by clicking on the coloured blob on the
   right-hand side of the screen that corresponds to the player that
   will be absent, or by pressing the corresponding key (1 to 6).

   If more than one player is to be absent, they should each generate
   and memorise their own code.

   If it is not an absent player's go then other players may continue
   to make moves.  They should be careful not to make mistakes, since
   the use of (U)ndo could be cheating.

   If an undo is requested, a prompt will appear for each player that
   requested a code, asking them to confirm the undo (when they have
   returned).  If confirmed, all codes will disappear.

   Similarly, any use of (S)ave will require confirmation.  Note that
   a recently-saved game state may still be abused for cheating.

   When an absent player returns and has their go, their special code
   will disappear.

   NOTE: This mechanism can only prove that other players have NOT
         cheated (if used properly), not that they have cheated.

   Consider using a password-protected screen-blanker if available.

AUDIO CONFIGURATION

   Normally a sound card is used to play sound samples.  When the
   sound card is not active, the speaker is used instead.

   Both the sound card and speaker can be activated and deactivated
   in the configuration and by selecting the (A)udio option.

GENERAL CONFIGURATION

   Chain Reaction has built-in defaults for many settings.  These can
   be overridden by entries in a configuration file, which in turn can
   be overridden by specifying names and values on the command line.

   See the configuration file provided for information about the
   settings that can be changed.  To specify an entry on the command
   line, use the format <name>=<value> - for example Audio=yes.

   Configuration names are not case sensitive, but values are.

STATUS INFORMATION

   The values in the status area are as follows.

      * Total number of units for each player.
      * Total number of units on the board.
      * Maximum number of units that the board can hold.
      * Percentage of moves made out of total possible.

