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.
- If one cell is FALSE, the other must be TRUE
- Notation: A ═══ B
Weak Link
Two cells in the same unit with the digit as a candidate.
- If one cell is TRUE, the other must be FALSE
- Notation: A ─ ─ ─ B
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:
- Start at any cell with the digit as candidate
- Follow strong links (if one is OFF → other is ON)
- Then weak links (if one is ON → other is OFF)
- Alternate between strong and weak
- 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:
- Digit: 8
- Chain cells: R3C2, R3C7, R7C2, R8C3, R8C9, R9C7
- Links: 6 alternating links forming a closed loop
- Eliminations: R3C3
8, R3C98, R7C38, R7C98
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:
- Digit: 1
- Chain cells: R9C1, R7C3, R5C3, R5C8, R9C8
- Junction: R9C1 (two strong links meet here)
- Result: R9C1 = 1 (place the digit)
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:
- Digit: 1
- Chain cells: R3C3, R3C7, R7C7, R7C2, R8C3
- Junction: R3C3 (two weak links meet here)
- Elimination: R3C3~1
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:
- Requires understanding both strong and weak links
- Chains can be long and span the entire grid
- Multiple cycle types with different rules
- Must correctly identify the cycle type before eliminating
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
- Start with Simple Colouring — If that doesn't work, try X-Cycles
- Look for conjugate pairs — These are your strong links
- Add weak links carefully — They must alternate with strong links
- Identify the cycle type — Different rules apply to each
- Use the chain visualiser — The app can show strong and weak links
Visual Indicators
In Lazy Sudoku's graph display:
- Strong chains show only strong links (Simple Colouring)
- Weak chains show both strong and weak links (X-Cycles)
Toggle between modes to see different chain structures.
More Puzzles
Related Techniques
- Simple Colouring — Strong links only
- X-Wing — Simpler pattern using conjugate pairs
- 3D Medusa — Multi-digit extension