void Zobrist::init() { PRNG prng; // turn turn = prng.next64(); // epFile for (int i=0; i<8; i++) epFile[i] = prng.next64(); // piece memset( piece, 0, sizeof(piece) ); for (Color c=ctWhite; c<=ctBlack; c++) for (Piece p=ptPawn; p<=ptKing; p++) for (Square sq = 0; sq < 64; sq++ ) piece[c][p][sq] = prng.next64(); // castling cast[ ctWhite ][0] = cast[ ctBlack ][0] = 0; for (Color c=ctWhite; c<=ctBlack; c++) for (uint i=1; i<=0x88; i++) cast[c][i] = prng.next64(); }