Probably there is a much shorter way (probably missed some key idea).
Calling the correct digits: in r6c1=X, in r7c1=Y, in r9c1=Z, we must have
- Code: Select all
.-----------------------------------------------------------.
| 6 YZ8 YZ9 | YZ 4 X | 7 128 1289 |
| 7 YZ8 X | YZ6 2 9 | 4 168 168 |
| 4 2 19 | 1678 18 67 | 169 5 3 |
|-------------------+-------------------+-------------------|
| 2 YZ7 YZ7 | XYZ678 XZ8-Y 4 | XYZ6 9 156 |
| 9 YZ47 YZ47 | XYZ67 *XYZ 67 | 8 1236 1256 |
| X 6 8 | 2 9 *YZ | YZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 | XZ 6 2 | XZ 78 48 |
| 8 X 2 | 4 7 YZ | YZ69 136 1569 |
| Z 47 6 | 9 *XY 8 | 2 137 145 |
'-----------------------------------------------------------'
1. XYZ-Wing r9c5,r5c5,r6c6 => -Y r4c5
- Code: Select all
.-----------------------------------------------------------.
| 6 YZ8 YZ9 |*YZ 4 X | 7 128 1289 |
| 7 YZ8 X | YZ6 2 9 | 4 168 168 |
| 4 2 19 | 1678 18 67 | 169 5 3 |
|-------------------+-------------------+-------------------|
| 2 YZ7 YZ7 | XZ678-Y XZ8 4 | XYZ6 9 156 |
| 9 YZ47 YZ47 | XZ67-Y XYZ 67 | 8 1236 1256 |
| X 6 8 | 2 9 *YZ | YZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 |*XZ 6 2 | XZ 78 48 |
| 8 X 2 | 4 7 *YZ | YZ69 136 1569 |
| Z 47 6 | 9 XY 8 | 2 137 145 |
'-----------------------------------------------------------'
2. W-Wing(r6c6,r8c6,r7c4,r1c4) => -Y r45c4
- Code: Select all
.-----------------------------------------------------------.
| 6 YZ8 YZ-9 | YZ 4 X | 7 128 1289 |
| 7 YZ8 X | YZ6 2 9 | 4 168 168 |
| 4 2 19 | 1678 18 67 | 6-19 5 3 |
|-------------------+-------------------+-------------------|
| 2 YZ7 YZ7 | XZ678 XZ8 4 | XYZ6 9 156 |
| 9 YZ47 YZ47 | XZ67 XYZ 67 | 8 1236 1256 |
| X 6 8 | 2 9 YZ | YZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 | XZ 6 2 | XZ 78 48 |
| 8 X 2 | 4 7 YZ | YZ69 136 1569 |
| Z 47 6 | 9 XY 8 | 2 137 145 |
'-----------------------------------------------------------'
3. (9=1)r3c3-(1=8)r3c5-(8)r4c5=[XY-Wing(r8c6,r9c5,r4c5)]-(Z=Y)r6c6-(Y=ZX)r67c7-(X)r4c7=[X-Wing(X) r45c45]-(X=ZY6)r172c4-(6=81)r2c89-(18=29)r1c89 (Edit: correction for this step in my
third post)
=> X<>1, -(19) r3c7, -9r1c3 (+6 r3c7)
So, with X<>1, after some singles,
- Code: Select all
.-----------------------------------------------------------.
| 6 8 YZ | YZ 4 X | 7 2 9 |
| 7 YZ X | 6 2 9 | 4 a18 b18 |
| 4 2 9 | 18 18 7 | 6 5 3 |
|-------------------+-------------------+-------------------|
| 2 YZ7 YZ7 | XZ78 XZ8 4 | XYZ 9 6 |
| 9 YZ47 YZ47 | XZ7 XYZ 6 | 8 3-1 2 |
| X 6 8 | 2 9 eYZ |fYZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 | XZ 6 2 | XZ 78 48 |
| 8 X 2 | 4 7 dYZ | 9 6 c15 |
| Z 47 6 | 9 XY 8 | 2 137 145 |
'-----------------------------------------------------------'
4. (1)r2c8=r2c9-r8c9=r8c6-r6c6=r6c7 => -1 r5c8 [+3r5c8, +3 r7c7]
- Code: Select all
.-----------------------------------------------------------.
| 6 8 YZ | YZ 4 X | 7 2 9 |
| 7 YZ X | 6 2 9 | 4 18 18 |
| 4 2 9 | 18 18 7 | 6 5 3 |
|-------------------+-------------------+-------------------|
| 2 YZ7 YZ7 | XZ78 XZ8 4 | XYZ 9 6 |
| 9 YZ47 YZ47 | XZ7 XYZ 6 | 8 3 2 |
| X 6 8 | 2 9 YZ | YZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 | XZ 6 2 | 3 78 48 |
| 8 X 2 | 4 7 YZ | 9 6 15 |
| Z 47 6 | 9 XY 8 | 2 17 145 |
'-----------------------------------------------------------'
From row 7, we have Y<>3. Now, Noticing the places where X is the correct
digit in blocks 1 and 2, we infer (looking at b3) that X=3.
- Code: Select all
.-----------------------------------------------------------.
| 6 8 Z | Y 4 3 | 7 2 9 |
| 7 Y 3 | 6 2 9 | 4 18 18 |
| 4 2 9 | 18 18 7 | 6 5 3 |
|-------------------+-------------------+-------------------|
| 2 Z7 Y7 | X78 Z8 4 | YZ 9 6 |
| 9 Z47 Y47 | X7 YZ 6 | 8 3 2 |
| 3 6 8 | 2 9 YZ | YZ 4 7 |
|-------------------+-------------------+-------------------|
| Y 9 47 | Z 6 2 | 3 78 48 |
| 8 3 2 | 4 7 YZ | 9 6 15 |
| Z 47 6 | 9 3 8 | 2 17 145 |
'-----------------------------------------------------------'
Looking at NP(18)r2c89, we infer that Y<>1, so Y=5.
So, X=3,Y=5 and Z=1, and singles to the end.
Edit: Added the very last part after step 4 that was missing.