1 #ifndef ZZGO_TIMEINFO_H
2 #define ZZGO_TIMEINFO_H
4 /* Time-keeping information about time to spend on the next move and/or
7 /* Note that some ways of specifying time (TD_GAMES) may not make sense
14 /* For how long we can spend the time? */
16 TT_NULL
, // No time limit. Other structure elements are undef.
17 TT_MOVE
, // Time for the next move.
18 TT_TOTAL
, // Time for the rest of the game.
20 /* How are we counting the time? */
22 TD_GAMES
, // Fixed number of simulations to perform.
23 TD_WALLTIME
, // Wall time to spend performing simulations.
26 int games
; // TD_GAMES
27 struct timespec walltime
; // TD_WALLTIME
31 /* Parse time information provided in custom format:
32 * =NUM - fixed number of simulations per move
33 * NUM - number of seconds to spend per move
34 * _NUM - number of seconds to spend per game
36 * Returns false on parse error. */
37 bool time_parse(struct time_info
*ti
, char *s
);
40 void time_add(struct timespec
*when
, struct timespec
*len
);
42 /* Return whether @when deadline (absolute time) already passed. */
43 bool time_passed(struct timespec
*when
);