X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=88eb22eaa338d910b08647abbf4e95b0f3841de3;hp=1c9663000e011af6df038d459a1bdb96337a25fa;hb=c19ea4b0005c312aceb82d31ea17c2e1ff0729d2;hpb=9b43fd79372946128924ab3d42c64559e95d29d6 diff --git a/src/position.cpp b/src/position.cpp index 1c966300..88eb22ea 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -361,8 +361,8 @@ Bitboard Position::hidden_checkers() const { Square ksq = king_square(FindPinned ? sideToMove : flip(sideToMove)); // Pinners are sliders, that give check when candidate pinned is removed - pinners &= (pieces(ROOK, QUEEN) & RookPseudoAttacks[ksq]) - | (pieces(BISHOP, QUEEN) & BishopPseudoAttacks[ksq]); + pinners &= (pieces(ROOK, QUEEN) & PseudoAttacks[ROOK][ksq]) + | (pieces(BISHOP, QUEEN) & PseudoAttacks[BISHOP][ksq]); while (pinners) { @@ -641,7 +641,7 @@ bool Position::move_gives_check(Move m, const CheckInfo& ci) const { assert(is_ok(m)); assert(ci.dcCandidates == discovered_check_candidates()); - assert(color_of(piece_on(from_sq(m))) == side_to_move()); + assert(color_of(piece_moved(m)) == side_to_move()); Square from = from_sq(m); Square to = to_sq(m); @@ -1499,7 +1499,7 @@ bool Position::is_draw() const { return true; // Draw by the 50 moves rule? - if (st->rule50 > 99 && !is_mate()) + if (st->rule50 > 99 && (!in_check() || MoveList(*this).size())) return true; // Draw by repetition? @@ -1531,15 +1531,6 @@ template bool Position::is_draw() const; template bool Position::is_draw() const; -/// Position::is_mate() returns true or false depending on whether the -/// side to move is checkmated. - -bool Position::is_mate() const { - - return in_check() && !MoveList(*this).size(); -} - - /// Position::init() is a static member function which initializes at startup /// the various arrays used to compute hash keys and the piece square tables. /// The latter is a two-step operation: First, the white halves of the tables