X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmovepick.cpp;h=26627474536f37bd6e8f859ceb7a2cd909ef7dcd;hb=94dcac1feeb142a56ed2ebddb96ef672460f1d49;hp=fdf4b8d1f9181ec3d7f74a530d0c6145b85aff86;hpb=70b7404a63b74a57d4e1d0b9192b00837e9a1af8;p=stockfish diff --git a/src/movepick.cpp b/src/movepick.cpp index fdf4b8d1..26627474 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -86,10 +86,7 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, } else ttMoves[1].move = killers[0].move = killers[1].move = MOVE_NONE; - Color us = pos.side_to_move(); - - dc = p.discovered_check_candidates(us); - pinned = p.pinned_pieces(us); + pinned = p.pinned_pieces(pos.side_to_move()); if (p.is_check()) phasePtr = EvasionsPhaseTable; @@ -144,7 +141,7 @@ void MovePicker::go_next_phase() { case PH_EVASIONS: assert(pos.is_check()); - lastMove = generate_evasions(pos, moves, pinned); + lastMove = generate_evasions(pos, moves); score_evasions(); return; @@ -155,7 +152,7 @@ void MovePicker::go_next_phase() { case PH_QCHECKS: // Perhaps we should order moves move here? FIXME - lastMove = generate_non_capture_checks(pos, moves, dc); + lastMove = generate_non_capture_checks(pos, moves); return; case PH_STOP: @@ -318,11 +315,16 @@ Move MovePicker::get_next_move() { return move; break; - case PH_EVASIONS: case PH_BAD_CAPTURES: move = pick_best(curMove++, lastMove).move; return move; + case PH_EVASIONS: + move = pick_best(curMove++, lastMove).move; + if (pos.pl_move_is_legal(move, pinned)) + return move; + break; + case PH_QCAPTURES: move = pick_best(curMove++, lastMove).move; if ( move != ttMoves[0].move