Code: Select all
5 . .|8 . 4|. . 6
. . .|. . .|. . .
9 8 .|6 . 5|. 3 1
-----+-----+-----
. 1 2|. . .|8 4 .
. . .|. . .|. . .
7 . .|. . .|. . 2
-----+-----+-----
. 7 .|5 . 3|. 9 .
8 . .|2 . 1|. . 5
. . 5|. 4 .|3 . .
Code: Select all
·-----------------------·------------------------·------------------·
| 5 23 137 | 8 12379 4 | 279 27 6 |
| 12346 2346 13467 | 1379 12379 279 | 5 8 479 |
| 9 8 #47 | 6 *2-7 5 | #247 3 1 |
·-----------------------+------------------------+------------------·
| 36 1 2 | 379 5 679 | 8 4 379 |
| 346 34569 34689 | 13479 1236789 26789 | 1679 1567 379 |
| 7 34569 34689 | 1349 13689 689 | 169 156 2 |
·-----------------------+------------------------+------------------·
| 1246 7 146 | 5 68 3 | 12 9 48 |
| 8 #349 #349 | 2 #79 1 | #467 67 5 |
| 126 269 5 | 79 4 68 | 3 12 78 |
·-----------------------·------------------------·------------------·
- (7=4)r3c3 - (4)r3c7 = (4)r8c7 - (4=397)r8c235 => r3c5 <> 7
First, some exposition. We now consider finned X-wings and higher order finned fish as familiar techniques for good intermediate or advanced level players. (That doesn't mean these patterns are always easy to spot, but that they can be recognized and used if spotted.) The logic is based on the fact that a "strong" relationship exists between the base fish pattern and the fin -- either the base fish pattern must be true, or the fin must be true. Thus, any common elimination(s) caused by both alternatives must hold true and can safely be made. In the case of a finned fish, the eliminations from the fin are immediate, as the fin directly sees the victim cells.
The idea here can be extended to include structures which are "almost" fish patterns (or just about any other familiar defined pattern), were it not for the existence of some "spoiler" candidate. The spoiler may not be usable as a fin, but, if we're lucky, the spoiler candidate may, via some inference chain, cause one or more eliminations which also result from the base pattern.
Generally, we assume that a strong link exists between the base pattern and the spoiler candidate -- either the base pattern must hold true, or the spoiler candidate must be true -- so that this strong link can be used in an AIC. Any common elimination(s) caused by the base pattern, and by the spoiler candidate (via the AIC), must hold true and can safely be made.
In the position below, there is an "almost" swordfish for digit 6.
Code: Select all
^ = cells of base swordfish pattern, digit 6 (columns 5, 7, 8)
% = spoiler candidate for swordfish
# = other cells in AIC
* = eliminations
·---------------------·------------------·-------------------·
| 5 3 17 | 8 179 4 | 279 27 6 |
| 126 #26 1467 | 13 1379 79 | 5 8 479 |
| 9 8 47 | 6 2 5 | 47 3 1 |
·---------------------+------------------+-------------------·
| 36 1 2 | 79 5 679 | 8 4 379 |
| 346 *45-6 89 | 14 ^16789 2 | ^1679 ^1567 379 |
| 7 *45-6 89 | 134 ^13689 689 | ^169 ^156 2 |
·---------------------+------------------+-------------------·
| #1246 7 #16 | 5 %68 3 | #12 9 48 |
| 8 #49 3 | 2 79 1 | ^467 ^67 5 |
| 126 #269 5 | 79 4 68 | 3 12 78 |
·---------------------·------------------·-------------------·
- (6)[swordfish r56c5|r568c7|r568c8] = (6)r7c5 - (6=124)r7c137 - (4=296)r289c2 => r56c2 <> 6
Acknowledgments: The approach here touches on threads I've seen by Ruud on "Almost Row/Column Subsets (ARCS)" (http://www.sudoku.com/forums/viewtopic.php?t=4731), on "Kraken Fish" in the Sudopedia (http://www.sudopedia.org/wiki/Kraken_Fish), and of course on Myth Jellies' thread on Alternating Inference Chains (http://www.sudoku.com/forums/viewtopic.php?t=3865). The last is the most important, in my opinion, since, as I've tried to indicate parenthetically, the approach can be used with just about any defined pattern -- fish (including finned or sashimi), empty rectangles, skyscrapers, two string kites, or even multi-digit patterns.