Fish
Basic Fish
Overview
Fish is a core technique that intermediate Sudoku players must master. It often plays a critical role in solving puzzles.
Like Hidden Sets , Fish relies on observing candidate distribution within Regions . However, Fish requires examining two intersecting sets of Regions : Base Regions and Cover Regions .
Fish techniques are classified by the number of Base Regions , denoted by n . Let’s look at some examples.
Cyclopsfish
Cyclopsfish occurs when n = 1 . In this case, all cells containing a candidate within 1 Base Region are covered by 1 Cover Region .
Note: Cyclopsfish is essentially the same as the Intersections technique we learned earlier (specifically Pointing or Claiming ).
In the image, candidate 4 in Base Region Column G (blue area) appears only in cells {G4, G5} (green candidates). These are completely covered by Cover Region Box 6 (green area).
How does Cyclopsfish elimination work?
Consider this: all instances of candidate 4 in the Base Region fall within the intersection of the Base Region and the Cover Region (cells {G4, G5, G6} ).
By Sudoku rules, every region must contain exactly one 4 . Since candidate 4 in Base Region Column G appears only in the intersection, one 4 must be placed within these intersection cells.
Similarly, Cover Region Box 6 must also contain one 4 . Since the intersection already contains one 4 , the other cells in Box 6 cannot contain a 4 . Thus, we can eliminate candidate 4 from the rest of Box 6 .
Generalization
This logic generalizes to n Base Regions and n Cover Regions . Let’s call the candidate x .
General definition of Fish :
A Fish pattern exists for candidate x if all its occurrences within n same-type (non-overlapping) Base Regions are covered by n same-type (non-overlapping) Cover Regions .
General elimination logic of Fish :
According to Sudoku rules, the n Base Regions must contain n instances of x . Since candidate x in the Base Regions appears only in the intersection with the Cover Regions , those n instances of x must be placed within that intersection.
Similarly, the n Cover Regions must also contain n instances of x . Since the intersection already contains these n instances, any cells in the Cover Regions that are outside the intersection cannot contain x . Therefore, candidate x can be eliminated from any cells in the Cover Regions that are outside the intersection.
This is the core logic of Fish . Let’s look at more examples.
X-Wing
X-Wing is a Fish where n = 2 .
In the image, candidate 5 in Base Regions Row 3 and Row 5 (blue areas) appears in cells completely covered by Cover Regions Column C and Column E (green areas).
This means candidate 5 in the Base Regions is confined to the intersection with the Cover Regions : {C3, E3, C5, E5} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 5 . We can eliminate candidate 5 from C6 and E6 .
In the image, candidate 4 in Base Regions Column E and Column H (blue areas) appears in cells completely covered by Cover Regions Row 3 and Row 4 (green areas).
This means candidate 4 in the Base Regions is confined to the intersection with the Cover Regions : {E3, H3, E4, H4} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 4 . We can eliminate candidate 4 from A3 , B3 , and C3 .
Swordfish
Swordfish is a Fish where n = 3 .
In the image, candidate 1 in Base Regions Row 2 , Row 4 , and Row 7 (blue areas) appears in cells completely covered by Cover Regions Column B , Column E , and Column G (green areas).
This means candidate 1 in the Base Regions is confined to the intersection with the Cover Regions : {B2, E2, G2, B4, E4, G4, B7, E7, G7} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 1 . Candidate 1 in G3 can be eliminated.
In the image, candidate 9 in Base Regions Row 3 , Row 5 , and Row 7 (blue areas) appears in cells completely covered by Cover Regions Column C , Column E , and Column I (green areas).
This means candidate 9 in the Base Regions is confined to the intersection with the Cover Regions : {C3, E3, I3, C5, E5, I5, C7, E7, I7} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 9 . Candidate 9 in I2 , C6 , E6 , and C9 can be eliminated.
Jellyfish
Jellyfish is a Fish where n = 4 .
In the image, candidate 1 in Base Regions Row 1 , Row 4 , Row 5 , and Row 7 (blue areas) appears in cells completely covered by Cover Regions Column B , Column C , Column G , and Column I (green areas).
This means candidate 1 in the Base Regions is confined to the intersection with the Cover Regions : {B1, C1, G1, I1, B4, C4, G4, I4, B5, C5, G5, I5, B7, C7, G7, I7} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 1 . Candidate 1 in C2 and I8 can be eliminated.
In the image, candidate 6 in Base Regions Row 3 , Row 5 , Row 6 , and Row 8 (blue areas) appears in cells completely covered by Cover Regions Column B , Column C , Column F , and Column I (green areas).
This means candidate 6 in the Base Regions is confined to the intersection with the Cover Regions : {B3, C3, F3, I3, B5, C5, F5, I5, B6, C6, F6, I6, B8, C8, F8, I8} .
Consequently, cells in the Cover Regions outside this intersection cannot contain 6 . Candidate 6 in B4 and C7 can be eliminated.
Finned Fish
Overview
Finned Fish is a variation of the standard Fish technique.
When looking for Fish patterns, sometimes the Cover Regions do not fully cover all candidates in the Base Regions . These uncovered candidates are known as Fins , and the cells containing them are called Fin Cells . Even with these slight imperfections, we can often still make eliminations.
Finned X-Wing
Let’s explore the Finned Fish technique with an example.
In this example, the Base Regions (blue areas) are Row 4 and Row 9 , and the Cover Regions (green areas) are Col B and Col F . The candidate is 7 . Notice that the candidate 7 in E9 (blue candidate) is part of the Base Regions but is not covered by the Cover Regions .
A candidate like this, which lies within the Base Regions but remains uncovered, is called an Exo Fin (a type of Fin ).
How do we find eliminations? We can reason as follows:
Case 1: If no Fin Cell contains a 7 , this pattern acts like a regular X-Wing . We would eliminate the orange and red candidates as usual.
Case 2: If at least one Fin Cell contains a 7 , then any cell that can see all Fin Cells cannot contain a 7 .
Since one of these cases must be true, any candidate eliminated in both scenarios can be safely removed.
Simply put: look for cells that would be eliminated by a regular Fish . If such a cell can also see all Fin Cells , the candidate 7 inside it can be eliminated.
Therefore, the 7 in F8 can be eliminated because F8 is targeted by the regular X-Wing logic AND it can see the single Fin Cell {E9} .
Let’s look at a second example.
Here, the Base Regions (blue areas) are Col C and Col F , and the Cover Regions (green areas) are Row 6 and Row 8 . The candidate is 2 . The candidate 2 in C5 (blue candidate) is uncovered, making it a Fin .
A standard elimination would remove candidate 2 s from A8 and A6 (orange and red candidates). Of these, only A6 can see the single Fin Cell {C5} , so the candidate 2 in A6 can be eliminated.
Finned Swordfish
In this image, the Base Regions (blue areas) are Col B , Col G , and Col I ; the Cover Regions (green areas) are Row 3 , Row 4 , and Row 8 ; the candidate is 2 . The candidates 2 in {G5, I5, G6} (blue candidates) are uncovered, becoming Fins .
A standard elimination would remove candidate 2 s from {E3, F3, H3, C4, H4} (orange and red candidates). Of these, only H4 can see all Fin Cells {G5, I5, G6} , so the candidate 2 in H4 can be eliminated.
In this example, the Base Regions (blue areas) are Row 1 , Row 3 , and Row 8 ; the Cover Regions (green areas) are Col B , Col F , and Col H ; the candidate is 4 . The candidates 4 in {E1, D3} (blue candidates) are uncovered, becoming Fins .
A standard elimination would remove candidate 4 s from {F2, F5, F7, B9, F9} (orange and red candidates). Of these, only F2 can see all Fin Cells {E1, D3} , so the candidate 4 in F2 can be eliminated.
Finned Jellyfish
In the image, the Base Regions (blue areas) are Row 1 , Row 4 , Row 6 , and Row 8 ; the Cover Regions (green areas) are Col B , Col D , Col F , and Col H ; the candidate is 3 . The candidates 3 in {G4, I6} (blue candidates) are uncovered, becoming Fins .
A standard elimination would remove candidate 3 s from {B2, F2, H2, B3, D3, F3, H3, F5, H5, D7, D9, H9} (orange and red candidates). Of these, only H5 can see all Fin Cells {G4, I6} , so the candidate 3 in H5 can be eliminated.
Mutant Fish (Optional)
We will add content about Mutant Fish here in the future.
Fish Theory (Optional)
Definition of “See”
Two cells and () see each other if they belong to the same region .
Note that in our definition, a cell cannot see itself.
Definition of Basic Fish
Basic Fish is a pattern for a candidate involving a set of Base Regions () and a set of Cover Regions (). The regions in must not overlap, and the regions in must not overlap. Let be the cells containing in , and be the cells containing in . If and , this pattern is called a Fish.
It is called Basic Fish because it requires Base Regions to be non-overlapping, Cover Regions to be non-overlapping, and Cover Regions to cover all in Base Regions. These conditions are not strictly necessary.
Proof of Basic Fish Technique
Proposition : For candidate , if there exists a set of Base Regions and a set of Cover Regions forming a Basic Fish, let the sets of cells containing be and respectively, then candidate in can be eliminated.
Proof :
Let .
By Sudoku rules, the number must be placed exactly once in each region.
Since contains non-overlapping regions, exactly instances of must be placed in . This means exactly instances of are in .
Similarly, exactly instances of must be placed in .
Since , we know that cannot be placed in .
Therefore, candidate in can be eliminated.
Definition of General Fish
General Fish refers to a pattern for candidate , where there exists a set of regions (Base Regions) , and the set of cells containing in is . There exists another set of regions (Cover Regions) , and the set of cells containing in is . If , then this pattern is called a Fish.
The main difference between General and Basic Fish is that Base Regions are allowed to overlap, Cover Regions are allowed to overlap, and the condition is not required.
Proof of General Fish Technique
Proposition : For candidate , there exists a set of Base Regions and a set of Cover Regions forming a General Fish.
Let the sets of cells containing in and be and respectively.
Let .
Let be the set of cells in that exist in multiple Base Regions.
Let be the set of cells in that exist in multiple Cover Regions.
Let .
Let .
Let be the set of cells that can see all cells in .
If , then in can be eliminated.
If , then in can be eliminated.
Proof :
Let .
Case 1 : Assume no is placed in .
According to Sudoku rules, exactly one must be placed in each region.
Since is not placed in , the cells where is placed belong to only one Base Region (i.e., not in the intersection of any two Base Regions).
Therefore, exactly instances of must be placed in .
Since no is placed in ,
effectively covers the cells in where is placed.
Therefore, at least instances of are placed in .
By Sudoku rules, at most instances of can exist in the regions of .
So exactly instances of are placed in .
Therefore, the cells in where is placed cannot be in (i.e., cannot be in the intersection of any two Cover Regions), otherwise the count of in would be less than .
So in can be eliminated.
Also, cannot be placed in , otherwise the counts of placed in both sets cannot be equal.
So in can be eliminated.
Combining these,
in can be eliminated.
Case 2 : Assume is placed at least once in .
Then in all cells of can be eliminated.
Combining both cases:
If , then Case 2 is impossible, so only Case 1 is possible. Thus, in can be eliminated.
If ,
If a cell belongs to both and , then in this cell can be eliminated regardless of which case is true.
That is, in can be eliminated.