]> git.sesse.net Git - stockfish/blobdiff - src/evaluate.cpp
Use CLOP mean value instead of max
[stockfish] / src / evaluate.cpp
index 984a85a65e0492c3daaa46ddc72f06709ae32487..4642b34f4f63b681d5859229b86a67b0fc478eec 100644 (file)
@@ -150,6 +150,8 @@ namespace {
 
   #undef S
 
+  Score BishopPinBonus = make_score(27, 12);
+
   // Bonus for having the side to move (modified by Joona Kiiski)
   const Score Tempo = make_score(24, 11);
 
@@ -306,6 +308,8 @@ namespace Eval {
         KingDangerTable[0][i] = apply_weight(make_score(t, 0), make_score(KingDanger[0], 0));
         KingDangerTable[1][i] = apply_weight(make_score(t, 0), make_score(KingDanger[1], 0));
     }
+
+    BishopPinBonus = make_score(Options["pin_open"], Options["pin_end"]);
   }
 
 
@@ -581,6 +585,11 @@ Value do_evaluate(const Position& pos, Value& margin) {
         // of threat evaluation must be done later when we have full attack info.
         if (ei.attackedBy[Them][PAWN] & s)
             score -= ThreatenedByPawnPenalty[Piece];
+        else if (Piece == BISHOP && (PseudoAttacks[Piece][pos.king_square(Them)] & s)) {
+             const Bitboard between = BetweenBB[s][pos.king_square(Them)] & pos.pieces();
+             if (!more_than_one(between))
+                 score += BishopPinBonus;
+        }
 
         // Bishop and knight outposts squares
         if (    (Piece == BISHOP || Piece == KNIGHT)