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]
This commit is contained in:
Simon Tatham
2012-02-02 23:04:43 +00:00
parent e3b21ef6c5
commit e6b4800d86

2
solo.c
View File

@ -1473,7 +1473,7 @@ static int solver_killer_sums(struct solver_usage *usage, int b,
} }
assert(nsquares > 0); assert(nsquares > 0);
if (nsquares > 4) if (nsquares < 2 || nsquares > 4)
return 0; return 0;
if (!cage_is_region) { if (!cage_is_region) {