diff --git a/src/evaluate.cpp b/src/evaluate.cpp index e39bcb4a..41c66812 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -300,6 +300,7 @@ namespace { Bitboard b, bb; Square s; Score score = SCORE_ZERO; + int mob; attackedBy[Us][Pt] = 0; @@ -324,7 +325,8 @@ namespace { kingAttacksCount[Us] += popcount(b & attackedBy[Them][KING]); } - int mob = popcount(b & mobilityArea[Us]); + mob = (Pt == KNIGHT || Pt == BISHOP) ? popcount(b & mobilityArea[Us] & ~pos.pieces(Us, QUEEN)) + : popcount(b & mobilityArea[Us]); mobility[Us] += MobilityBonus[Pt - 2][mob];