Commit | Line | Data |
---|---|---|
7eeb782e AT |
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. |