X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=259a5bc5b6086ae927c8bc77669e44b303f0dfd4;hp=35764b717207e38b3871f367d4edbe5c400f8fc6;hb=01ee509a5c33e11d7d62d2f325f55720d8be9cfb;hpb=d37dfe9ae41de722eccd50aee39fb5eb59811bc2 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 35764b71..259a5bc5 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -360,7 +360,8 @@ namespace { if (Pt == QUEEN) { // Penalty if any relative pin or discovered attack against the queen - if (pos.slider_blockers(pos.pieces(Them, ROOK, BISHOP), s)) + Bitboard pinners; + if (pos.slider_blockers(pos.pieces(Them, ROOK, BISHOP), s, pinners)) score -= WeakQueen; } } @@ -779,23 +780,22 @@ Value Eval::evaluate(const Position& pos) { assert(!pos.checkers()); + Score mobility[COLOR_NB] = { SCORE_ZERO, SCORE_ZERO }; EvalInfo ei; - Score score, mobility[COLOR_NB] = { SCORE_ZERO, SCORE_ZERO }; - - // Initialize score by reading the incrementally updated scores included in - // the position object (material + piece square tables). Score is computed - // internally from the white point of view. - score = pos.psq_score(); // Probe the material hash table ei.me = Material::probe(pos); - score += ei.me->imbalance(); // If we have a specialized evaluation function for the current material // configuration, call it and return. if (ei.me->specialized_eval_exists()) return ei.me->evaluate(pos); + // Initialize score by reading the incrementally updated scores included in + // the position object (material + piece square tables) and the material + // imbalance. Score is computed internally from the white point of view. + Score score = pos.psq_score() + ei.me->imbalance(); + // Probe the pawn hash table ei.pi = Pawns::probe(pos); score += ei.pi->pawns_score();