From: Marco Costalba Date: Tue, 24 Mar 2009 09:40:22 +0000 (+0100) Subject: Let zobrist keys to be compatible with Glaurung 1 X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=d3f99aea6b6a7653c2d60ac94e600b1b2f5800e1;hp=0e835bd33496ef7ee467de6fd34c544191e4bab0 Let zobrist keys to be compatible with Glaurung 1 Some changes to the zobrist keys, to make them identical to those used by Glaurung 1. The only purpose is to make it possible for both programs to use the same opening book. Merged from Glaurung current development snapshot. Signed-off-by: Marco Costalba --- diff --git a/src/position.cpp b/src/position.cpp index 36db8d2b..591d48fb 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1960,26 +1960,26 @@ bool Position::has_mate_threat(Color c) { void Position::init_zobrist() { - for (int i = 0; i < 2; i++) - for (int j = 0; j < 8; j++) - for (int k = 0; k < 64; k++) - zobrist[i][j][k] = Key(genrand_int64()); + for(Piece p = WP; p <= BK; p++) + for(Square s = SQ_A1; s <= SQ_H8; s++) + zobrist[color_of_piece(p)][type_of_piece(p)][s] = genrand_int64(); - for (int i = 0; i < 64; i++) - zobEp[i] = Key(genrand_int64()); + zobEp[0] = 0ULL; + for(int i = 1; i < 64; i++) + zobEp[i] = genrand_int64(); - for (int i = 0; i < 16; i++) - zobCastle[i] = genrand_int64(); + for(int i = 15; i >= 0; i--) + zobCastle[(i&8) | (i&1) | ((i&2) << 1) | ((i&4) >> 1)] = genrand_int64(); zobSideToMove = genrand_int64(); for (int i = 0; i < 2; i++) for (int j = 0; j < 8; j++) for (int k = 0; k < 16; k++) - zobMaterial[i][j][k] = (k > 0)? Key(genrand_int64()) : Key(0LL); + zobMaterial[i][j][k] = (k > 0)? genrand_int64() : 0LL; for (int i = 0; i < 16; i++) - zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = Key(0ULL); + zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = 0ULL; }