Cutechess ist einer der wenigen CLIs/GUIs die im Sourcecode vorliegen und ständig Erweiterungen erfährt.
Die offizielle Version 1.2 ist von August 2020, die Beta Version 1.3 von November 2021.
Hier die Einzelheiten:
https://github.com/cutechess/cutechess/releases/tag/1.2.0In der Version 1.2 sind sehr umfangreiche Erweiterungen vorgenommen worden.
Ein wichtiger Fork ist die TCEC GUI die für Web-Streaming eingesetzt wird.
Cutechess gibt es für Windows, MAC und Linux.
Cutechess unterstützt eine Reihe von Schachvarianten, u.a. Shogi.
Cutechess-cli kann mit dem Rémi Coulom's CLOP (
https://www.chessprogramming.org/R%C3%A9mi_Coulom) eingesetzt werden, das ein automatisches Schachengine Parametertuning zuläßt.
Die CLI Optionen sind sehr mächtig und umfangreich.
Usage:
cutechess-cli -engine [eng_options] -engine [eng_options]... [options]
Options:
-help Display this information
-version Display the version number
-engines Display a list of configured engines and exit
-engine OPTIONS Add an engine defined by OPTIONS to the tournament
-each OPTIONS Apply OPTIONS to each engine in the tournament
-variant VARIANT Set the chess variant to VARIANT, which can be one of:
'3check': Three-check Chess
'5check': Five-check Chess
'ai-wok': Ai-Wok (Makruk variant)
'almost': Almost Chess
'amazon': Amazon Chess
'andernach': Andernach Chess
'antiandernach': Anti-Andernach Chess
'antichess': Antichess (Losing Chess)
'asean': ASEAN-Chess
'atomic': Atomic Chess
'berolina': Berolina Chess
'cambodian': Ouk Chatrang (Cambodian Chess)
'capablanca': Capablanca Chess
'caparandom': Capablanca Random Chess
'cfour' : Cfour (7x6, line up 4 to win)
'chancellor': Chancellor Chess (9x9)
'changeover': Change-Over Chess
'checkless': Checkless Chess
'chessgi': Chessgi (Drop Chess)
'chigorin': Chigorin Chess
'circulargryphon': Circular Gryphon Chess
'codrus': Game of Codrus (Losing Chess variant)
'coregal': Co-regal Chess
'courier': Courier Chess
'crazyhouse': Crazyhouse (Drop Chess)
'discplacedgrid': Displaced Grid Chess
'dobutsu': Dobutsu Shogi (3x4)
'embassy': Embassy Chess
'euroshogi': EuroShogi (8x8)
'extinction': Extinction Chess
'fischerandom': Fischer Random Chess/Chess 960
'giveaway': Giveaway Chess (Losing Chess)
'gomoku' : Gomoku (15x15, exactly 5 in a row to win)
'gomokufreestyle' : Gomoku Free-Syle (5 in a row to win)
'gothic': Gothic Chess
'grand': Grand Chess
'grid': Grid Chess
'gridolina': Berolina Grid Chess
'gryphon': Gryphon Chess
'gustav3': Gustav III's Chess
'hoppelpoppel': Hoppel-Poppel (has N/B hybrids)
'horde': Horde Chess (v2)
'janus': Janus Chess
'jesonmor': Jeson Mör
'judkins': Judkins Shogi (6x6)
'karouk': Kar Ouk (One-check Ouk)
'kinglet': Kinglet Chess
'kingofthehill': King of the Hill Chess
'knightmate': Knightmate
'knightrelay': Knight-Relay Chess
'loop': Loop Chess (Drop Chess)
'losalamos': Los Alamos Chess
'losers': Loser's Chess
'makruk': Makruk (Thai Chess)
'minishogi': Minishogi (5x5)
'modern': Modern Chess (9x9)
'newzealand': New Zealand Chess (has N/R hybrids)
'placement': Placement Chess
'pocketknight': Pocket Knight Chess
'racingkings': Racing Kings Chess
'rifle': Rifle Chess
'seirawan': S-Chess (Seirawan Chess)
'shatranj': Shatranj
'shogi' : Shogi
'shoot': Shoot Chess
'slippedgrid': Slipped Grid Chess
'simplifiedgryphon': Simplified Gryphon Chess
'sittuyin': Sittuyin (Myanmar Chess)
'suicide': Suicide Chess (Losing Chess)
'superandernach': Super-Andernach Chess
'threekings': Three Kings Chess
'tictactoe': Tic-tac-toe
'twokings': Two Kings Each Chess (Wild 9)
'twokingssymmetric': Symmetrical Two Kings Each Chess
'standard': Standard Chess (default).
-concurrency N Set the maximum number of concurrent games to N
-draw movenumber=NUMBER movecount=COUNT score=SCORE
Adjudicate the game as a draw if the score of both
engines is within SCORE centipawns from zero for at
least COUNT consecutive moves, and at least NUMBER full
moves have been played. Captures and pawn moves will
reset the counters.
-resign movecount=COUNT score=SCORE [twosided=VALUE]
Adjudicate the game as a loss if an engine's score is
at least SCORE centipawns below zero for at least COUNT
consecutive moves.
If VALUE is true (default: false) then activate
two-sided resign adjudication: The scores of the winning
side must be at least SCORE centipawns above zero for at
least COUNT consecutive moves.
-maxmoves N Adjudicate the game as a draw if the game is still
ongoing after N or more full moves have been played.
This limit is not in action if set to zero.
-tb PATHS Adjudicate games using Syzygy tablebases. PATHS should
be semicolon-delimited list of paths to the compressed
tablebase files. Only the WDL tablebase files are
required.
-tbpieces N Only use tablebase adjudication for positions with
N pieces or less.
-tbignore50 Disable the fifty move rule for tablebase adjudication.
-tournament TYPE Set the tournament type to TYPE, which can be one of:
'round-robin': Round-robin tournament (default)
'gauntlet': First engine(s) against the rest
'knockout': Single-elimination tournament.
'pyramid': Every engine plays against all predecessors
-event EVENT Set the event/tournament name to EVENT
-games N Play N games per encounter. This value should be set to
an even number in tournaments with more than two players
to make sure that each player plays an equal number of
games with white and black pieces.
-rounds N Multiply the number of rounds to play by N.
For two-player tournaments this option should be used
to set the total number of games to play.
-sprt elo0=ELO0 elo1=ELO1 alpha=ALPHA beta=BETA
Use a Sequential Probability Ratio Test as a termination
criterion for the match. This option should only be used
in matches between two players to test if engine A is
stronger than engine B. Hypothesis H1 is that A is
stronger than B by at least ELO0 ELO points, and H0
(the null hypothesis) is that A is not stronger than B
by at least ELO1 ELO points. The maximum probabilities
for type I and type II errors outside the interval
[ELO0, ELO1] are ALPHA and BETA. The match is stopped if
either H0 or H1 is accepted or if the maximum number of
games set by '-rounds' and/or '-games' is reached.
-ratinginterval N Set the interval for printing the ratings to N games.
-outcomeinterval N Set the interval for printing outcomes to N games.
-debug Display all engine input and output
-openings file=FILE format=FORMAT order=ORDER plies=PLIES start=START policy=POLICY
Pick game openings from FILE. The file's format is
FORMAT, which can be either 'epd' or 'pgn' (default).
Openings will be picked in the order specified by ORDER,
which can be either 'random' or 'sequential' (default).
The opening depth is limited to PLIES plies. If PLIES is
not set the opening depth is unlimited. In sequential
mode START is the number of the first opening that will
be played. The minimum value for START is 1 (default).
The POLICY rules when to shift to a new opening.
It can be one of 'encounter'- which uses a new
opening for any new pair of players, 'round'- which
shifts only for a new round, or 'default'- which shifts
for any new pair of players and also when the number of
opening repetitions is reached.
-bookmode MODE Set Polyglot book mode to MODE, which can be one of:
'ram': The whole book is loaded into RAM (default)
'disk': The book is accessed directly on disk.
-pgnout FILE [min][fi]
Save the games to FILE in PGN format. Use the 'min'
argument to save in a minimal/compact PGN format. Only
finished games are saved for argument 'fi'.
-epdout FILE Save the end position of the games to FILE in FEN format.
-recover Restart crashed engines instead of stopping the match
-repeat [N] Play each opening twice (or N times). Unless the -noswap
option is used, the players swap sides after each game.
So they get to play the opening on both sides. Please
note that a new encounter will use a new opening.
-noswap Do not swap sides of paired engines.
-reverse Use schedule with reverse sides.
-seeds N Set the first N engines as seeds in the tournament
-site SITE Set the site/location to SITE
-srand N Set the seed for the random number generator to N
-wait N Wait N milliseconds between games. The default is 0.
-resultformat FORMAT Specify the format of result lists. FORMAT can either be
a comma separated list of fields or a format name.
Format 'help' shows available named formats. The
'default' format lists rank, name, elo, elo error,
number of games, score percentage, and draw percentage
of every player.
Engine options:
conf=NAME Use an engine with the name NAME from Cute Chess'
engines.json configuration file.
name=NAME Set the name to NAME
cmd=COMMAND Set the command to COMMAND
dir=DIR Set the working directory to DIR
arg=ARG Pass ARG to the engine as a command line argument
initstr=TEXT Send TEXT to the engine's standard input at startup.
TEXT may contain multiple lines seprated by '\n'.
stderr=FILE Redirect standard error output to FILE
restart=MODE Set the restart mode to MODE which can be:
'auto': the engine decides whether to restart (default)
'on': the engine is always restarted between games
'off': the engine is never restarted between games
Setting this option does not prevent engines from being
restarted between rounds in a tournament featuring more
than two engines.
trust Trust result claims from the engine without validation.
By default all claims are validated.
proto=PROTOCOL Set the chess protocol to PROTOCOL, which can be one of:
'xboard': The Xboard/Winboard/CECP protocol
'uci': The Universal Chess Interface
tc=TIMECONTROL Set the time control to TIMECONTROL. The format is
moves/time+increment, where 'moves' is the number of
moves per tc, 'time' is time per tc (either seconds or
minutes:seconds), and 'increment' is time increment
per move in seconds.
Infinite time control can be set with 'tc=inf'.
st=N Set the time limit for each move to N seconds.
This option can't be used in combination with "tc".
timemargin=N Let engines go N milliseconds over the time limit.
book=FILE Use FILE (Polyglot book file) as the opening book
bookdepth=N Set the maximum book depth (in fullmoves) to N
whitepov Invert the engine's scores when it plays black. This
option should be used with engines that always report
scores from white's perspective.
depth=N Set the search depth limit to N plies
nodes=N Set the node count limit to N nodes
ponder Enable pondering if the engine supports it. By default
pondering is disabled.
option.OPTION=VALUE Set custom option OPTION to value VALUE
Über die Handhabung der GUI informiert das folgende YouTube Video:
https://youtu.be/jLfGpo-r9RIBuild:
https://www.artojonsson.com/blog/cutechess-cmake/Weitere Links:
https://cutechess.com/https://github.com/cutechess/cutechess/wikihttps://www.chessprogramming.org/Cutechess-clihttps://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=10549https://acepoint.de/some-chess-stuff-for-apples-m1/https://lczero.org/play/gui/cutechess/http://54.37.137.89/pkgs.void/package/cutechess-gui/