diff options
| author | Simon Tatham <anakin@pobox.com> | 2012-02-02 23:04:43 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2012-02-02 23:04:43 +0000 |
| commit | e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2 (patch) | |
| tree | 9d3844b8f81365f3aaf18a044273d97f56746659 /solo.c | |
| parent | e3b21ef6c55ceae4eb3b6884dad6e9043ddbeaeb (diff) | |
| download | puzzles-e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2.zip puzzles-e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2.tar.gz puzzles-e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2.tar.bz2 puzzles-e6b4800d86cfc5e1bfc5e3b5bde78a182f6fe5b2.tar.xz | |
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]
Diffstat (limited to 'solo.c')
| -rw-r--r-- | solo.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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) { |