                                   Reversi
                                  =========
Introduction
------------

The classic game of Reversi or Othello.

Go to http://www.vrabel.fsnet.co.uk/software/ for newer releases.

The current version is 1.1.2.  See `NEWS' for changes.

Reversi is released under the terms of the GNU General Public License.
See `COPYING' for more details.

Features
--------
  
  o Play human against computer or computer against computer 
  o User selectable computer player difficulty
    - thinking time per move.
    - 3 position evaluation methods
  o Standard I/O for playing on any terminal.
  o Easily extendable for new types of players (eg. networked)


Requirements
------------

A standard C++ compilier.  gcc 3.2 is known to work.


Compilation and Installation
----------------------------

See `INSTALL'.


To Play
-------

1. Execute reversi
2. Select human or a computer player
3. Enter a name to give the player
4. If you selected a computer player:
   a. Enter the maximum number of moves for the computer to look ahead
   b. Enter the board score evaluation method.
5. Do the same for the second player
6. For human moves:
   a. Enter the move as follows
      `x9' or `pass'
   b. The follow commands are also available
      help
      redraw - redraw the board
      exit   - exit the game
      hint   - ask the opponent (computer player only) for a hint.


Computer player algorithm
-------------------------

The computer player uses `depth first iterative deepening' with `minimax with
alpha-beta cutoff' performing the actual search.  See computerplayer.h and
computer2.h for more details.

The three board evaluation methods are:

* Simple
  Difference between the number of X and O's.  The weakest method.

* Weighted
  Similar to simple but edge and corner squares are more important.

* Corner phillic
  Similar to simple except that the corner squares have a higher value and the
  squares surrounding the corners have a lower value if the corner square is
  unoccupied.  This is an attempt to prevent the opponent gaining the important
  corner squares.


Suggestions/Bug reports
-----------------------

Send them to dvrabel@cantab.net


David Vrabel, September 2002
