> 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/
