Fix from James H for an assertion failure during Signpost
[sgt/puzzles] / signpost.c
index 05d4eaf..b6db3a3 100644 (file)
@@ -423,6 +423,8 @@ static char *validate_params(game_params *params, int full)
 {
     if (params->w < 2 || params->h < 2)
        return "Width and height must both be at least two";
+    if (params->w == 2 && params->h == 2)   /* leads to generation hang */
+       return "Width and height cannot both be two";
 
     return NULL;
 }
@@ -750,6 +752,7 @@ static int new_game_strip(game_state *state, random_state *rs)
         copy->flags[j] |= FLAG_IMMUTABLE;
         state->flags[j] |= FLAG_IMMUTABLE;
         debug_state("Copy of state: ", copy);
+        strip_nums(copy);
         if (solve_state(copy) > 0) goto solved;
         assert(check_nums(state, copy, 1));
     }