From 4f7b65de2e5f6387a819dd3767f5459b06f5db11 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 2 May 2005 13:17:10 +0000 Subject: Added an automatic `Solve' feature to most games. This is useful for various things: - if you haven't fully understood what a game is about, it gives you an immediate example of a puzzle plus its solution so you can understand it - in some games it's useful to compare your solution with the real one and see where you made a mistake - in the rearrangement games (Fifteen, Sixteen, Twiddle) it's handy to be able to get your hands on a pristine grid quickly so you can practise or experiment with manoeuvres on it - it provides a good way of debugging the games if you think you've encountered an unsolvable grid! [originally from svn r5731] --- puzzles.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'puzzles.h') diff --git a/puzzles.h b/puzzles.h index 1a4f10f..a9323f5 100644 --- a/puzzles.h +++ b/puzzles.h @@ -142,6 +142,7 @@ config_item *midend_get_config(midend_data *me, int which, char **wintitle); char *midend_set_config(midend_data *me, int which, config_item *cfg); char *midend_game_id(midend_data *me, char *id, int def_seed); char *midend_text_format(midend_data *me); +char *midend_solve(midend_data *me); /* * malloc.c @@ -197,6 +198,8 @@ struct game { game_state *(*new_game)(game_params *params, char *seed); game_state *(*dup_game)(game_state *state); void (*free_game)(game_state *state); + int can_solve; + game_state *(*solve)(game_state *state, game_aux_info *aux, char **error); int can_format_as_text; char *(*text_format)(game_state *state); game_ui *(*new_ui)(game_state *state); -- cgit v1.1