I found them by a very different route by considering polygons, where the sides are units (r/c/b) and the vertices are the cells that lie at the intersections between adjacent sides. For example, if we have a polygon with an even number of sides, and alternate sides have a particular candidate only at the vertices, then that candidate can occur only at the vertices of the whole polygon. Therefore, in the other alternate sides it can be eliminated elsewhere than the vertices. The other x-cycles can be re-phrased appropriately too.

The result of this analysis is that we can extend the cycles to consider sets of cells shared by adjacent units in the x-cycle, rather than single cells.

Here is an example:

- Code: Select all
`.5. .21 79.`

27. ... .51

13. .57 .26

.67 1.. 582

5.2 87. 16.

.81 265 9.7

..5 .12 .7.

72. 5.. .19

.1. 796 2.5

with candidate list

+----------------+----------------+----------------+

| 468 5 468 | 346 2 1 | 7 9 348 |

| 2 7 69 | 69 348 348 | 34 5 1 |

| 1 3 489 | 49 5 7 | 48 2 6 |

+----------------+----------------+----------------+

| 349 6 7 | 1 34 349 | 5 8 2 |

| 5 49 2 | 8 7 349 | 1 6 34 |

| 34 8 1 | 2 6 5 | 9 34 7 |

+----------------+----------------+----------------+

| 469 49 5 | 34 1 2 | 3468 7 348 |

| 7 2 346 | 5 348 348 | 346 1 9 |

| 48 1 348 | 7 9 6 | 2 34 5 |

+----------------+----------------+----------------+

Look at candidate 4, and treat {r9c1,r9c3} as the intersection between r9 and b7 see what you can find.

Cycles exist for candidate 3 as well.

Pep.