Sudoku technique · Candidate elimination

Swordfish

A Swordfish appears when one digit has two or three candidate cells in each of three base rows or columns and the union of those positions spans exactly three crossing columns or rows.

Topic role
Candidate-elimination proof
Engine rank
Rank 10
Play a Sudoku puzzleView all techniques

Learning order

Topic relationships

These links express the same learning and proof relationships used throughout the library.

Verified example

Work through the example

Swordfish · Verified example
R1C1: empty
R1C2: empty
R1C3: empty
R1C4: given 9
R1C5: given 7
R1C6: given 5
R1C7: given 2
R1C8: given 3
R1C9: given 8
R2C1: given 9
R2C2: given 8
R2C3: given 5
R2C4: empty
R2C5: given 2
R2C6: empty
R2C7: empty; Base/cover candidate; Before 1, 4, 7
R2C8: given 6
R2C9: empty; Base/cover candidate; Before 4, 7
R3C1: given 2
R3C2: given 7
R3C3: given 3
R3C4: empty
R3C5: empty
R3C6: given 8
R3C7: empty
R3C8: given 5
R3C9: given 9
R4C1: empty
R4C2: empty
R4C3: given 9
R4C4: empty
R4C5: empty
R4C6: given 2
R4C7: empty; candidate deletion 7; Before 3, 5, 6, 7; After 3, 5, 6
R4C8: given 8
R4C9: given 1
R5C1: empty
R5C2: empty
R5C3: empty
R5C4: given 8
R5C5: given 9
R5C6: empty; candidate deletion 7; Before 3, 6, 7; After 3, 6
R5C7: empty; candidate deletion 7; Before 3, 4, 5, 6, 7; After 3, 4, 5, 6
R5C8: empty
R5C9: empty; candidate deletion 7; Before 2, 3, 4, 6, 7; After 2, 3, 4, 6
R6C1: given 8
R6C2: given 2
R6C3: empty
R6C4: given 1
R6C5: given 5
R6C6: empty; Base/cover candidate; Before 3, 6, 7
R6C7: empty; Base/cover candidate; Before 3, 4, 6, 7
R6C8: given 9
R6C9: empty; Base/cover candidate; Before 3, 4, 6, 7
R7C1: given 6
R7C2: given 5
R7C3: given 8
R7C4: empty
R7C5: empty
R7C6: given 4
R7C7: given 9
R7C8: empty
R7C9: empty; candidate deletion 7; Before 2, 3, 7; After 2, 3
R8C1: empty
R8C2: empty
R8C3: given 7
R8C4: empty
R8C5: empty
R8C6: given 9
R8C7: given 8
R8C8: empty
R8C9: given 5
R9C1: empty
R9C2: given 9
R9C3: given 2
R9C4: given 5
R9C5: given 8
R9C6: empty; Base/cover candidate; Before 1, 3, 7
R9C7: empty; Base/cover candidate; Before 3, 6, 7
R9C8: given 4
R9C9: empty; Base/cover candidate; Before 3, 6, 7
  • Base/cover candidate: 7

Pattern cells: R2C7, R2C9, R6C6, R6C7, R6C9, R9C6, R9C7, R9C9. Remove 7 from R4C7; Remove 7 from R5C6; Remove 7 from R5C7; Remove 7 from R5C9; Remove 7 from R7C9.

Pattern cells
R2C7, R2C9, R6C6, R6C7, R6C9, R9C6, R9C7, R9C9
Pattern digits
7
Orientation
Row-based
Base lines
Row 2, Row 6, Row 9
Cover lines
Column 6, Column 7, Column 9

Exact candidate changes

  • Remove 7 from R4C7Before: 3, 5, 6, 7After: 3, 5, 6
  • Remove 7 from R5C6Before: 3, 6, 7After: 3, 6
  • Remove 7 from R5C7Before: 3, 4, 5, 6, 7After: 3, 4, 5, 6
  • Remove 7 from R5C9Before: 2, 3, 4, 6, 7After: 2, 3, 4, 6
  • Remove 7 from R7C9Before: 2, 3, 7After: 2, 3
  1. Choose one digit and record all candidate positions in possible base rows, then repeat with columns if needed.
  2. Find three base lines that each contain two or three positions and whose combined positions use exactly three cover lines.
  3. Reserve the digit for the pattern cells somewhere within those three base and three cover lines.
  4. Remove only that digit from the cover lines outside the three base lines.

