The XY-WING is the shortest forcing chain using all weak links.
The STRONG WING is it's analog using all strong links.
By 'weak link' I mean that at MOST one of the [two connected cells] contains the (link number).
By 'strong link' I mean that EXACTLY one of the [two connected cells] contains the (link number).
Weak links are drawn as single lines, strong links as double lines. The linking numbers are in (paranthesis).
First, an XY-Wing:
- Code: Select all
*-----------------------------------------*
| . . . | . . . | . . . |
| . [14]----(1)---[13] . | . . . |
| . | . | . | . | . . . |
|-----(1)-----+-----(3)-----+-------------|
| . | . | . | . | . . . |
| . [12]----(2)---[23] . | . . . |
| . . . | . . . | . . . |
|-------------+-------------+-------------|
| . . . | . . . | . . . |
| . . . | . . . | . . . |
| . . . | . . . | . . . |
*-----------------------------------------*
If r5c5=2, then r5c2<>2, then r5c2=1, then r2c2<>1
If r5c5=3, then r2c5<>3, then r2c5=1, then r2c2<>1
Therefore, r2c2<>1
Now, a Strong Wing:
- Code: Select all
*-----------------------------------------*
| . . . | . . . | . . . |
| . [145]===(1)===[136] . | . . . |
| . | | . | . | | . | . . . |
|-----(1)-----+-----(3)-----+-------------|
| . | | . | . | | . | . . . |
| . [128]===(2)===[237] . | . . . |
| . . . | . . . | . . . |
|-------------+-------------+-------------|
| . . . | . . . | . . . |
| . . . | . . . | . . . |
| . . . | . . . | . . . |
*-----------------------------------------*
r5c5<>2, then r5c2=2, then r5c2<>1, then r2c2=1
r5c5<>3, then r2c5=3, then r2c5<>1, then r2c2=1
Therefore, r2c2=1
It's interesting that the two similar patterns have opposite conclusions and therefore cannot co-exist. This is impossible pattern:
- Code: Select all
*-----------------------------------------*
| . . . | . . . | . . . |
| . [14]====(1)===[13] . | . . . |
| . | | . | . | | . | . . . |
|-----(1)-----+-----(3)-----+-------------|
| . | | . | . | | . | . . . |
| . [12]====(2)===[23] . | . . . |
| . . . | . . . | . . . |
|-------------+-------------+-------------|
| . . . | . . . | . . . |
| . . . | . . . | . . . |
| . . . | . . . | . . . |
*-----------------------------------------*
If r5c5=2, then r5c2<>2, then r5c2=1, then r2c2<>1
If r5c5<>3, then r2c5=3, then r2c5<>1, then r2c2=1
This is a contradiction.
If r5c5=3, then r2c5<>3, then r2c5=1, then r2c2<>1
If r5c5<>2, then r5c2=2, then r5c2<>1, then r2c2=1
Also a contradiction.
This leads to this slightly interesting pattern:
- Code: Select all
*-----------------------------------------*
| . . . | . . . | . . . |
| . [14]====(1)===[13] . | . . . |
| . | | . | . | | . | . . . |
|-----(1)-----+-----(3)-----+-------------|
| . | | . | . | | . | . . . |
| . [12]====(2)===[235] . | . . . |
| . . . | . . . | . . . |
|-------------+-------------+-------------|
| . . . | . . . | . . . |
| . . . | . . . | . . . |
| . . . | . . . | . . . |
*-----------------------------------------*
If r5c5<>5, the puzzle has no solution, therefore, r5c5=5.