I thought about another technique - which is probably obvious when solving with pencil and paper
but it wasn't yet in my solver:
Fuzzy obstacle type I
=====================
- Code: Select all
....|....|....|....|....|....|....|....|...9
....|....|....|....|....|....|....|....|....
....|....|....|....|..48|..47|..46|..45|44/43
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
If the possibilities for R3C9 are limited to 44/43, then in R5C9 4 can be excluded
I found two puzzles requiring this technique, but only if fuzzy distance is not used:
- Code: Select all
10|..|..|..|..|..|79|02|..
..|08|..|..|..|..|..|..|01
..|..|..|13|..|..|..|..|..
..|..|17|..|33|..|..|37|..
22|..|..|15|31|..|..|..|..
..|21|..|..|70|..|..|40|..
..|..|67|54|..|48|..|41|..
..|..|59|56|..|..|..|44|43
..|60|..|..|..|52|..|..|..
..|24|..|..|56|..|..|61|..
26|..|32|..|..|..|..|..|..
..|..|28|..|36|..|54|..|..
..|..|..|..|67|68|..|52|..
..|75|..|..|..|..|..|41|..
78|..|74|..|..|..|45|..|..
..|01|18|..|..|..|..|..|48
..|80|..|05|..|08|09|12|..
..|..|..|06|..|..|..|..|..
(fuzzy distance solves both of these without fuzzy obstacle)
Fuzzy obstacle type II
======================
- Code: Select all
....|....|....|....|....|....|....|....|....
..70|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|..66|..23|....|....|....|....|....|....
....|..68|..24|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
....|....|....|....|....|....|....|....|....
The fuzzy obstacle is 67, going in R45C1.
In R7C1 75 can be excluded.
I found - even with fuzzy distance involved - the following puzzles:
- Code: Select all
45|..|41|..|..|..|14|..|..
44|..|..|35|36|37|12|..|..
..|..|..|69|..|..|..|..|..
..|67|..|..|..|..|..|..|18
..|..|..|..|..|32|..|..|77
..|50|..|..|..|..|..|..|76
..|51|60|..|..|..|..|..|21
53|..|..|02|..|..|25|28|..
55|56|..|03|04|..|..|..|..
47|..|..|58|..|..|74|73|..
49|..|..|..|56|..|..|..|..
..|..|..|..|..|68|..|..|..
44|..|51|..|63|66|..|06|..
43|..|..|53|..|65|..|..|..
..|40|24|..|..|..|..|03|81
39|..|..|22|..|11|13|02|..
..|34|..|28|..|..|..|..|16
..|..|32|..|..|19|..|..|..
There should be several ways to combine fuzzy obstacle with fuzzy distance, but I'm afraid
the solver code is turning into spaghetti here.
vidarino wrote:I agree that the constraint might seem superfluous, but in some cases the highest number isn't obvious, e.g. when the grid contains blacked out cells, or the grid isn't square or rectangular.
Then it's nice to have a feature for displaying all yet unfilled numbers, for example:
- Code: Select all
00;24;00;00;56;00;00;61;00
26;00;32;00;00;00;00;00;00
00;00;28;00;36;00;54;00;00
00;00;00;00;67;68;00;52;00
00;75;00;00;00;00;00;41;00
78;00;74;00;00;00;45;00;00
00;01;18;00;00;00;00;00;48
00;80;00;05;00;08;09;12;00
00;00;00;06;00;00;00;00;00
. 2 3 4 . . 7 . . 10 11 . 13 14 15 16 17 . 19 20 21 22 23 . 25 . 27 . 29 30 31 . 33 34 35 . 37 38 39 40 . 42 43 44 . 46 47 . 49 50 51 . 53 . 55 . 57 58 59 60 . 62 63 64 65 66 . . 69 70 71 72 73 . . 76 77 . 79 . 81