I've written the walkthroughs for your latest versions 1 & 2, which I think is more elegant than your approaches.
Version 1
r123456789 -> r123564978
c123456789 -> c123564978
- Code: Select all
+----------------------+----------------------+----------------------+
| 9 -345 1457 |*1346 347 2 | 467 4578 4568 |
|-1247 6 1457 |*149 8 *147 | 2479 2457 3 |
| 2347 234 8 | 5 3479 467 | 24679 1 469 |
+----------------------+----------------------+----------------------+
| 468 #4589 #4569 | 7 -345 1458 | 1346 348 2 |
| 2478 #2458 3 |-1248 6 1458 | 147 9 148 |
| 24678 1 467 | 2348 234 9 | 5 3478 468 |
+----------------------+----------------------+----------------------+
| 1346 349 2 | 469 4579 4567 | 8 -345 1459 |
| 148 7 149 | 2489 2459 3 |-1249 6 1459 |
| 5 3489 469 | 24689 1 468 | 2349 234 7 |
+----------------------+----------------------+----------------------+
1 @ b2 locked @ r12c4+r2c6 => r2c1+r5c4+r8c7 can't have 1
5 @ b4 locked @ r4c23+r5c2 => r1c2+r4c5+r7c8 can't have 5
Hidden pair @ b1: r12c3={15} (naked pair @ c3)
Hidden singles: r6c3=7 => r5c7=7 => r4c7=1 => r9c7=3
Symmetry: r3c1=r6c4=3
All naked singles from here.
Version 2
r123456789 -> r231456897
c123456789 -> c132546987
(After singles)
- Code: Select all
+-------------------------+-------------------------+-------------------------+
| 2678 -3578 235678 |*2789 5689 1 | 4 379 35789 |
| 4 9 5678 | 3 568 678 | 1 2 578 |
|-278 1 23578 |*2789 4 *2789 | 5789 379 6 |
+-------------------------+-------------------------+-------------------------+
| 5 #378 #36789 | 2489 -3689 234689 | 2789 4679 1 |
| 1 2 689 | 5 7 4689 | 3 469 489 |
| 6789 #378 4 |-289 1 23689 | 2789 5 2789 |
+-------------------------+-------------------------+-------------------------+
| 2789 4578 1 | 6 389 34789 | 2579 -3479 234579 |
| 3 457 579 | 1 2 479 | 6 8 4579 |
| 2789 6 2789 | 4789 389 5 |-279 1 23479 |
+-------------------------+-------------------------+-------------------------+
2 of b2 locked @ r13c4+r3c6 => r3c1+r6c4+r9c7 can't have 2
3 of b4 locked @ r4c23+r6c2 => r1c2+r4c5+r7c8 can't have 3
Locked candidates: r1c9+r4c3+r7c6 can't have 3
- Code: Select all
+-------------------------+-------------------------+-------------------------+
| 2678 578 235678 | 2789 5689 1 | 4 379 5789 |
| 4 9 5678 | 3 568 678 | 1 2 578 |
| 78 1 23578 | 2789 4 2789 | 5789 379 6 |
+-------------------------+-------------------------+-------------------------+
| 5 378 6789 |#2489 *689 234689 | 2789 4679 1 |
| 1 2 689 | 5 7 *4689 | 3 469 489 |
| 6789 378 4 |*89 1 #23689 | 2789 5 2789 |
+-------------------------+-------------------------+-------------------------+
| 2789 4578 1 | 6 389 4789 | 2579 479 234579 |
| 3 457 579 | 1 2 479 | 6 8 4579 |
| 2789 6 2789 |#4789 389 5 | 79 1 #23479 |
+-------------------------+-------------------------+-------------------------+
4 @ c4 locked @ r49c4
4 @ r9 locked @ r9c49
But r4c5+r5c6+r6c4 from {4689} must have 4|6
=> r4c4+r6c6 can't be [46]
Symmetry: r4c4+r9c9 can't be [44]
=> r9c4 must be 4
Symmetry: r3c7=5, r6c1=6
Now r2c9 from {78}, r5c3 from {89}, r8c6 from {79}
Symmetry: r2c9+r5c3+r8c6=[789|897]
=> r2c9+r5c3 must have 8, r2c3+r5c9 can't have 8
=> r5c3+r8c6 must have 9, r5c6+r8c3 can't have 9
=> r2c9+r8c6 must have 7, r2c6+r8c9 can't have 7
- Code: Select all
+-------------------------+-------------------------+-------------------------+
| 278 578 235678 | 2789 5689 1 | 4 379 789 |
| 4 9 #567 | 3 568 68 | 1 2 #78 |
| 78 1 2378 | 2789 4 2789 | 5 379 6 |
|-------------------------+-------------------------+-------------------------|
| 5 378 *789 | 289 689 234689 | 2789 4679 1 |
| 1 2 *89 | 5 7 468 | 3 469 49 |
| 6 378 4 | 89 1 2389 | 2789 5 2789 |
|-------------------------+-------------------------+-------------------------|
| 2789 4578 1 | 6 389 789 | 279 479 234579 |
| 3 457 57 | 1 2 79 | 6 8 459 |
| 2789 6 2789 | 4 389 5 | 79 1 2379 |
*-----------------------------------------------------------------------------*
7 @ r2 locked @ r2c39
=> either r45c3={89} or r2c9+r5c3=[78]
=> 8 @ c3,b4 locked @ r45c3
(Alternatively: r45c3<>8 => r45c3=[79] => no 7 @ r2 => contradiction)
Symmetry: 7 @ c9,b3 locked @ r12c9, 9 @ c6,b8 locked @ r78c6
r13c8={39} (naked pair @ c8,b3)
r46c2={37} (naked pair @ c2,b4)
r79c5={38} (naked pair @ c5,b8)
r12c9={78} (naked pair @ c9)
r45c3={89} (naked pair @ c3)
r78c6={79} (naked pair @ c6)
- Code: Select all
+----------------------+----------------------+----------------------+
|-278 -58 23567 | 2789 569 1 | 4 39 *78 |
| 4 9 #567 | 3 56 68 | 1 2 #78 |
|*78 1 237 | 2789 4 28 | 5 39 6 |
+----------------------+----------------------+----------------------+
| 5 37 89 | 289 69 23468 | 2789 467 1 |
| 1 2 89 | 5 7 468 | 3 46 49 |
| 6 37 4 | 89 1 238 | 2789 5 29 |
+----------------------+----------------------+----------------------+
| 2789 458 1 | 6 38 79 | 279 47 23459 |
| 3 45 57 | 1 2 79 | 6 8 459 |
| 2789 6 27 | 4 38 5 | 79 1 239 |
+----------------------+----------------------+----------------------+
W-wing: 7 @ r2 locked @ r2c39, r1c9+r3c1 from {78}
=> r1c12, seeing r1c9+r3c1, can't have 8
Hidden single @ b1: r3c1=8
Symmetry: r6c4=9, r9c7=7
All naked singles from here.
Version 3 should also be crackable, but it'll take some more time...