Fully automatic chess bot with extensive configuration and scripting subsytem.
Every config consists of the events and the following fields: name, kind and time.
Stands for the displayer config title and thus must be unique.
name = "My bullet config"
Stands for the kind of config, possible values are: [ckRage, ckLegit, ckAdvisor]
kind = "ckRage"
Array of supported chess games timings, valid values: [ctUltrabullet, ctBullet, ctBlitz, ctRapid, ctCorrespondence]
time = ["ctBlitz", "ctRapid"]
Note: if you specify ctCorrespondence, then your config wouldn't be able to use my_time and enemy_time variables in formulas.
Starts with a [[events]] array specifier. All further statements go on the next lines.
Every config must have 1 or more event section. This section must have 4 fields: condition, delay, thinktime and elo
Events execution priorirty are top-to-down. That means that most upper events gots evaluated first.
If condition formula didn't matched by operator, event will be skipped without another formulas evaluation.
A math formula which gets evaluated.
Available operators are: +, -, /, *, %, ^.
Every formula can use any of the following variables:
my_timetime that player have left by the last opponent move.enemy_timetime that enemy have left.my_scoreis a last position evaluation score sent by engine.enemy_scorejust a negative value ofmy_score
lhsis a left formula for operator comparsionopoperator which perfomes the comparsion:[<, >, <=, >=, ==, !=]rhssame aslhs, but stands in the right side of comparsion
Example condition:
condition = {lhs = "my_time * 2", op = "<", rhs = "30"}
Activates when player time left multiplied by 2 is less than 30 seconds.
Note: you can use any formula in lhs as well as in rhs.
delaya time that bot will wait before sending move to chess server. Note:delayactivated only after engine has sent bestmove.eloabstract value that specifies "strength" of the engine next move.thinktimetime that engine will have to think on its next move. (Propably will be removed)
[[events]]
condition = {lhs = "my_score", op = ">", rhs = "500"}
delay = "100.0"
elo = "500 * 3"
thinktime = "50.0"
Work in progress.
