Enhance multi-session TC clock handling
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 4 Oct 2010 09:50:38 +0000 (11:50 +0200)
committerArun Persaud <arun@nubati.net>
Tue, 5 Oct 2010 02:36:08 +0000 (19:36 -0700)
commit01768d1677ff891d503bbfa250b09d373bfa7422
treec893bed19724c86c945cbf4052a7f0adf6d74b15
parent88082a3882690efd9ea7d3e01ad9d6dd5f5baf86
Enhance multi-session TC clock handling

Some new TC types are introduced: Bronstein and free sessions. The
former is implemented by letting an exclamation point '!' in front of an
increment (in the -tc string) indicate that the increment is limited to
the time actually used on the previous move. The latter is an interval
of given duraton in which you can do any number of moves (even zero),
before the next session starts. This is needed for implementing Shogi
byoyomi-type TC, as a first session, followed by a session of fixed-time
per move. The latter can now be specified with the -tc argument as a
degenerate case of Bronstein, where the time on the clock is <= the
increment (so that it is never possible to think longer than the
increment). A TC of 5 min + 10 sec byoyomi can then be indicated as
300:10+!10.

The sessions are now separated by ':' in stead of '+', and all times in
the TC string are converted to seconds first (in ParseTimeControl), so
the fullTCstring can now be directly used in a PGN tag.

Note that this patch only addresses clock handling; the engine will not
be informed yet if the TC type or parameters change at the start of new
session!
backend.c