X-Cycles

X-Cycles are chains of alternating strong and weak links for a single digit. They extend Simple Colouring by incorporating weak links, enabling more powerful elimination patterns.

Note: This technique uses chain colouring to display candidates. Square (▢) and Diamond (◇) shapes represent the two colour partitions.

Link Types

Strong Link (Conjugate Pair)

Two cells in a unit where the digit can only appear in those two positions.

Weak Link

Two cells in the same unit with the digit as a candidate.

Cycle Types

X-Cycles come in three forms, each with different elimination rules:

1. Continuous Loop (Nice Loop)

A closed chain where links strictly alternate between strong and weak throughout.

A ══ B ── C ══ D ── A (strong → weak → strong → weak)

Elimination Rule: Any candidate that "sees" (shares a unit with) two cells connected by a weak link can be eliminated.

2. Discontinuous Loop

A closed chain where one junction has two links of the same type (breaking the alternation).

Two Weak Links at Junction:

A ── B ══ C ── A (weak → strong → weak)

The junction (A) has two weak links. Rule: A MUST contain the digit.

Two Strong Links at Junction:

A ══ B ── C ══ A (strong → weak → strong)

The junction (A) has two strong links. Rule: A CANNOT contain the digit (eliminate it).

3. X-Chain (Open Chain)

A chain that doesn't form a loop — it has two endpoints.

A ══ B ── C ══ D (endpoints: A and D)

Rule: If both endpoints are on strong links, eliminate the digit from any cell that sees BOTH endpoints.

How to Read X-Cycles

Following the chain:

  1. Start at any cell with the digit as candidate
  2. Follow strong links (if one is OFF → other is ON)
  3. Then weak links (if one is ON → other is OFF)
  4. Alternate between strong and weak
  5. Return to start (loop) or reach a dead end (chain)

The alternating pattern creates logical implications that lead to eliminations.

Example: Continuous Loop (Rule 1)

This example demonstrates a Continuous Loop on digit 8. The chain forms a perfect cycle with alternating strong and weak links, eliminating candidates from cells that see both sides of a weak link.

Pattern Analysis:

puzzle: S9B82020401124I0607BA82064648074K0401BA0743470906044I024M02040605090103080701030504080702090608070906020301050404434548120907064K03054407010609044406090744044K4I0301
mode: guided
technique: X-Cycles
initial:
  layers:
    hints: true
steps:
  - text: >
      X-Cycles extend Simple Colouring by adding weak links between cells. Look for digit 8 — it has both strong links (conjugate pairs) and weak links across the grid.
    hint: subtle
    technique: XC

  - text: >
      Enable the chain display to see links for digit 8. Solid lines show strong links (conjugate pairs), dashed lines show weak links.
    hint: subtle
    technique: XC
    state:
      graph:
        type: singleDigitChain
        digits: [8]

  - text: >
      Start building the chain at R3C2 and R7C2. These form a conjugate pair in column 2 — a strong link.
    hint: subtle
    technique: XC
    state:
      selection:
        cells: [R3C2, R7C2]
      graph:
        type: singleDigitChain
        digits: [8]

  - text: >
      From R7C2, there's a weak link to R8C3 (same box 7). Then R8C3 and R8C9 form a conjugate pair in row 8 — another strong link.
    hint: subtle
    technique: XC
    state:
      selection:
        cells: [R3C2, R7C2, R8C3, R8C9]
      graph:
        type: singleDigitChain
        digits: [8]

  - text: >
      Continue: R8C9 has a weak link to R9C7 (box 9). Then R9C7 and R3C7 form a conjugate pair in column 7 — strong link.
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R3C2, R3C7, R7C2, R8C3, R8C9, R9C7]
      graph:
        type: singleDigitChain
        digits: [8]

  - text: >
      Finally, R3C7 connects back to R3C2 via a weak link (row 3). The loop is complete: strong → weak → strong → weak → strong → weak → back to start.
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R3C2, R3C7, R7C2, R8C3, R8C9, R9C7]

  - text: >
      Rule 1 applies: eliminate 8 from any cell that sees BOTH endpoints of a weak link. R3C3 sees R3C2 (row 3) and R8C3 (column 3). Eliminate R3C3~8.
    hint: detailed
    technique: XC
    state:
      selection:
        cells: [R3C3]

  - text: >
      Similarly, R3C9 sees R3C7 and R8C9. R7C3 sees R7C2 and R8C3. R7C9 sees R8C9 and R9C7 (though indirectly). All four cells lose candidate 8.
    hint: detailed
    technique: XC
    state:
      selection:
        cells: [R3C3, R3C9, R7C3, R7C9]
settings:
  showCandidates: true
  showControls: true
  showDescription: true
  coordinateFormat: rncn
  navigation: numbered

The continuous loop creates a "squeeze" effect: cells caught between adjacent weak links are eliminated because one end or the other must be true.

Example: Strong Junction (Rule 2)

A Discontinuous Loop with Strong Junction has two consecutive strong links meeting at one cell. This forces the junction cell to contain the digit.

