Lets start with the first one on Morgoth's list. At some point using the most basic methods you could get to here.
- Code: Select all
*--------------------------------------------------------------------*
| 9 5 1 | 23 237 37 | 4 8 6 |
| 27 347 2347 | 8 1469 169 | 79 5 179 |
| 6 47 8 | 149 5 19 | 2 179 3 |
|----------------------+----------------------+----------------------|
| 158 16 56 | 7 1289 4 | 689 3 1259 |
| 4 1367 9 | 123 1238 1358 | 678 17 1257 |
| 1578 2 357 | 6 1389 13589 | 789 4 1579 |
|----------------------+----------------------+----------------------|
| 3 14679 2467 | 149 14679 1679 | 5 279 8 |
| 17 8 47 | 5 1479 2 | 3 6 79 |
| 257 679 2567 | 39 36789 36789 | 1 279 4 |
*--------------------------------------------------------------------*
I'm going to remove the clutter and filter on the nines
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . 9 9| 9 . 9|
| . . .| 9 . 9| . 9 .|
|--------+--------+--------|
| . . .| . 9 .| 9 . 9|
| . . 9| . . .| . . .|
| . . .| . 9 9| 9 . 9|
|--------+--------+--------|
| . 9 .| 9 9 9| . 9 .|
| . . .| . 9 .| . . 9|
| . 9 .| 9 9 9| . 9 .|
*--------------------------*
Lets look at an x-wing first. Try the one formed by the intersection of r37 and c68.
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . 9 %9| 9 . 9|
| . . .|#9 . *9| . *9 .|
|--------+--------+--------|
| . . .| . 9 .| 9 . 9|
| . . 9| . . .| . . .|
| . . .| . 9 %9| 9 . 9|
|--------+--------+--------|
| . #9 .|#9 #9 *9| . *9 .|
| . . .| . 9 .| . . 9|
| . 9 .| 9 9 %9| . %9 .|
*--------------------------*
Now either the x-wing group (marked with stars) is true (has two true candidates), or both the group of candidates marked with '#' and the group marked with '%' must each have at least one true candidate. This doesn't look very promising, so lets try a different one. How about r79 & c28.
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . 9 9| 9 . 9|
| . . .| 9 . 9| . %9 .|
|--------+--------+--------|
| . . .| . 9 .| 9 . 9|
| . . 9| . . .| . . .|
| . . .| . 9 9| 9 . 9|
|--------+--------+--------|
| . *9 .|#9 #9 #9| . *9 .|
| . . .| . 9 .| . . 9|
| . *9 .|#9 #9 #9| . *9 .|
*--------------------------*
Either the x-wing group is true or one of the candidates marked with '#', and the single candidate marked with '%' must be true. We are getting closer. Perhaps if we added another row and column. Try the intersection of r379 and c248
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . 9 9| 9 . 9|
| . *. .|*9 . #9| . *9 .|
|--------+--------+--------|
| . . .| . 9 .| 9 . 9|
| . . 9| . . .| . . .|
| . . .| . 9 9| 9 . 9|
|--------+--------+--------|
| . *9 .|*9 #9 #9| . *9 .|
| . . .| . 9 .| . . 9|
| . *9 .|*9 #9 #9| . *9 .|
*--------------------------*
Now either the swordfish group has three true candidates, or at least one of the candidates marked with a '#' and at least one of the candidates marked with a '%' must be true. But there are no candidates sharing a column with the swordfish, so there are no candidates marked with a '%'. Therefore the swordfish must be true and you can eliminate all of the candidates marked with '#'. Note as well that it doesn't matter to us if some of the intersection cells do not contain a 9. In the case of a swordfish, there just has to be enough of them to hold three 9's.
We also have a finned x-wing example in this grid, lets take a look at the x-wing group formed from the intersection of r48 and c59.
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . %9 9| 9 . %9|
| . . .| 9 . 9| . 9 .|
|--------+--------+--------|
| . . .| . *9 .|#9 . *9|
| . . 9| . . .| . . .|
| . . .| . %9 9| 9 . %9|
|--------+--------+--------|
| . 9 .| 9 %9 9| . 9 .|
| . . .| . *9 .| . . *9|
| . 9 .| 9 %9 9| . 9 .|
*--------------------------*
Note that we once again have a case where either the x-wing is true, or a single outside candidate, this time marked with '#', is true. Notice that whichever one is true (x-wing or r4c7 in sharing a box) you still get to remove the 9 in r6c9. This is an example of a finned x-wing, and they are not too hard to find when you are searching for fish groups. Note that this would work even if you had the following...
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . %9 9| 9 . %9|
| . . .| 9 . 9| . 9 .|
|--------+--------+--------|
| . . .| . *9 .|#9 #9 *9|
| . . 9| . . .| . . .|
| . . .| . %9 9| 9 . %9|
|--------+--------+--------|
| . 9 .| 9 %9 9| . 9 .|
| . . .| . *9 .| . . *9|
| . 9 .| 9 %9 9| . 9 .|
*--------------------------*
The added nine in r4c8 gives us an extra choice sharing a row with our x-group, but either choice still eliminates the nine in r6c9 as does the x-wing. Our r379/c248 swordfish is spoiled in this new grid, but the finned x-wing deduction survives.
The finned concept works for any sized constraint group. Check out our r379/c248 swordfish in this final modified grid...
- Code: Select all
*--------------------------*
| 9 . .| . . .| . . .|
| . . .| . 9 9| 9 . 9|
| . *. .|*9 . #9| . *9 .|
|--------+--------+--------|
| . . .| . 9 .| 9 . 9|
| . . 9| . . .| . . .|
| . . .| . 9 9| 9 . 9|
|--------+--------+--------|
| . *9 .|*9 #9 #9| . *9 .|
| . . .|%9 9 .| . . 9|
| . *9 .|*9 #9 #9| . *9 .|
*--------------------------*
The added 9 in r8c4 on this grid messes up the swordfish a little bit, but not much. Either the swordfish is true, or the "fin" in r8c4 is true. Either way, with this finned swordfish you still get to remove all four 9's from r79c56.
Happy fishing.