> if (move[n-1]==move[n-7] && move[n-2]==move[n-8] && move[n-3]==move[n-9] && 
> move[n-4]==move[n-10] && move[n-5]==move[n-11] && move[n-6]==move[n-12])

I think comparing a full-board hashvalue to all previous positions *with the 
same amount of B/W stones* is cheaper.

Your formula is incorrect, IMHO.

represent the 'state' of the three ko's with one bit each

kostate move
-------+----
101    +  W a
001    |  B b
011    |  W c
010    |  B a
110    |  W b
100    |  B c
101    | (previous move was a go violation)


a,b,c are the indices/names of the three ko's.
If the above 6 moves had happened just before this episode
(at moves N-6), the starting position (101) would also have
been a ko-violation, so you are detecting the violation too late.
You want to trigger at the "B c" move, that is the one that violates
the super-ko rule.

HTH,
AvK
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to