Okay, I decided to go with the script approach. It was just the better and easier option in many ways. Here:
http://koti.mbnet.fi/~ilaripih/bin/clop ... ess-cli.py
It's in Python, so those running Windows may have to install the Python implementation from
www.python.org first.
The script has to be modified a bit before it can be used. The relevant parts are at the beginning of the script:
Code: Select all
# Path to the cutechess-cli executable.
# On Windows this should point to cutechess-cli.exe
cutechess_cli_path = '$HOME/chess/cutechess-cli/cutechess-cli.sh'
# The engine whose parameters will be optimized
engine = 'conf=Sloppy-0.2.2'
# Format for the commands that are sent to the engine to
# set the parameter values. When the command is sent,
# {name} will be replaced with the parameter name and {value}
# with the parameter value.
engine_param_cmd = 'setvalue {name} {value}'
# A pool of opponents for the engine. The opponent will be
# chosen based on the seed sent by CLOP.
opponents = [
'conf=Fruit-2.1',
'conf=Crafty-22.10',
'conf=Glaurung-2.2',
'conf=Gaviota-0.8.0'
]
# Additional cutechess-cli options, eg. time control and opening book
options = '-both tc=40/1+0.05 book=$HOME/chess/pg_books/performance.bin -draw 80 1 -resign 5 500'
* <cutechess_cli_path> should be the full path to the cutechess-cli executable or launcher script.
* <engine> can be anything that you would normally put in '-fcp', so you can also use 'cmd=engine.exe dir=path_to_engine proto=xboard', etc.
* <engine_param_cmd> is the command that is sent to your engine, and you can change the syntax freely, as long as the {name} and {value} fields are there. To optimize UCI options you can set engine_option_cmd to 'setoption name {name} value {value}'. The option
* <opponents> is a list of opponents to play against. There has to be at least one opponent.
* <options> should have all the rest of cutechess-cli's parameters.
This script can be used with any Cutechess-cli version, so go ahead and give it a try.