X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=solo.c;h=43abc1f8e7213cad033b848556f1f50e9d5f8164;hb=bbf800e49ee5965c21eb4a89116e7529d0d4954f;hp=70621948c3ed3f5bec3c921d8777e51608663537;hpb=6567260eb0af75a3c82f4a8a8292c6446d94fd98;p=sgt-puzzles.git 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