From: Simon Tatham Date: Sun, 29 Jul 2012 21:29:26 +0000 (+0000) Subject: Don't fail an assertion when setting up the provided clues at the X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=bbf800e49ee5965c21eb4a89116e7529d0d4954f;p=sgt-puzzles.git Don't fail an assertion when setting up the provided clues at the start of the solver, if they contradict each other. (Could trigger on user-provided grids.) [originally from svn r9594] --- diff --git a/solo.c b/solo.c index 7062194..43abc1f 100644 --- a/solo.c +++ b/solo.c @@ -1773,9 +1773,16 @@ static void solver(int cr, struct block_structure *blocks, * Place all the clue numbers we are given. */ for (x = 0; x < cr; x++) - for (y = 0; y < cr; y++) - if (grid[y*cr+x]) + for (y = 0; y < cr; y++) { + int n = grid[y*cr+x]; + if (n) { + if (!cube(x,y,n)) { + diff = DIFF_IMPOSSIBLE; + goto got_result; + } solver_place(usage, x, y, grid[y*cr+x]); + } + } /* * Now loop over the grid repeatedly trying all permitted modes