                                GNU Go

    This is GNU Go, a Go program. Development versions of GNU Go may be
    found at http://www.gnu.org/software/gnugo/devel.html. Consult TODO if
    you are interested in helping.

                              Installation

    In short, './configure; make' will build GNU Go; optionally (running
    as root) 'make install' will put it into /usr/local/bin and also
    install the man page. You also will probably want to install CGoban.
    See INSTALL for details.

                             Documentation

    User documentation can be obtained by running 'gnugo --help' or 'man
    gnugo' from any terminal.

    Texinfo documentation includes instructions for users as well as
    documentation of GNU Go's algorithms and functions for programmers and
    developers. Use an info reader or emacs to read the info files, or run
    `make gnugo.dvi' or `make gnugo.ps' in the doc/ directory to get
    printed documentation. You can also make html documentation from the
    Texinfo files. One method of making html documentation is to run the
    command 'makeinfo --html gnugo.texi' in the doc/ directory.

    Contact us at gnugo@gnu.org if you are interested in helping to
    develop this program.

                        Running GNU Go via CGoban

    This is an extremely nice way to run GNU Go. CGoban provides a
    beautiful graphic user interface under X Window System.

    Start CGoban. When the CGoban Control panel comes up, select ``Go
    Modem''. You will get the Go Modem Protocol Setup. Choose one (or
    both) of the players to be ``Program,'' and fill out the box with the
    path to gnugo. After clicking OK, you get the Game Setup window.
    Choose ``Rules Set'' to be Japanese (otherwise handicaps won't work).
    Set the board size and handicap if you want. Click OK and you are
    ready to go.

    In the Go Modem Protocol Setup window, when you specify the path to
    GNU Go, you can give it command line options, such as --quiet to
    suppress most messages. Since the Go Modem Protocol preempts standard
    I/O other messages are sent to stderr, even if they are not error
    messages. These will appear in the terminal from which you started
    CGoban.

    If you want to play with a komi, you should bear in mind that
    the GMP does not have any provision for communicating the komi.
    Because of this misfeature, unless you set the komi at the command
    line GNU Go will have to guess it. It assumes the komi is 5.5 for
    even games, 0.5 for handicap games. If this is not what you want,
    you can specify the komi at the command line with the --komi
    option, in the Go Modem Protocol Setup window.  You have to set
    the komi again in the Game Setup window, which comes up next.

    Click OK and you are ready to go.

    Other command line options can be listed by typing 'gnugo --help'
    -or- 'man gnugo' from any terminal, or by consulting the Texinfo
    documentation.

                           Ascii Interface

    Even if you do not have CGoban installed you can play with GNU Go
    using its default Ascii interface. Simply type `gnugo' at the command
    line, and GNU Go will draw a board. Typing `help' will give a list of
    options. At the end of the game, pass twice, and GNU Go will prompt you
    through the counting. You and GNU Go must agree on the dead groups--you
    can toggle the status of groups to be removed, and when you are done,
    GNU Go will report the score.

                        GNU Go mode in Emacs

       You can run GNU Go from Emacs. This has the advantage that you place
    the stones using the cursor arrow keys.  This requires Emacs 20.4 or
    later. (Tested with Emacs 20.4. Does not work with 20.2.)

       Load `interface/gnugo.el', either by `M-x load-file', or by adding a
    line

         (autoload 'gnugo "gnugo" "GNU Go" t)

    in your `.emacs' file. Now you may start GNU Go by `M-x gnugo'. You
    will be prompted for command line options *note Invoking GNU Go::.
    Using these, you may set the handicap, board size, color and komi.

       You can enter commands from the GNU Go ASCII interface after
    typing `:'. For example, to take a move back, type `:back', or
    to list all commands, type `:help'.

       Here are the default keybindings:

       * `Return' or `Space'
              Select point as the next move.  An error is signalled for
              invalid locations.  Illegal locations, on the other hand,
              show up in the GNU Go Console buffer.

       * `q' or `Q'
              Quit. Both Board and Console buffers are deleted.

       * `R'
              Resign.

       * `C-l'
              Refresh.  Includes restoring default window configuration.

       * `M-_'
              Bury both Board and Console buffers (when the boss is near).

       * `p'
              Pass; i.e., select no location for your move.

       * `:'
              Extended command.  Type in a string to be passed directly to
              the inferior GNU Go process."

                        Running GNU Go via Jago

    Jago, like CGoban is a client capable of providing GNU Go with a
    graphical user interface. Unlike CGoban, it does not require
    X Window System, so it is an attractive alternative under Windows.
    You will need a Java Runtime Environment. Obtain Jago at
    http://www.rene-grothmann.de/jago and follow the links there for the
    Java Runtime Environment.

                           Go Modem Protocol

    The Go Modem Protocol was developed by Bruce Wilcox with input from
    David Fotland, Anders Kierulf and others, according to the history in
    ftp://www.joy.ne.jp/welcome/igs/Go/programs/protocol.Z . Any Go
    program *should* use this protocol since it is standard. Since CGoban
    supports this protocol, the user interface for any Go program can be
    done entirely through CGoban. The programmer can concentrate on the
    real issues without worrying about drawing stones, resizing the board
    and other distracting issues.

                             Options

    A few options are described here. A more complete list
    may be found in the Texinfo documentation, or by running
    gnugo --help.

    * `--help', `-h'.
         Print a help message describing the options. This will also
         tell you the defaults of various parameters, most importantly
         the level and cache size. The default values of these
         parameters can be set before compiling by `configure'.  If
         you forget the defaults you can find out using `--help'.

    * `--level LEVEL'
         GNU Go can play with different strengths and speeds. Level 10
         is the default. Decreasing the level will make GNU Go faster
         but less accurate in its reading.

    * `--quiet', `--silent'
         Don't print copyright and other messages. Messages
         specifically requested by other command line options, such as
         `--trace', are not supressed.

    * `-l', `--infile FILENAME'
         Load the named SGF file

    * `-L', `--until MOVE'
         Stop loading just before the indicated move is played. MOVE
         can be either the move number or location.

    * `-o', `--outfile FILENAME'
         Write sgf output to file

    * `--mode MODE'
         Force the playing mode ('ascii', 'gmp' or 'gtp'). The
         default is ASCII, but if no terminal is detected GMP (Go
         Modem Protocol) will be assumed. In practice this is usually
         what you want, so you may never need this option.

    * `-M', `--cache-size MEGS'
         Memory in megabytes used for hashing. The default size is 8
         unless you configure gnugo with the command `configure
         --enable-cache-size=SIZE' before compiling to make SIZE
         the default.

    * `--chinese-rules'
         Use Chinese counting.

    * `--japanese-rules'
         Use Japanese Rules. This is the default unless you specify
         `--enable-chinese-rules' as a configure option.

    * `--copyright': Display the copyright notice

    * `--version' or `-v': Print the version number

    * `--printsgf FILENAME': Create an SGF file containing a diagram of
         the board. Useful with `-L' to create diagrams from games.

                       Copyrights and License

    All files Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
    2007, 2008 and 2009 by the Free Software Foundation except as noted below.

    All files are under the GNU General Public License, which may be
    found in the file COPYING, with the following exceptions.

    * The files interface/gtp.c and gtp.h are copyright 2001 by
      the Free Software Foundation. In the interests of promoting
      the Go Text Protocol these two files are licensed under a less
      restrictive license than the GPL and are free for unrestricted use.
      The GTP license appears in each file.

    * The files gmp.c and gmp.h are copyright Bill Shubert. These
      are free for unrestricted use.

    * The files regression/golois/* and the tests vie.tst, connect.tst,
      capture.tst and global.tst are copyright Tristan Cazenave and are
      used with his permission

    * The SGF files in regression/games/handtalk are copyright Jessie Annala
      and are used with permission.

    * The SGF files in regression/games/mertin13x13 are copyright Stefan
      Mertin and are used with permission.

    * The remaining SGF files are either copyright by the FSF or are in
      the public domain.