Replies: 1 comment
|
I think your reasoning is correct. This branch is unreachable under the current pattern definitions. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Could someone clarify why
Board::checkForbiddenPoint()accepts this condition while validating a three?The relevant code is:
This code is reached only when the original candidate point has:
During lookup-table generation,
F3andF3Sare defined through moves that produceF4:Therefore, the continuation of an
F3/F3Sdirection should be a move that createsF4, not a move that directly createsF5.There also seems to be a geometric contradiction.
After the original move
Xis temporarily placed, the function scans fromXthrough contiguous black stones and tests the first empty pointC:Suppose playing
CproducesF5in this direction.There are two possibilities.
1. The exact five includes
XFor example:
Playing
Cgives:But before
Cis played, the move atXhas already created a four withCas a five-completing point:That means the original directional pattern at
Xshould have been at leastB4, orF4if another completion point exists. It should not have beenF3orF3S.2. The exact five does not include
XSuppose
Ccompletes five using stones on the side away fromX:Since every point between
XandCis already black, playingCconnects the four stones on the far side toXand the intervening black stones.The resulting contiguous line contains at least:
and possibly more.
That should be classified as
OL, notF5.So in either case,
c.pattern(BLACK, dir) == F5appears incompatible with the outer requirement that the original direction atXwasF3orF3S.Is this branch reachable under the current pattern definitions?
If it is reachable, could someone provide a concrete board position?
All reactions