From e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 2 Feb 2012 23:04:43 +0000 Subject: [PATCH] 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] --- solo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) {