The above comparison arises confusion. In second exemplar, eight eliminations may be possible from C8, but not from R8. Why?
number 2 example:
the end point at cells R2C8 and R8C2 in both directions of the chain these cells are either True or False and Both can be true at the same time!
because of this one or the other is true or both are, the elimination cell must see both of them to be eliminated
ie they only both see cell R8C8 that is the only valid elimination.
no other elimination is possible. ->> number 1 is the only correct view.
hope this visual helps:
- Code: Select all
Finned X-wing {max cell count}
. / . | . . . | . x .
. x . | . . . |-x x-x
. / . | . . . | . x .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Finned X-wing {minimal cell count} version 1
. / . | . . . | . / .
. x . | . . . |-x x-x
. / . | . . . | . x .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Finned X-wing {minimal cell count} version
. / . | . . . | . x .
. x . | . . . |-x x-x
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Sashimi - X-wing {max cell count }
. / . | . . . | . x .
. x . | . . . |-x /-x
. / . | . . . | . x .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Sashimi - X-wing {minimum cell count } version 1
. / . | . . . | . x .
. x . | . . . |-x /-x
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Sashimi - X-wing {minimum cell count } version 2
-x /-x| . . . | . x .
. x . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
Skyscraper { 2- minimal Sashimi x-wings combined}
-x /-x | . . . | . x .
. x . | . . . |-x /-x
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. / . | . . . | . / .
. / . | . . . | . / .
----------------------
. / . | . . . | . / .
. x . | . . . | . x .
. / . | . . . | . / .
- Code: Select all
2-String kite
. x . | . . . | . . .
X / / | / / / | / x /
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. / . | . . . | . . .
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. x . | . . . | .-x .
. / . | . . . | . . .
- Code: Select all
Grouped 2-String kite {max}
. x . | . . . | . . .
x / x | / / / | / x /
. x . | . . . | . . .
----------------------
. / . | . . . | . . .
. / . | . . . | . . .
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. x . | . . . | .-x .
. / . | . . . | . . .
- Code: Select all
Grouped 2-String kite {minimal} version 1
. x . | . . . | . . .
x / x | / / / | / x /
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. / . | . . . | . . .
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. x . | . . . | .-x .
. / . | . . . | . . .
- Code: Select all
Grouped 2-String kite {minimal} version 2
. x . | . . . | . . .
x / / | / / / | / x /
. x . | . . . | . . .
----------------------
. / . | . . . | . . .
. / . | . . . | . . .
. / . | . . . | . . .
----------------------
. / . | . . . | . . .
. x . | . . . | .-x .
. / . | . . . | . . .
- Code: Select all
Empty Rectangle {max count on ERI}
/ x / | . . . | . / .
x x x | . . . | . x .
/ x / | . . . | . / .
----------------------
. . . | . . . | . / .
. . . | . . . | . / .
. . . | . . . | . / .
----------------------
. . . | . . . | . / .
.-x . | . . . | . x .
. . . | . . . | . / .
- Code: Select all
Empty Rectangle {minimal count on ERI}
/ x / | . . . | . / .
x / / | . . . | . x .
/ / / | . . . | . / .
----------------------
. . . | . . . | . / .
. . . | . . . | . / .
. . . | . . . | . / .
----------------------
. . . | . . . | . / .
.-x . | . . . | . x .
. . . | . . . | . / .
I personal use a quick search engine that was easily written to cover the above per move type within 20~ lines of code per type
why i suggest looking at building a fish algorithm,
consider that
Each end point can be extended by adding another ERI, Strong link or grouped weak link
repeat !
you can add on up to 27 - {used} sectors to each of these basic named patterns whom are all Fishes in NxN class
named by what sectors they used add adding in a sub category for specific named types.{if you wish}
size 1 - 7 { cyclops, x-wing,sword fish, jelly fish, Squimbag/ starfish , leviathan, whale. }
basic {rows or cols},
Fraken {Box + Row or Col }
mutant {Box + Row + Col }
plus some other rules outlined
Here For NxN fish
personally i opt for my own variation of NxN+K fish with less worrying over endo/exo cells and which cell is finned
seen
hereso if you choose to write 1 code for each type and consider expansion your basically writing an overly specific fish code for case - case
i Tried this my self for ERI's and ended up with a 1k+ line code that still missed cases, when i was discovering new ones as i increased the N size
at most a depth of 2 links per case is feasible quickly with marginal increases in run time: however as you mentioned this has minimal effects on outcome.
if you do want to delve into a fish finder i can help with that to a point i do not use speed up techniques though : a lot of programmers use templating to aid in narrowing down search time.
my current build for
ALL valid cases {with/with out eliminations takes ~4 hours to execute size 1- 7 + 2 finned sectors on digits 1-9
via worst case scenario dry runs. { looking for a 7x7+2 }
size 1-4 runs very quickly, plus a large % of bigger fish "usually" have a complementary lower size fish to match
- Code: Select all
* X * | . . . | . * . / X / | . . . | . / .
X / X | / / / | / X / X *X X | * * * | * X *
* X * | . . . | . * . / X / | . . . | . / .
---------+----------+---------- ---------+----------+----------
. / . | . . . | . * . . * . | . . . | . / .
. / . | . . . | . * . . * . | . . . | . / .
. / . | . . . | . * . . * . | . . . | . / .
---------+----------+---------- ---------+----------+----------
. / . | . . . | . * . . * . | . . . | . / .
. # . | . . . | . ** . . ** . | . . . | . # .
. / . | . . . | . * . . * . | . . . | . / .
Fig 2C: rc\cb Fig 2C inverse: cb\rc
rc\rb transpose rb\rc transpose
turbot fish (2-stringed kite) turbot fish (ER + conjugate link)
sashimi mutant x-wing
the confusion arises as you are assuming all the * cells are eliminated:
when the # cell is missing all the * and ** cells are eliminated.
if the # cell is present only the ** cell is eliminated.
KEY:
X = base candidate, which may be missing
/ = empty cell, a cell that may not have an "X" candidate
# = EndoFin
* = eventual elimination if all fins are false
** = eventual elimination whether or not a fin is true
*X = eventual elimination of base candidate (AutoCannibalistic)
ps if you need an example puzzle that show cases the outlined stuff above
this grid has multiple examples for each type.
.------------------.------------------.----------------.
| 469 5 3 | 49 7 169 | 149 2 8 |
| 4689 2789 289 | 249 1268 15689 | 1459 457 3 |
| 489 2789 1 | 3 28 589 | 459 457 6 |
:------------------+------------------+----------------:
| 1 6 5 | 8 4 2 | 7 3 9 |
| 38 4 7 | 15 9 13 | 58 6 2 |
| 2 389 89 | 56 36 7 | 458 1 45 |
:------------------+------------------+----------------:
| 389 12389 289 | 279 1238 4 | 6 58 157 |
| 5 1289 46 | 279 1268 1689 | 3 48 147 |
| 7 38 46 | 16 5 38 | 2 9 14 |
'------------------'------------------'----------------'