Indeed, maybe I should emphasize this distinction since it might not be obvious to everyone. What Martin guessed and I confirmed was the implication
IF the position stays the same after rotating it 90 degrees THEN the board is green.
If it were also true that
IF the board is green THEN the position stays the same after rotating it 90 degrees.
this would mean that the rule is āthe position stays the same after rotating it 90 degreesā. But since the above statement is not true (as illustrated by the above counterexample, a position which is green but doesnāt stay the same after rotating), this is not the rule.
Another way of looking at it is that Martin has found a subset of the green boards, but not all green boards.
Rotationally invariant boards are a strict subset.
However, rotational symmetry is not required.
And any mirror symmetry is not required either. Here is one that is toroidally one step to the right from a rotationally invariant board.
Also, I couldnāt resist checking the website source code. It looks like everything is computed client-side, but a reasonable amount of obfuscation was employed to make reverse-engineering the rule non-trivial.
Conjecture: If no two stones lie on a straight line drawn on the grid, then the board is green.
Edit: In other words, if we assume a given coordinate system, and two stones have always different coordinates in both directions, then the board is green.
Indeed itās computed client-side, and I just put the code through https://obfuscator.io/. For this friendly game it doesnāt matter too much if itās possible to cheat with some effort (I just wanted to make it less tempting to cheat), but Iām guessing it would actually be very hard to learn something about the rule from the obfuscated code?
Edit: @RubyMineshaft tipped me off that the unobfuscated file was still accessible, hopefully Iāve fixed that now.
Iāve played around a lot, and I believe the rule probably looks at each row and column and checks some condition. If you donāt mind Iāll test another conjecture and then let other people play, I donāt want to hog all the fun to myself ^^
Conjecture: Swapping two rows or swapping two columns (along with all stones) does not change the color of the Koan.
Interesting. I could still imagine that the rule looks at all rows and columns and checks some condition. However perhaps the order in which the stones occur on the respective row / column is crucial. In the counter example, the order of stones in the third column changed.
If you count the number of stones in different columns and the number of stones in rows, theyāre the same multiset if the board is green. That is for example in the following images, in the green the number of stones in rows is {2,1} and the number in columns is {1 2}, same set in this case. In the red itās {1, 2, 1} for a column and {2,2} for rows. (In multisets you can repeat elements)
I was thinking for mainly cases with only black stones, but maybe it needs to hold for both colours of stones treated separately or something.
It probably wouldāve taken me a lot more messing around to find it!
[Thereās a bunch of green diagrams it was seeming to work for though I think as well if the board is symmetric under rotation by 90 degrees, then that turns rows into columns right? I think it would hold for those cases]
I think trying to find the rule in the case where there are only black stones on the board is a good starting point. For many of the previous rules, it was often the case that boards with only black stones are red, or something like that. But for this one you have already seen both red and green boards using only black stones, so there is some pattern to be found there.
@le_4TC Do you think the rule with multisets above is true as a subcase, as in is there a red board where the multisets are the same in rows and columns (for only black stones)?
I can tell it couldnāt be that simple with both colours together
I also wonder again with that rule would it be green as long as the black stones and white stones werenāt in the same rows/columns and their multisets worked as mentioned.