X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbook.cpp;h=da45b32484c47abf8142ef5c537a8a417a28fcb0;hp=caf2b0663ec76987720231e29360c6d434238d27;hb=f99cb3dc27719021e126690b7fd5aa5f43663ed8;hpb=d3608c4e79a29110f4c4a369d7207c6dd8e01f34 diff --git a/src/book.cpp b/src/book.cpp index caf2b066..da45b324 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -25,7 +25,6 @@ #include #include -#include #include "book.h" #include "misc.h" @@ -50,7 +49,7 @@ namespace { Key PolyGlotRandoms[781]; struct { Key psq[12][64]; // [piece][square] - Key castle[4]; // [castle right] + Key castling[4]; // [castling flag] Key enpassant[8]; // [file] Key turn; } Zobrist; @@ -333,10 +332,10 @@ namespace { key ^= PG.Zobrist.psq[2 * (type_of(p) - 1) + (color_of(p) == WHITE)][s]; } - b = pos.can_castle(ALL_CASTLES); + b = pos.can_castle(ANY_CASTLING); while (b) - key ^= PG.Zobrist.castle[pop_lsb(&b)]; + key ^= PG.Zobrist.castling[pop_lsb(&b)]; if (pos.ep_square() != SQ_NONE) key ^= PG.Zobrist.enpassant[file_of(pos.ep_square())]; @@ -361,7 +360,7 @@ PolyglotBook::~PolyglotBook() { if (is_open()) close(); } template PolyglotBook& PolyglotBook::operator>>(T& n) { n = 0; - for (size_t i = 0; i < sizeof(T); i++) + for (size_t i = 0; i < sizeof(T); ++i) n = T((n << 8) + ifstream::get()); return *this; @@ -413,7 +412,7 @@ Move PolyglotBook::probe(const Position& pos, const string& fName, bool pickBest // Choose book move according to its score. If a move has a very // high score it has higher probability to be choosen than a move // with lower score. Note that first entry is always chosen. - if ( (sum && rkiss.rand() % sum < e.count) + if ( (!pickBest && sum && rkiss.rand() % sum < e.count) || (pickBest && e.count == best)) move = Move(e.move); }