| 1 | GNU Go |
| 2 | |
| 3 | This is GNU Go, a Go program. Development versions of GNU Go may be |
| 4 | found at http://www.gnu.org/software/gnugo/devel.html. Consult TODO if |
| 5 | you are interested in helping. |
| 6 | |
| 7 | |
| 8 | Installation |
| 9 | |
| 10 | In short, './configure; make' will build GNU Go; optionally (running |
| 11 | as root) 'make install' will put it into /usr/local/bin and also |
| 12 | install the man page. You also will probably want to install CGoban. |
| 13 | See INSTALL for details. |
| 14 | |
| 15 | |
| 16 | Documentation |
| 17 | |
| 18 | User documentation can be obtained by running 'gnugo --help' or 'man |
| 19 | gnugo' from any terminal. |
| 20 | |
| 21 | Texinfo documentation includes instructions for users as well as |
| 22 | documentation of GNU Go's algorithms and functions for programmers and |
| 23 | developers. Use an info reader or emacs to read the info files, or run |
| 24 | `make gnugo.dvi' or `make gnugo.ps' in the doc/ directory to get |
| 25 | printed documentation. You can also make html documentation from the |
| 26 | Texinfo files. One method of making html documentation is to run the |
| 27 | command 'makeinfo --html gnugo.texi' in the doc/ directory. |
| 28 | |
| 29 | |
| 30 | |
| 31 | Contact us at gnugo@gnu.org if you are interested in helping to |
| 32 | develop this program. |
| 33 | |
| 34 | |
| 35 | Running GNU Go via CGoban |
| 36 | |
| 37 | This is an extremely nice way to run GNU Go. CGoban provides a |
| 38 | beautiful graphic user interface under X Window System. |
| 39 | |
| 40 | Start CGoban. When the CGoban Control panel comes up, select ``Go |
| 41 | Modem''. You will get the Go Modem Protocol Setup. Choose one (or |
| 42 | both) of the players to be ``Program,'' and fill out the box with the |
| 43 | path to gnugo. After clicking OK, you get the Game Setup window. |
| 44 | Choose ``Rules Set'' to be Japanese (otherwise handicaps won't work). |
| 45 | Set the board size and handicap if you want. Click OK and you are |
| 46 | ready to go. |
| 47 | |
| 48 | In the Go Modem Protocol Setup window, when you specify the path to |
| 49 | GNU Go, you can give it command line options, such as --quiet to |
| 50 | suppress most messages. Since the Go Modem Protocol preempts standard |
| 51 | I/O other messages are sent to stderr, even if they are not error |
| 52 | messages. These will appear in the terminal from which you started |
| 53 | CGoban. |
| 54 | |
| 55 | If you want to play with a komi, you should bear in mind that |
| 56 | the GMP does not have any provision for communicating the komi. |
| 57 | Because of this misfeature, unless you set the komi at the command |
| 58 | line GNU Go will have to guess it. It assumes the komi is 5.5 for |
| 59 | even games, 0.5 for handicap games. If this is not what you want, |
| 60 | you can specify the komi at the command line with the --komi |
| 61 | option, in the Go Modem Protocol Setup window. You have to set |
| 62 | the komi again in the Game Setup window, which comes up next. |
| 63 | |
| 64 | Click OK and you are ready to go. |
| 65 | |
| 66 | Other command line options can be listed by typing 'gnugo --help' |
| 67 | -or- 'man gnugo' from any terminal, or by consulting the Texinfo |
| 68 | documentation. |
| 69 | |
| 70 | |
| 71 | Ascii Interface |
| 72 | |
| 73 | Even if you do not have CGoban installed you can play with GNU Go |
| 74 | using its default Ascii interface. Simply type `gnugo' at the command |
| 75 | line, and GNU Go will draw a board. Typing `help' will give a list of |
| 76 | options. At the end of the game, pass twice, and GNU Go will prompt you |
| 77 | through the counting. You and GNU Go must agree on the dead groups--you |
| 78 | can toggle the status of groups to be removed, and when you are done, |
| 79 | GNU Go will report the score. |
| 80 | |
| 81 | |
| 82 | GNU Go mode in Emacs |
| 83 | |
| 84 | You can run GNU Go from Emacs. This has the advantage that you place |
| 85 | the stones using the cursor arrow keys. This requires Emacs 20.4 or |
| 86 | later. (Tested with Emacs 20.4. Does not work with 20.2.) |
| 87 | |
| 88 | Load `interface/gnugo.el', either by `M-x load-file', or by adding a |
| 89 | line |
| 90 | |
| 91 | (autoload 'gnugo "gnugo" "GNU Go" t) |
| 92 | |
| 93 | in your `.emacs' file. Now you may start GNU Go by `M-x gnugo'. You |
| 94 | will be prompted for command line options *note Invoking GNU Go::. |
| 95 | Using these, you may set the handicap, board size, color and komi. |
| 96 | |
| 97 | You can enter commands from the GNU Go ASCII interface after |
| 98 | typing `:'. For example, to take a move back, type `:back', or |
| 99 | to list all commands, type `:help'. |
| 100 | |
| 101 | Here are the default keybindings: |
| 102 | |
| 103 | * `Return' or `Space' |
| 104 | Select point as the next move. An error is signalled for |
| 105 | invalid locations. Illegal locations, on the other hand, |
| 106 | show up in the GNU Go Console buffer. |
| 107 | |
| 108 | * `q' or `Q' |
| 109 | Quit. Both Board and Console buffers are deleted. |
| 110 | |
| 111 | * `R' |
| 112 | Resign. |
| 113 | |
| 114 | * `C-l' |
| 115 | Refresh. Includes restoring default window configuration. |
| 116 | |
| 117 | * `M-_' |
| 118 | Bury both Board and Console buffers (when the boss is near). |
| 119 | |
| 120 | * `p' |
| 121 | Pass; i.e., select no location for your move. |
| 122 | |
| 123 | * `:' |
| 124 | Extended command. Type in a string to be passed directly to |
| 125 | the inferior GNU Go process." |
| 126 | |
| 127 | |
| 128 | |
| 129 | Running GNU Go via Jago |
| 130 | |
| 131 | Jago, like CGoban is a client capable of providing GNU Go with a |
| 132 | graphical user interface. Unlike CGoban, it does not require |
| 133 | X Window System, so it is an attractive alternative under Windows. |
| 134 | You will need a Java Runtime Environment. Obtain Jago at |
| 135 | http://www.rene-grothmann.de/jago and follow the links there for the |
| 136 | Java Runtime Environment. |
| 137 | |
| 138 | |
| 139 | Go Modem Protocol |
| 140 | |
| 141 | The Go Modem Protocol was developed by Bruce Wilcox with input from |
| 142 | David Fotland, Anders Kierulf and others, according to the history in |
| 143 | ftp://www.joy.ne.jp/welcome/igs/Go/programs/protocol.Z . Any Go |
| 144 | program *should* use this protocol since it is standard. Since CGoban |
| 145 | supports this protocol, the user interface for any Go program can be |
| 146 | done entirely through CGoban. The programmer can concentrate on the |
| 147 | real issues without worrying about drawing stones, resizing the board |
| 148 | and other distracting issues. |
| 149 | |
| 150 | |
| 151 | Options |
| 152 | |
| 153 | A few options are described here. A more complete list |
| 154 | may be found in the Texinfo documentation, or by running |
| 155 | gnugo --help. |
| 156 | |
| 157 | * `--help', `-h'. |
| 158 | Print a help message describing the options. This will also |
| 159 | tell you the defaults of various parameters, most importantly |
| 160 | the level and cache size. The default values of these |
| 161 | parameters can be set before compiling by `configure'. If |
| 162 | you forget the defaults you can find out using `--help'. |
| 163 | |
| 164 | * `--level LEVEL' |
| 165 | GNU Go can play with different strengths and speeds. Level 10 |
| 166 | is the default. Decreasing the level will make GNU Go faster |
| 167 | but less accurate in its reading. |
| 168 | |
| 169 | * `--quiet', `--silent' |
| 170 | Don't print copyright and other messages. Messages |
| 171 | specifically requested by other command line options, such as |
| 172 | `--trace', are not supressed. |
| 173 | |
| 174 | * `-l', `--infile FILENAME' |
| 175 | Load the named SGF file |
| 176 | |
| 177 | * `-L', `--until MOVE' |
| 178 | Stop loading just before the indicated move is played. MOVE |
| 179 | can be either the move number or location. |
| 180 | |
| 181 | * `-o', `--outfile FILENAME' |
| 182 | Write sgf output to file |
| 183 | |
| 184 | * `--mode MODE' |
| 185 | Force the playing mode ('ascii', 'gmp' or 'gtp'). The |
| 186 | default is ASCII, but if no terminal is detected GMP (Go |
| 187 | Modem Protocol) will be assumed. In practice this is usually |
| 188 | what you want, so you may never need this option. |
| 189 | |
| 190 | |
| 191 | * `-M', `--cache-size MEGS' |
| 192 | Memory in megabytes used for hashing. The default size is 8 |
| 193 | unless you configure gnugo with the command `configure |
| 194 | --enable-cache-size=SIZE' before compiling to make SIZE |
| 195 | the default. |
| 196 | |
| 197 | |
| 198 | * `--chinese-rules' |
| 199 | Use Chinese counting. |
| 200 | |
| 201 | |
| 202 | * `--japanese-rules' |
| 203 | Use Japanese Rules. This is the default unless you specify |
| 204 | `--enable-chinese-rules' as a configure option. |
| 205 | |
| 206 | * `--copyright': Display the copyright notice |
| 207 | |
| 208 | * `--version' or `-v': Print the version number |
| 209 | |
| 210 | * `--printsgf FILENAME': Create an SGF file containing a diagram of |
| 211 | the board. Useful with `-L' to create diagrams from games. |
| 212 | |
| 213 | |
| 214 | |
| 215 | |
| 216 | Copyrights and License |
| 217 | |
| 218 | All files Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
| 219 | 2007, 2008 and 2009 by the Free Software Foundation except as noted below. |
| 220 | |
| 221 | All files are under the GNU General Public License, which may be |
| 222 | found in the file COPYING, with the following exceptions. |
| 223 | |
| 224 | * The files interface/gtp.c and gtp.h are copyright 2001 by |
| 225 | the Free Software Foundation. In the interests of promoting |
| 226 | the Go Text Protocol these two files are licensed under a less |
| 227 | restrictive license than the GPL and are free for unrestricted use. |
| 228 | The GTP license appears in each file. |
| 229 | |
| 230 | * The files gmp.c and gmp.h are copyright Bill Shubert. These |
| 231 | are free for unrestricted use. |
| 232 | |
| 233 | * The files regression/golois/* and the tests vie.tst, connect.tst, |
| 234 | capture.tst and global.tst are copyright Tristan Cazenave and are |
| 235 | used with his permission |
| 236 | |
| 237 | * The SGF files in regression/games/handtalk are copyright Jessie Annala |
| 238 | and are used with permission. |
| 239 | |
| 240 | * The SGF files in regression/games/mertin13x13 are copyright Stefan |
| 241 | Mertin and are used with permission. |
| 242 | |
| 243 | * The remaining SGF files are either copyright by the FSF or are in |
| 244 | the public domain. |