diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 42f7addf..a16fc359 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -872,9 +872,16 @@ Value do_evaluate(const Position& pos, Value& margin) { { if (pos.non_pawn_material(Them) <= KnightValueMg) ebonus += ebonus / 4; + else if (pos.pieces(Them, ROOK, QUEEN)) ebonus -= ebonus / 4; } + + // Increase the bonus if we have more non-pawn pieces + if (pos.count( Us) - pos.count( Us) > + pos.count(Them) - pos.count(Them)) + ebonus += ebonus / 4; + score += make_score(mbonus, ebonus); }