X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=72681e8d694e68d4c2f709dccf9a54b560aafa06;hp=8f38493027b07e9f8c273ae95d73f046ea8026b3;hb=d91079d4b02b410702dda082d5c489847f067a35;hpb=a08a21d5a0b5aafcdb340364bf73b13d852349a0 diff --git a/src/position.cpp b/src/position.cpp index 8f384930..72681e8d 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1080,13 +1080,18 @@ int Position::see(Move m) const { // Locate and remove the next least valuable attacker captured = min_attacker(byTypeBB, to, stmAttackers, occupied, attackers); - stm = ~stm; - stmAttackers = attackers & pieces(stm); // Stop before processing a king capture - if (captured == KING && stmAttackers) + if (captured == KING) + { + if (stmAttackers == attackers) + ++slIndex; + break; + } + stm = ~stm; + stmAttackers = attackers & pieces(stm); ++slIndex; } while (stmAttackers); @@ -1171,7 +1176,7 @@ Key Position::compute_material_key() const { Key k = 0; for (Color c = WHITE; c <= BLACK; ++c) - for (PieceType pt = PAWN; pt <= QUEEN; ++pt) + for (PieceType pt = PAWN; pt <= KING; ++pt) for (int cnt = 0; cnt < pieceCount[c][pt]; ++cnt) k ^= Zobrist::psq[c][pt][cnt];