7 /* Used to signal the main loop that the engine structures need to be reset
8 * (for fresh board). */
9 extern bool engine_reset
;
14 typedef char *(*engine_notify_play
)(struct engine
*e
, struct board
*b
, struct move
*m
);
15 typedef char *(*engine_chat
)(struct engine
*e
, struct board
*b
, char *cmd
);
16 typedef coord_t
*(*engine_genmove
)(struct engine
*e
, struct board
*b
, enum stone color
);
17 /* One dead group per queued move (coord_t is (ab)used as group_t). */
18 typedef void (*engine_dead_group_list
)(struct engine
*e
, struct board
*b
, struct move_queue
*mq
);
19 /* e->data and e will be free()d by caller afterwards. */
20 typedef void (*engine_done
)(struct engine
*e
);
22 /* This is engine data structure. A new engine instance is spawned
23 * for each new game during the program lifetime. */
28 /* If set, do not reset the engine state on clear_board. */
31 board_cprint printhook
;
32 engine_notify_play notify_play
;
34 engine_genmove genmove
;
35 engine_dead_group_list dead_group_list
;