UCT prepare_move(): Fix boolean condition
[pachi.git] / README
bloba3249931dac299cd634aef0e9d55fad6fa294c58
1 Pachi is a simple modular framework for robots playing the game of
2 Go/Weiqi/Baduk. The aim is to make it easy to plug your engine
3 to the common infrastructure and implement your ideas while
4 minimalizing the overhead of implementing the GTP, board tools, etc.
5 Also, there are premade random playout and UCT tree engines, so that
6 you can directly tweak only particular policies.
8 The infrastructure is optimized for speed to make it well suited
9 for bruteforce engines, however tradeoffs are made to make it useful
10 for heavier MonteCarlo playouts as well (e.g. real liberties are
11 tracked instead of pseudoliberties). If you are looking for raw
12 light playout speed, libEGO is better choice.
14 Pachi is under the MIT licence (almost public domain) so that as
15 many people as possible can use it; if you use it to create your engine,
16 appropriate credits would be appreciated. Some of the bundled engines
17 or policies are under a more restrictive licence (GPL).
20 Currently, Pachi supports a simple idiotbot-like engine and an example
21 MonteCarlo-player with bits of optional domain-specific knowledge.
22 Also, example UCT engine is provided, reusing the same knowledge.
23 The infrastructure is pretty fast and it should be quite easy to extend
24 it to provide more facilities for your engine (but it should be at
25 the same time kept as simple as possible).
27 Pachi uses New Zealand scoring, currently. That means, it simply counts
28 the number of stones and one-point eyes of each color on the board,
29 plus komi and handicap correction.
31 New Zealand rules also mean that multi-stone suicide is allowed! If you
32 do not like that (basically if you want to pretend it plays according
33 to Chinese rules), you need to rule that out in your engine, currently.
34 The provided engines avoid multi-stone suicide.
36 New Zealand rules have positional superko. It is checked in every move
37 played, even during random playouts.
40 Also, Pachi supports only few GTP commands now. Most importantly,
41 it does not support the known_command and final_status_list commands.
44 To build Pachi, simply type:
46         make
48 Built zzgo binary (named that way from historical reasons) in the current
49 directory is a GTP client; use your favorite Go client to connect to it
50 (generally it should be possible to use it in place of GNU Go), or use kgsGtp
51 to connect to KGS.  The zzgo binary can take some parameters.
53 To build better optimized binary, type:
55         make zzgo-profiled
57 This will also create binary zzgo, but while the build will take
58 more time (probably less than a minute anyway), the resulting binary
59 will be about 1/4 to 1/5 faster.