From: Simon Tatham Date: Fri, 10 Jun 2005 11:29:59 +0000 (+0000) Subject: Overzealous last-move tracking during shuffle was causing lockups on X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=363dadee0c87df57ac82ac99ea452ed757391869;p=sgt-puzzles.git Overzealous last-move tracking during shuffle was causing lockups on 2x2 grid generation. [originally from svn r5939] --- diff --git a/netslide.c b/netslide.c index 22517f4..d19bdbb 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);