ref: e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2
parent: e3b21ef6c55ceae4eb3b6884dad6e9043ddbeaeb
author: Simon Tatham <anakin@pobox.com>
date: Thu Feb 2 18:04:43 EST 2012
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]
--- a/solo.c
+++ b/solo.c
@@ -1473,7 +1473,7 @@
}
assert(nsquares > 0);
- if (nsquares > 4)
+ if (nsquares < 2 || nsquares > 4)
return 0;
if (!cage_is_region) {