X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevaluate.cpp;h=69df7629b881f1ce9e197d4b3b1695a7437379a6;hb=069073ea6882ccb27fe4b571ed08ebe6a4ad8c65;hp=ce98af6f8e01b50eb57ad84537dca8a533b756b3;hpb=fed3e752aec8a43f65b07d0efae0900b942b9c16;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index ce98af6f..69df7629 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -151,8 +151,8 @@ namespace { }; // Assorted bonuses and penalties used by evaluation - const Score KingOnPawnOne = S(0 , 64); - const Score KingOnPawnMany = S(0 ,128); + const Score KingOnOne = S(2 , 58); + const Score KingOnMany = S(6 ,125); const Score RookOnPawn = S(10, 28); const Score RookOpenFile = S(43, 21); const Score RookSemiOpenFile = S(19, 10); @@ -507,7 +507,7 @@ namespace { & ei.attackedBy[Them][PAWN] & (ei.attackedBy[Us][KNIGHT] | ei.attackedBy[Us][BISHOP]); - if(protectedEnemies) + if (protectedEnemies) score += Threat[Minor][type_of(pos.piece_on(lsb(protectedEnemies)))]; // Enemies not defended by a pawn and under our attack @@ -530,9 +530,9 @@ namespace { if (b) score += more_than_one(b) ? Hanging * popcount(b) : Hanging; - b = weakEnemies & pos.pieces(Them, PAWN) & ei.attackedBy[Us][KING]; + b = weakEnemies & ei.attackedBy[Us][KING]; if (b) - score += more_than_one(b) ? KingOnPawnMany : KingOnPawnOne; + score += more_than_one(b) ? KingOnMany : KingOnOne; } if (Trace) @@ -608,7 +608,7 @@ namespace { mbonus += k * rr, ebonus += k * rr; } - else if(pos.pieces(Us) & blockSq) + else if (pos.pieces(Us) & blockSq) mbonus += rr * 3 + r * 2 + 3, ebonus += rr + r * 2; } // rr != 0 @@ -626,13 +626,13 @@ namespace { } - // evaluate_unstoppable_pawns() scores the most advanced among the passed and - // candidate pawns. In case both players have no pieces but pawns, this is - // somewhat related to the possibility that pawns are unstoppable. + // evaluate_unstoppable_pawns() scores the most advanced passed pawn. In case + // both players have no pieces but pawns, this is somewhat related to the + // possibility that pawns are unstoppable. Score evaluate_unstoppable_pawns(Color us, const EvalInfo& ei) { - Bitboard b = ei.pi->passed_pawns(us) | ei.pi->candidate_pawns(us); + Bitboard b = ei.pi->passed_pawns(us); return b ? Unstoppable * int(relative_rank(us, frontmost_sq(us, b))) : SCORE_ZERO; }