Havard wrote:oh, I love this discussion! Can I join?
Welcome on board!
Very in depth view...
I also had a strong disliking about forcing chains before I encountered some of the most diabolical puzzles which cannot be solved otherwise... I guess one way to distinguish good and bad chains are the length... Those with 8-10 cells or more are definitely touching on trial & error...
Havard wrote:I would argue that an making a forcing chain out of a XY-wing is to degenerate the pattern, and will only ever account for 1 of the XY-wings 5 possible eliminations. (you would have to write 5 forcing chains for what the pattern XY-wing would do in one swoop)
Strictly speaking, XY-wing is just a special application of the "Almost Locked Set" technique... So I guess I wasn't technically correct when I said an XY-wing is the same as a forcing chain of length 4 (although all XY-wings could be rewritten as forcing chains like ronk has demonstrated)...
I have a peculiar definition about "patterns" which I don't expect many would agree... To me, there are 4 different classes of techniques:
Class 1:
One number, one unitThis focuses on the appearance of one particular number (out of 9) on each of the 27 constraints (9 rows, 9 columns, 9 boxes) and 81 cells.
Examples:
hidden singles,
naked singlesClass 2:
Multiple numbers, one unitHere we inspect the behaviour of all 9 numbers on each of the 27 constraints... Basically, from the stand point of a program, it just scan all 27 constraints one by one and look for possible patterns.
Examples:
hidden subsets,
naked subsetsClass 3:
One number, multiple unitsHere we look at how a certain number is distributed (as candidates) on the whole grid, and see if some candidates could be eliminated. As a program, it just filter in a certain number and analyse the shape of the possible cells, with the other 8 numbers totally ignored.
Examples:
locked candidates,
x-wings (and bigger fishes),
finned fishes,
turbot fish/strong links,
coloring/multi-coloringClass 4:
Multiple numbers, multiple unitsThese are the hardest to spot (both for players and programs)... You have to look through all possible units and the distributions of all candidates to work out any deduction/elimination...
Examples:
xy-wings (and bigger ALSs),
URs (and unique loops),
remote pairs,
BUGs,
forcing chains...
To me, techniques in class 1 to 3 are "pattern-based", the class 4 ones are not... Which is why I regard xy-wings as (almost) equivalent to forcing chains...