X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=92ad6e9a28ceee7ba7cd11bde5ed46164ed45a8b;hp=e381d6f8e503d432f3f837fcd40611f0b600a5e8;hb=69ec09bd4b5bdf61f3f49f12d88224e1d656020c;hpb=25296547d0258f8519b7614e4474bbc947eaea04 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index e381d6f8..92ad6e9a 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -618,7 +618,7 @@ namespace { { Square s = pop_lsb(&b); - assert(!(pos.pieces(PAWN) & forward_bb(Us, s))); + assert(!(pos.pieces(Them, PAWN) & forward_bb(Us, s + pawn_push(Us)))); bb = forward_bb(Us, s) & (ei.attackedBy[Them][ALL_PIECES] | pos.pieces(Them)); score -= HinderPassedPawn * popcount(bb); @@ -675,8 +675,8 @@ namespace { } // rr != 0 // Scale down bonus for candidate passers which need more than one - // pawn push to become passed. - if (!pos.pawn_passed(Us, s + pawn_push(Us))) + // pawn push to become passed or have a pawn in front of them. + if (!pos.pawn_passed(Us, s + pawn_push(Us)) || (pos.pieces(PAWN) & forward_bb(Us, s))) mbonus /= 2, ebonus /= 2; score += make_score(mbonus, ebonus) + PassedFile[file_of(s)];