Fixed practice

Count positions for one digit by line, keep only lines with two or three positions, and confirm that their union is exactly three crossing lines.

Fixed practice · R1C3
Swordfish · Fixed practice
R1C1: empty; candidate deletion 5; Before 4, 5, 6, 7; After 4, 6, 7
R1C2: given 1
R1C3: empty; Base/cover candidate; Before 5, 6
R1C4: given 9
R1C5: empty
R1C6: empty; Base/cover candidate; Before 4, 5
R1C7: given 2
R1C8: given 3
R1C9: given 8
R2C1: empty; candidate deletion 5; Before 2, 5, 7, 9; After 2, 7, 9
R2C2: given 8
R2C3: empty; Base/cover candidate; Before 5, 9
R2C4: given 3
R2C5: empty
R2C6: empty; Base/cover candidate; Before 1, 5
R2C7: empty; Base/cover candidate; Before 5, 7
R2C8: given 6
R2C9: given 4
R3C1: empty
R3C2: empty
R3C3: given 3
R3C4: given 6
R3C5: empty
R3C6: given 8
R3C7: given 1
R3C8: empty
R3C9: given 9
R4C1: empty; candidate deletion 5; Before 5, 6, 7, 9; After 6, 7, 9
R4C2: empty; candidate deletion 5; Before 5, 6, 7; After 6, 7
R4C3: empty; Base/cover candidate; Before 5, 6, 9
R4C4: given 4
R4C5: given 3
R4C6: given 2
R4C7: empty; Base/cover candidate; Before 5, 7
R4C8: given 8
R4C9: given 1
R5C1: empty
R5C2: given 3
R5C3: given 1
R5C4: given 8
R5C5: empty
R5C6: given 6
R5C7: given 4
R5C8: empty
R5C9: given 2
R6C1: given 8
R6C2: given 2
R6C3: given 4
R6C4: given 1
R6C5: empty
R6C6: given 7
R6C7: given 3
R6C8: empty
R6C9: given 6
R7C1: empty
R7C2: empty
R7C3: given 8
R7C4: given 7
R7C5: empty
R7C6: empty
R7C7: given 9
R7C8: given 2
R7C9: given 3
R8C1: given 3
R8C2: given 4
R8C3: given 7
R8C4: given 2
R8C5: given 6
R8C6: given 9
R8C7: given 8
R8C8: given 1
R8C9: given 5
R9C1: given 1
R9C2: given 9
R9C3: given 2
R9C4: given 5
R9C5: given 8
R9C6: given 3
R9C7: given 6
R9C8: given 4
R9C9: given 7
  • Base/cover candidate: 5

Pattern cells: R1C3, R1C6, R2C3, R2C6, R2C7, R4C3, R4C7. Remove 5 from R1C1; Remove 5 from R2C1; Remove 5 from R4C1; Remove 5 from R4C2.

Pattern cells
R1C3, R1C6, R2C3, R2C6, R2C7, R4C3, R4C7
Pattern digits
5
Orientation
Column-based
Base lines
Column 3, Column 6, Column 7
Cover lines
Row 1, Row 2, Row 4

Exact candidate changes

  • Remove 5 from R1C1Before: 4, 5, 6, 7After: 4, 6, 7
  • Remove 5 from R2C1Before: 2, 5, 7, 9After: 2, 7, 9
  • Remove 5 from R4C1Before: 5, 6, 7, 9After: 6, 7, 9
  • Remove 5 from R4C2Before: 5, 6, 7After: 6, 7

Common mistakes

Common mistakes

Accepting a group that uses four cover lines, or a base line with fewer than two or more than three candidate positions.

Deleting the digit from a pattern cell, from outside the three cover lines, or from a cell on one of the base lines.

Review information

What is verified here

The independent verifier recomputes the chosen digit’s exact positions, the row-based or column-based orientation, all three base and cover lines, and the complete ordered deletion list.

Fixture ID
p3d-swordfish-row-01 / p3d-swordfish-column-01
Engine version
legen-sudoku-engine/1.3.0
Verification status
Independent candidate-elimination verifier passed
Facts reviewed
2026-07-18
Technique terminology and examples are tied to the published engine version. See the review information below for scope and dates.