X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=ab8f2473af84d40126dc232b096b551d11157dbb;hp=8954834ad546bb8c4902b9c3a45be485dafa707f;hb=2643f1552fca823a2922c124b49f1fa04aa5d970;hpb=bf395c6be180528cb3fc90d8b78dd5dd6f27adf6 diff --git a/src/position.cpp b/src/position.cpp index 8954834a..ab8f2473 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -51,6 +51,7 @@ Key Position::zobEp[64]; Key Position::zobCastle[16]; Key Position::zobMaterial[2][8][16]; Key Position::zobSideToMove; +Key Position::zobExclusion; Score Position::PieceSquareTable[16][64]; @@ -670,7 +671,7 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI Key pawnKey, materialKey; int castleRights, rule50, pliesFromNull; Square epSquare; - Value value; + Score value; Value npMaterial[2]; }; @@ -968,7 +969,7 @@ void Position::do_castle_move(Move m) { set_bit(&(byColorBB[us]), rto); set_bit(&(byTypeBB[ROOK]), rto); set_bit(&(byTypeBB[0]), rto); // HACK: byTypeBB[0] == occupied squares - + // Update board array Piece king = piece_of_color_and_type(us, KING); Piece rook = piece_of_color_and_type(us, ROOK); @@ -1153,7 +1154,7 @@ void Position::undo_castle_move(Move m) { assert(piece_on(kto) == piece_of_color_and_type(us, KING)); assert(piece_on(rto) == piece_of_color_and_type(us, ROOK)); - + // Remove pieces from destination squares: clear_bit(&(byColorBB[us]), kto); clear_bit(&(byTypeBB[KING]), kto); @@ -1161,7 +1162,7 @@ void Position::undo_castle_move(Move m) { clear_bit(&(byColorBB[us]), rto); clear_bit(&(byTypeBB[ROOK]), rto); clear_bit(&(byTypeBB[0]), rto); // HACK: byTypeBB[0] == occupied squares - + // Put pieces on source squares: set_bit(&(byColorBB[us]), kfrom); set_bit(&(byTypeBB[KING]), kfrom); @@ -1736,6 +1737,8 @@ void Position::init_zobrist() { for (int i = 0; i < 16; i++) zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = Key(0ULL); + + zobExclusion = genrand_int64(); }