X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/1e3e152de7cc491b63c5e351b5f603d307182b07..61072f7be9d1ab83c459ec1eabc0f9503b57fac6:/netslide.c diff --git a/netslide.c b/netslide.c index 22517f4..5aa58b6 100644 --- a/netslide.c +++ b/netslide.c @@ -582,7 +582,7 @@ static char *new_game_desc(game_params *params, random_state *rs, if (col == prevrowcol) { if (dir == 2-prevdir) continue; /* undoes last move */ - else if ((nrepeats+1)*2 > h) + else if (dir == prevdir && (nrepeats+1)*2 > h) continue; /* makes fewer moves */ } slide_col_int(w, h, tiles, 1 - dir, col); @@ -593,7 +593,7 @@ static char *new_game_desc(game_params *params, random_state *rs, if (row == prevrowcol) { if (dir == 4-prevdir) continue; /* undoes last move */ - else if ((nrepeats+1)*2 > w) + else if (dir == prevdir && (nrepeats+1)*2 > w) continue; /* makes fewer moves */ } slide_row_int(w, h, tiles, 2 - dir, row); @@ -893,8 +893,8 @@ static void free_game(game_state *state) sfree(state); } -static game_state *solve_game(game_state *state, game_aux_info *aux, - char **error) +static game_state *solve_game(game_state *state, game_state *currstate, + game_aux_info *aux, char **error) { game_state *ret;