X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=912c05fc8b394942e46a864235dd9c29dda5d8e0;hp=42f7addfcce822b478da9fedf8b3db04b772eee7;hb=7a1ff6d8ff39bb9e6844d24467899d47e942486f;hpb=bebd6e16f6e8be116419632635baf9c0d8b7ba4e diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 42f7addf..912c05fc 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -622,11 +622,11 @@ Value do_evaluate(const Position& pos, Value& margin) { // type of attacking piece, from knights to queens. Kings are not // considered because are already handled in king evaluation. if (weakEnemies) - for (PieceType pt1 = KNIGHT; pt1 < KING; pt1++) + for (PieceType pt1 = KNIGHT; pt1 < KING; ++pt1) { b = ei.attackedBy[Us][pt1] & weakEnemies; if (b) - for (PieceType pt2 = PAWN; pt2 < KING; pt2++) + for (PieceType pt2 = PAWN; pt2 < KING; ++pt2) if (b & pos.pieces(pt2)) score += Threat[pt1][pt2]; } @@ -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); } @@ -901,7 +908,7 @@ Value do_evaluate(const Position& pos, Value& margin) { // Step 1. Hunt for unstoppable passed pawns. If we find at least one, // record how many plies are required for promotion. - for (c = WHITE; c <= BLACK; c++) + for (c = WHITE; c <= BLACK; ++c) { // Skip if other side has non-pawn pieces if (pos.non_pawn_material(~c))