Let me now give my solution with oddagons and explain how I found it.
As I've shown before, this puzzle is in W4. I therefore decided to try to solve it without whips. The first natural choice is to use only reversible patterns. (Another possibility would be to use only 2D chains.)
I first tried to activate all the reversible patterns in SudoRules: Subsets (Naked, Hidden and Super-Hidden), bivalue-chains, z-chains and oddagons, as shown in the following options of the SudoRules configuration file:
- Code: Select all
(bind ?*Subsets* TRUE)
(bind ?*Bivalue-Chains* TRUE)
(bind ?*z-Chains* TRUE)
(bind ?*Oddagons* TRUE)
It appeared that this puzzle is also in Z4:
***********************************************************************************************
*** SudoRules 20.1.s based on CSP-Rules 2.1.s, config = Z+O+S
*** Using CLIPS 6.32-r773
***********************************************************************************************
singles ==> r7c6 = 5, r5c3 = 4, r8c1 = 4, r7c1 = 6
160 candidates, 777 csp-links and 777 links. Density = 6.11%
whip[1]: r5n5{c8 .} ==> r6c7 ≠ 5
whip[1]: c5n8{r3 .} ==> r3c4 ≠ 8, r1c4 ≠ 8
hidden-pairs-in-a-row: r4{n1 n6}{c7 c9} ==> r4c9 ≠ 9, r4c9 ≠ 2, r4c7 ≠ 2
x-wing-in-columns: n6{c4 c8}{r1 r9} ==> r9c7 ≠ 6, r1c7 ≠ 6
biv-chain[3]: r4c6{n9 n7} - r5c5{n7 n2} - r4n2{c4 c3} ==> r4c3 ≠ 9
;;; Resolution state RS1
z-chain[3]: c3n5{r6 r1} - c7n5{r1 r5} - b6n2{r5c7 .} ==> r6c3 ≠ 2
z-chain[3]: b8n9{r9c6 r7c4} - c8n9{r7 r5} - c2n9{r5 .} ==> r9c3 ≠ 9
z-chain[3]: r8n9{c9 c3} - c2n9{r9 r5} - c8n9{r5 .} ==> r7c9 ≠ 9
biv-chain[3]: r6n3{c7 c9} - c9n9{r6 r8} - r8c3{n9 n3} ==> r8c7 ≠ 3
biv-chain[3]: r8c7{n7 n6} - c8n6{r9 r1} - r1c4{n6 n7} ==> r1c7 ≠ 7
z-chain[2]: r1n7{c6 c2} - r5n7{c2 .} ==> r3c5 ≠ 7
z-chain[2]: r1n7{c6 c2} - r5n7{c2 .} ==> r2c5 ≠ 7
biv-chain[3]: c5n7{r5 r8} - c5n6{r8 r2} - r1c4{n6 n7} ==> r4c4 ≠ 7
biv-chain[4]: r5c8{n9 n5} - r5c7{n5 n2} - c5n2{r5 r7} - r7c4{n2 n9} ==> r7c8 ≠ 9
biv-chain[4]: r7n3{c9 c5} - b8n2{r7c5 r7c4} - r7n9{c4 c2} - r8n9{c3 c9} ==> r8c9 ≠ 3
biv-chain[4]: b8n6{r9c4 r8c5} - c5n7{r8 r5} - c5n2{r5 r7} - r7c4{n2 n9} ==> r9c4 ≠ 9
naked-pairs-in-a-column: c4{r1 r9}{n6 n7} ==> r3c4 ≠ 7
singles ==> r3c4 = 4, r6c6 = 4
z-chain[4]: r9n7{c6 c7} - b9n3{r9c7 r7c9} - r7c5{n3 n2} - r5c5{n2 .} ==> r8c5 ≠ 7
singles ==> r5c5 = 7, r4c6 = 9, r7c4 = 9, r7c5 = 2, r7c9 = 3, r6c7 = 3, r4c1 = 7
whip[1]: r2n7{c9 .} ==> r3c9 ≠ 7
whip[1]: r8n7{c9 .} ==> r9c7 ≠ 7
naked-pairs-in-a-block: b9{r7c8 r9c7}{n1 n8} ==> r9c8 ≠ 8, r9c8 ≠ 1
hidden-pairs-in-a-column: c7{n2 n5}{r1 r5} ==> r1c7 ≠ 8, r1c7 ≠ 1
biv-chain[2]: r5n2{c7 c2} - r3n2{c2 c9} ==> r6c9 ≠ 2, r1c7 ≠ 2
stte
This is probably the simplest solution one can hope, in terms of patterns involved and their maximal lengths (using only Subsets and bivalue-chains is not enough). As you can see from the resolution path, it heavily relies on z-chains.
But that day, I had set my mind on hunting oddagons. So I tried to de-activate z-chains, using the following configuration:
- Code: Select all
(bind ?*Subsets* TRUE)
(bind ?*Bivalue-Chains* TRUE)
(bind ?*Oddagons* TRUE)
Notice that, while the previous choice was "natural", this one is less so. As oddagons rely on z-candidates, why would one activate them but not z-chains? Anyway, SudoRules allows to play freely with all the rules combinations (provided they are consistent). (What SudoRules doesn't allow easily is to change the relative priorities of rules.)
***********************************************************************************************
*** SudoRules 20.1.s based on CSP-Rules 2.1.s, config = BC+O+S
*** Using CLIPS 6.32-r773
***********************************************************************************************
Same start upto resolution state RS1
biv-chain[4]: r5c8{n9 n5} - r5c7{n5 n2} - c5n2{r5 r7} - r7c4{n2 n9} ==> r7c8 ≠ 9
biv-chain[5]: r4c6{n9 n7} - r5c5{n7 n2} - r7c5{n2 n3} - b2n3{r3c5 r3c6} - c6n4{r3 r6} ==> r6c6 ≠ 9
singles ==> r6c6 = 4, r3c4 = 4
oddagon[5]: c2n9{r5 r7},b7n9{r7c2 r9c3},r9n9{c3 c8},c8n9{r9 r5},r5n9{c8 c2} ==> r9c3 ≠ 9
oddagon[7]: r5n9{c2 c8},c8n9{r5 r9},b9n9{r9c8 r7c9},c9n9{r7 r8},r8n9{c9 c3},b7n9{r8c3 r9c2},c2n9{r9 r5} ==> r7c9 ≠ 9
biv-chain[3]: r6n3{c7 c9} - c9n9{r6 r8} - r8c3{n9 n3} ==> r8c7 ≠ 3
biv-chain[3]: r8c7{n7 n6} - c8n6{r9 r1} - r1c4{n6 n7} ==> r1c7 ≠ 7
biv-chain[4]: r7n3{c9 c5} - b8n2{r7c5 r7c4} - r7n9{c4 c2} - r8n9{c3 c9} ==> r8c9 ≠ 3
oddagon[5]: c2n7{r1 r5},r5n7{c2 c5},c5n7{r5 r3},b2n7{r3c5 r1c6},r1n7{c6 c2} ==> r3c5 ≠ 7
oddagon[11]: r1c7{n1 n5},c7n5{r1 r5},r5c7{n5 n2},c7n2{r5 r6},r6c7{n2 n3},r6n3{c7 c9},c9n3{r6 r7},r7c9{n3 n1},c9n1{r7 r4},r4n1{c9 c7},c7n1{r4 r1} ==> r1c7 ≠ 1
oddagon[11]: b1n2{r1c2 r3c2},c2n2{r3 r5},r5n2{c2 c5},c5n2{r5 r7},r7c5{n2 n3},r7n3{c5 c9},c9n3{r7 r6},r6n3{c9 c7},r6c7{n3 n2},c7n2{r6 r1},r1n2{c7 c2} ==> r1c7 ≠ 2
hidden-single-in-a-block ==> r3c9 = 2
whip[1]: b3n7{r2c9 .} ==> r2c1 ≠ 7, r2c5 ≠ 7
biv-chain[3]: r2n7{c9 c7} - r8c7{n7 n6} - c5n6{r8 r2} ==> r2c9 ≠ 6
biv-chain[3]: c5n7{r5 r8} - c5n6{r8 r2} - r1c4{n6 n7} ==> r4c4 ≠ 7
hidden-pairs-in-a-column: c4{n6 n7}{r1 r9} ==> r9c4 ≠ 9
biv-chain[3]: c2n2{r1 r5} - r5c7{n2 n5} - r1c7{n5 n8} ==> r1c2 ≠ 8
biv-chain[3]: r7c9{n1 n3} - r6c9{n3 n9} - b9n9{r8c9 r9c8} ==> r9c8 ≠ 1
biv-chain[3]: b6n2{r6c7 r5c7} - c7n5{r5 r1} - c3n5{r1 r6} ==> r6c3 ≠ 2
biv-chain[4]: r7c8{n8 n1} - r7c9{n1 n3} - r6c9{n3 n9} - b9n9{r8c9 r9c8} ==> r9c8 ≠ 8
naked-triplets-in-a-block: b9{r8c7 r8c9 r9c8}{n6 n7 n9} ==> r9c7 ≠ 7
stte
This is a more complex solution than with z-chains, but we got our oddagons (with max length 11), without changing the natural rules priorities.