From: Simon Tatham Date: Thu, 2 Feb 2012 23:04:43 +0000 (+0000) Subject: Don't try to run solver_killer_sums on a Killer cage with only one X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2;p=sgt-puzzles.git Don't try to run solver_killer_sums on a Killer cage with only one square. It isn't equipped for it, and will try to handle it with the 4-square case and get confused. This can come up if the DIFF_KINTERSECT pass before that split a cage, and will cause the solver to miss valid solutions; e.g. 3x3kadu#802065940985372 would generate an ambiguous puzzle before this change. [originally from svn r9402] --- diff --git a/solo.c b/solo.c index 766adde..6987872 100644 --- a/solo.c +++ b/solo.c @@ -1473,7 +1473,7 @@ static int solver_killer_sums(struct solver_usage *usage, int b, } assert(nsquares > 0); - if (nsquares > 4) + if (nsquares < 2 || nsquares > 4) return 0; if (!cage_is_region) {