Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / cutechess, der Wolf im Schafspelz
- By Lothar Jung Date 2022-12-12 10:27 Edited 2022-12-12 11:23
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.0
In 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-r9RI

Build: https://www.artojonsson.com/blog/cutechess-cmake/

Weitere Links:

https://cutechess.com/
https://github.com/cutechess/cutechess/wiki
https://www.chessprogramming.org/Cutechess-cli
https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=10549
https://acepoint.de/some-chess-stuff-for-apples-m1/
https://lczero.org/play/gui/cutechess/
http://54.37.137.89/pkgs.void/package/cutechess-gui/
- - By Lothar Jung Date 2022-12-12 11:28
Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:
cutechess – eine grafische Benutzeroberfläche.
cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.
Parent - - By Kurt Utzinger Date 2022-12-12 15:57 Upvotes 1
Lothar Jung schrieb:

Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:
cutechess – eine grafische Benutzeroberfläche.
cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.


Hallo Lothar
Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss
Kurt
Parent - By Lothar Jung Date 2022-12-12 16:02 Edited 2022-12-12 16:23
Hallo Kurt,

für diese Schachfreunde steht cutechess GUI mit dem gleichen Leistungsumfang zur Verfügung.
Bei der CLI sieht man halt was unter der Haube steckt.

So what?!

Gruß

Lothar

PS: Link zur 1.3 Beta 4: https://github.com/cutechess/cutechess/releases/download/v1.3.0-beta4/cutechess-1.3.0-beta4-win64.exe
Parent - - By Rainer Neuhäusler Date 2022-12-13 00:02
Kurt Utzinger schrieb:

Lothar Jung schrieb:

Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:  cutechess – eine grafische Benutzeroberfläche. <code>cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.</code>
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.

Hallo Lothar
Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss
Kurt


