6 .Nd Automate chess engine tournaments
9 .Fl engine Ar engine-options
10 .Fl engine Ar engine-options
11 .Op Fl engine Ar engine-options ...
16 utility automates chess engine tournaments.
18 Its options are as follows:
20 .It Fl engine Ar engine-options
21 Add an engine defined by
26 .It Fl each Ar engine-options
29 to each engine in the tournament.
32 .It Fl variant Ar variant
33 Set the chess variant, where
46 .It Fl concurrency Ar n
47 Set the maximum number of concurrent games to
49 .It Fl draw Ar n Ar score
50 Adjudicate the game as draw if the score of both engines is within
52 centipawns from zero after
54 full moves have been played.
55 .It Fl resign Ar n Ar score
56 Adjudicate the game as a loss if an engine's score is at least
58 centipawns below zero for at least
61 .It Fl tournament Ar type
62 Set the tournament type, where
75 This value should be set to an even number in tournaments with more than two
76 players to make sure that each player plays an equal number of games with white
79 Multiply the number of rounds to play by
81 For two-player tournaments this option should be used to set the total
82 number of games to play.
83 .It Fl ratinginterval Ar n
84 Set the interval for printing the ratings to
88 Display all engine input and output.
92 as the opening book in PGN format.
93 .It Fl pgndepth Ar plies
94 Set the maximum depth for the PGN input.
95 .It Fl pgnout Ar file Bq Cm min
98 in PGN format. Use the
100 argument to save in a minimal PGN format.
102 Restart crashed engines instead of stopping the game.
104 Play each opening twice so that both players get to play it on both
107 Set the site / location to
110 Set the random seed for the book move selector.
114 milliseconds between games. The default is 0.
116 Display the version information.
118 Display help information.
120 Display a list of configured engines and exit.
124 .It Ic conf Ns = Ns Ar arg
125 Use an engine with the name
127 from engine configuration file.
128 .It Ic name Ns = Ns Ar arg
131 .It Ic cmd Ns = Ns Ar arg
134 .It Ic dir Ns = Ns Ar arg
135 Set the working directory to
137 .It Ic proto Ns = Ns [ Cm uci | Cm xboard Ns ]
138 Set the chess protocol.
139 .It Ic tc Ns = Ns [ Ns Ar tcformat | Cm inf Ns ]
140 Set the time control.
141 The format is moves/time+increment,
144 is the number of moves per tc,
146 is time per tc (either seconds or minutes:seconds),
149 is the time increment per move in seconds.
151 Infinite time control can be set with
153 .It Ic option. Ns Ar name Ns = Ns Ar value
154 Set custom engine option.
155 .It Ic arg Ns = Ns Ar arg
158 to the engine as a command line argument.
159 .It Ic initstr Ns = Ns Ar arg
162 to the engine's standard input at startup.
163 .It Ic restart Ns = Ns [ Cm auto | Cm on | Cm off Ns ]
164 Set the engine restart mode.
166 means the engine decides whether to restart (default),
168 means the engine is always restarted between games and
170 means the engine is never restarted between games.
171 .It Ic st Ns = Ns Ar n
172 Set the time limit for each move to
175 This option cannot be used in combination with the
178 .It Ic timemargin Ns = Ns Ar n
181 milliseconds over the time limit.
182 .It Ic book Ns = Ns Ar file
185 (Polyglot book file) as the opening book.
186 .It Ic bookdepth Ns = Ns Ar n
187 Set the maximum book depth (in fullmoves) to
190 Invert the engine's scores when it plays black.
191 This option should be used with engines that always report scores from white's
193 .It Ic depth Ns = Ns Ar plies
194 Set the search depth limit.
195 .It Ic nodes Ns = Ns Ar count
196 Set the node count limit.
199 Play ten games between two Sloppy engines with a time control of 40
202 .Dl $ cutechess-cli \-engine name=Sloppy -engine name=Sloppy -each cmd=sloppy proto=xboard tc=40/60 -rounds 10
204 Play a single game between Atak and Glaurung engines with a time
205 control of 40 moves in one minute and 30 seconds with one second
208 .Dl $ cutechess-cli \-engine name=Atak cmd=Atak32.exe dir=C:\eatak proto=xboard -engine cmd=glaurung proto=uci option.Threads=1 -both tc=40/1:30+1
211 Use the name=Atak parameter because it's a Xboard protocol 1 engine
212 and doesn't tell its name.
214 Use the dir=C:\eatak parameter to point the location of the executable.
216 Glaurung can tell its name and is in the PATH variable so only the
219 Set Glaurung to use 1 thread.
221 Set the time control to 40 moves in one minute and 30 seconds with
222 one second increment.
225 Play a Round-Robin tournament between Fruit, Crafty, Stockfish and
228 .Dl $ cutechess-cli \-engine conf=Fruit -engine conf=Crafty -engine conf=Stockfish -engine conf=Sloppy -each tc=4 book=book.bin -games 2 -rounds 10 -repeat
231 Play two games per encounter,
232 effectively multiplying the number of games by 2.
234 Play 10 times the minimum amount of rounds (3). So the total number
235 of rounds to play will be 30, and the total number of games 120.
237 In each two-game encounter colors are switched between games and the
238 same opening line is played in both games.
245 utility was written by
246 .An Ilari Pihlajisto ,
247 .Mt ilari.pihlajisto@mbnet.fi ;
250 .Mt ajonsson@kapsi.fi .
255 .Lk http://github.com/cutechess/cutechess
258 .Lk https://list.kapsi.fi/listinfo/cutechess