Pattern Analysis:

puzzle: S9B0H7N04050C078J1H0L9E0B03060A0D9E080E062B0E0I080B2B0C047Y1Q8K018Q0E0H077O057U0L077U080C0L069F08AB0B8I030D0E7N023E370H050I1F1N037U058I0C0G01028Q0H7R7Q0H040B06057N0G
mode: guided
technique: X-Cycles
initial:
  layers:
    hints: true
steps:
  - text: >
      Rule 2 applies to discontinuous loops where two STRONG links meet at one cell. Look for digit 1 — it has conjugate pairs that form a cycle with a strong-strong junction.
    hint: subtle
    technique: XC

  - text: >
      Enable the chain display to see links for digit 1. Notice that R9C1 is connected to two different strong links.
    hint: subtle
    technique: XC
    state:
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Trace the loop: R9C1 ══ R7C3 (strong in box 7), then R7C3 ── R5C3 (weak in column 3).
    hint: subtle
    technique: XC
    state:
      selection:
        cells: [R9C1, R7C3, R5C3]
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Continue: R5C3 ══ R5C8 (strong in row 5), then R5C8 ── R9C8 (weak in column 8).
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R9C1, R7C3, R5C3, R5C8, R9C8]
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Finally, R9C8 ══ R9C1 (strong in row 9). But wait — R9C1 already has a strong link to R7C3! Two strong links meet at R9C1.
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R9C1, R7C3, R5C3, R5C8, R9C8]

  - text: >
      With a strong junction, the colouring creates a CONFLICT at R9C1 — it would need to be both colours. Rule 2 resolves this: R9C1 MUST be 1.
    hint: detailed
    technique: XC
    state:
      selection:
        cells: [R9C1]
settings:
  showCandidates: true
  showControls: true
  showDescription: true
  coordinateFormat: rncn
  navigation: numbered

A strong junction means two "if-false-then-true" implications converge on one cell — it must be true.

Example: Weak Junction (Rule 3)

A Discontinuous Loop with Weak Junction has two consecutive weak links meeting at one cell. This forces the junction cell to NOT contain the digit.

Pattern Analysis:

puzzle: S9B4J0G060212B604BMBB4I09040A120G4O0648020N4N040FB6BNBM07BM0F4K03070ABOBWBG0704460E090B460106830P150F0804880G7S030L0I0G0T06454C050F080L0I0T0E07030T0D0E070H0L03067O7P
mode: guided
technique: X-Cycles
initial:
  layers:
    hints: true
steps:
  - text: >
      Rule 3 applies to discontinuous loops where two WEAK links meet at one cell. Look for digit 1 — it forms a cycle with a weak-weak junction.
    hint: subtle
    technique: XC

  - text: >
      Enable the chain display to see links for digit 1. Notice that R3C3 is connected to weak links on two sides.
    hint: subtle
    technique: XC
    state:
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Trace the loop: R3C3 ── R3C7 (weak in row 3), then R3C7 ══ R7C7 (strong in column 7).
    hint: subtle
    technique: XC
    state:
      selection:
        cells: [R3C3, R3C7, R7C7]
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Continue: R7C7 ── R7C2 (weak in row 7), then R7C2 ══ R8C3 (strong in box 7).
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R3C3, R3C7, R7C7, R7C2, R8C3]
      graph:
        type: singleDigitChain
        digits: [1]

  - text: >
      Finally, R8C3 ── R3C3 (weak in column 3). But R3C3 already has a weak link to R3C7! Two weak links meet at R3C3.
    hint: obvious
    technique: XC
    state:
      selection:
        cells: [R3C3, R3C7, R7C7, R7C2, R8C3]

  - text: >
      With a weak junction, the colouring creates a CONFLICT at R3C3 — it would need to be both colours. Rule 3 resolves this: R3C3 CANNOT be 1.
    hint: detailed
    technique: XC
    state:
      selection:
        cells: [R3C3]
settings:
  showCandidates: true
  showControls: true
  showDescription: true
  coordinateFormat: rncn
  navigation: numbered

A weak junction means two "if-true-then-false" implications converge on one cell — it must be false.

Complexity

X-Cycles are expert-level because:

Relationship to Other Techniques

Technique Links Used Pattern
Simple Colouring Strong only Two-colour chains
X-Cycles Strong + Weak Alternating chains/loops
3D Medusa Strong + Bi-value Multi-digit chains

X-Cycles sits between Simple Colouring (strong links only) and 3D Medusa (multiple digits).

Tips

  1. Start with Simple Colouring — If that doesn't work, try X-Cycles
  2. Look for conjugate pairs — These are your strong links
  3. Add weak links carefully — They must alternate with strong links
  4. Identify the cycle type — Different rules apply to each
  5. Use the chain visualiser — The app can show strong and weak links

Visual Indicators

In Lazy Sudoku's graph display:

Toggle between modes to see different chain structures.

More Puzzles

Related Techniques