Hallo Kurt,
bezüglich der Leute, die hier Cutechess-Cli benutzen, dürfte Deine Schätzung noch zu hoch gegriffen sein, ein ausgetüfteltes Tool für Puristen und Enginewettkampf-Spezialisten. Ich habe mir vor ca. 4 Jahren den Umgang damit angeeignet, da ich unbedingt zwei Engines mit jeweils unterschiedlichen Zeitkontrollen (Weiß z.B. mit 40z/5' und Schwarz mit 1z/1'')gegeneinander antreten lassen wollte. Das gaben die etablierten GUIs einfach nicht her. Nebenbei gesagt, um eine Diskussion schwer vermittelbarer 'Sonderfälle' war ich auch im CCC nicht verlegen http://talkchess.com/forum3/viewtopic.php?f=2&t=67503&hilit=cutechess+cli#p762761

Mit Lothars "Bildungsauftrag" für die höheren Weihen des Computerschachs werden wir wohl leben müssen. Ich finde es aber gut, wenn Du Deinen Standpunkt immer wieder mal in den schweigenden Wald hinein rufst. Von mir kriegst Du immer ein Echo!

Gruß Rainer

.
Parent - By Kurt Utzinger Date 2022-12-13 11:37
Rainer Neuhäusler schrieb:

Kurt Utzinger schrieb:

Lothar Jung schrieb:

Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:  cutechess – eine grafische Benutzeroberfläche. <code>cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.</code>
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.

Hallo Lothar
Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss
Kurt


Hallo Kurt,
bezüglich der Leute, die hier Cutechess-Cli benutzen, dürfte Deine Schätzung noch zu hoch gegriffen sein, ein ausgetüfteltes Tool für Puristen und Enginewettkampf-Spezialisten. Ich habe mir vor ca. 4 Jahren den Umgang damit angeeignet, da ich unbedingt zwei Engines mit jeweils unterschiedlichen Zeitkontrollen (Weiß z.B. mit 40z/5' und Schwarz mit 1z/1'')gegeneinander antreten lassen wollte. Das gaben die etablierten GUIs einfach nicht her. Nebenbei gesagt, um eine Diskussion schwer vermittelbarer 'Sonderfälle' war ich auch im CCC nicht verlegen <a class='ura' href='http://talkchess.com/forum3/viewtopic.php?f=2&t=67503&hilit=cutechess+cli#p762761'>http://talkchess.com/forum3/viewtopic.php?f=2&t=67503&hilit=cutechess+cli#p762761</a>

Mit Lothars "Bildungsauftrag" für die höheren Weihen des Computerschachs werden wir wohl leben müssen. Ich finde es aber gut, wenn Du Deinen Standpunkt immer wieder mal in den schweigenden Wald hinein rufst. Von mir kriegst Du immer ein Echo!

Gruß Rainer


Hallo Rainer
Danke für dein Verständnis. Ich werde so weitermachen. Denn die wenigen "Allwissenden" und
"Alleskönner" sind oftmals schlicht und einfach nicht in der Lage zu begreifen, mit welch geringen
PC-/IT-Kenntnissen ein Grossteil der PC-User unterwegs sind. Für diese grosse Mehrheit müssen
die Kisten und Programme einfach laufen ... und wenn nicht oder Probleme auftauchen, sind die
meistens völlig aufgeschmissen. Und mit Lothars "Bildungsauftrag" für die höheren Weihen des
Computers und Computerschachs kann ich gut leben ... und werde trotzdem keine Anstalten
machen, noch irgendwelche Programmiersprachen, usw. zu lernen.
Gruss
Kurt
Parent - - By Andreas Matthies Date 2022-12-13 17:10 Upvotes 1
Kurt Utzinger schrieb:

Lothar Jung schrieb:

Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:
cutechess – eine grafische Benutzeroberfläche.
<code>cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.</code>
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.


<code>Hallo Lothar
Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss
Kurt</code>

Mag sein, dass das alles nur Freaks sind, aber Cutechess-cli ist das Werkzeug von (grob geschätzt) >90% aller Entwickler der Top-50 Engines, die ihre Entwicklung damit testen und sicherstellen, dass eine Entwicklung auch eine Verbesserung ist.

Grüße, Andreas
Parent - By Kurt Utzinger Date 2022-12-13 17:26
Andreas Matthies schrieb:

Kurt Utzinger schrieb:

Lothar Jung schrieb:

Cute Chess ist eine Reihe von plattformübergreifenden Tools für die Arbeit mit Schach-Engines. 
Es besteht aus:
cutechess – eine grafische Benutzeroberfläche.
<code>cutechess-cli – eine Befehlszeilenschnittstelle zur Automatisierung von Schach-Engine-Matches.</code>
libcutechess – eine Bibliothek, die eine Schnittstelle für die Arbeit mit Schach-Engines bereitstellt.


<code>Hallo Lothar
Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss
Kurt</code>

Mag sein, dass das alles nur Freaks sind, aber Cutechess-cli ist das Werkzeug von (grob geschätzt) >90% aller Entwickler der Top-50 Engines, die ihre Entwicklung damit testen und sicherstellen, dass eine Entwicklung auch eine Verbesserung ist.

Grüße, Andreas


Hallo Andreas
Schon klar ... aber Entwickler von Top Engines gehören nur wahrlich nicht
zu den überforderten Schachfreunden.
Gruss
Kurt
Parent - By Lothar Jung Date 2022-12-13 17:28
Kann ich in Bezug auf Lc0 nur bestätigen.
Auf Discord werden fast alle Test mit cutechess oder manchmal mit TCEC GUI durchgeführt.
Die cutechess GUI ähnelt BanksiaGUI bzw. umgekehrt und ist sehr strukturiert.
Parent - By Rainer Neuhäusler Date 2022-12-13 18:45
Andreas Matthies schrieb:

Kurt Utzinger schrieb:

Damit [fett hervorgehoben] sind 85-90% aller Schachfreunde überfordert.
Nur ganz wenige Freaks mögen sich noch mit Befehlszeilen herumschlagen.
Gruss Kurt</code>

Mag sein, dass das alles nur Freaks sind, aber Cutechess-cli ist das Werkzeug von (grob geschätzt) >90% aller Entwickler der Top-50 Engines, die ihre Entwicklung damit testen und sicherstellen, dass eine Entwicklung auch eine Verbesserung ist.
Grüße, Andreas

Beide Feststellungen ergänzen sich hervorragend zu einem informativen Ganzen
.
- By Lothar Jung Date 2022-12-12 15:29 Edited 2022-12-12 15:52
Hier ein Beispiel eines CLI-Setup’s für ein Lc0-Engine/Engine Tournament:

`cutechess-cli.exe ^
-engine name=dag.29de1d7.805177 ^
  cmd=lc0.exe dir=%~dp0engines\lc0.Dag ^
  arg="--weights=805177" ^
-engine name=dag.29de1d7.784968 ^
  cmd=lc0.exe dir=%~dp0engines\lc0.Dag ^
  arg="--weights=784968" ^
-each proto=uci tc=10+.3 timemargin=200 -recover ^
-site tadzio -event 805177_vs_784968 ^
-resign movecount=5 score=700 ^
-draw movenumber=60 movecount=6 score=10 ^
-tournament round-robin -games 2 -rounds 500 ^
-openings file=UHO_2022_6mvs_+110_+119.pgn order=sequential plies=12 -repeat ^
-pgnout Lc0_805177_vs_Lc0_784968_10+.3.pgn ^
1> Lc0_805177_vs_Lc0_784968_10+.3.log
`

Bei der cutechess GUI werden Angaben/Parameter übersichtlich unter „Tools/Settings“ eingepflegt.
- By Lothar Jung Date 2022-12-13 16:30 Edited 2022-12-13 16:35
Wer mit Cutechess Shogi spielen will, muss es erst lernen.
Und zwar hier: https://lishogi.org/study/2EVxtOY9

Hier eine gute Engine: https://github.com/ianfab/Fairy-Stockfish

PS: Ich schwenke mit meinem Bildungsauftrag über die Alpen nach Fernost, also nach Japan, wo diese Variante des Schachs gespielt wird (9x9 Brett, mit zusätzlichen Figuren und einer geänderten Zugart).
Up Topic Hauptforen / CSS-Forum / cutechess, der Wolf im Schafspelz

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill