]> git.sesse.net Git - stockfish/commitdiff
Revert "Simplify Evaluation"
authorMarco Costalba <mcostalba@gmail.com>
Sat, 2 Feb 2013 05:43:11 +0000 (06:43 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 2 Feb 2013 05:44:04 +0000 (06:44 +0100)
This reverts commit 496c7497cb81de4383

src/evaluate.cpp
src/search.cpp

index 984a85a65e0492c3daaa46ddc72f06709ae32487..49dc07fe671ef0885ca9b5fbfd29a8fd2cc885ad 100644 (file)
@@ -577,6 +577,18 @@ Value do_evaluate(const Position& pos, Value& margin) {
 
         mobility += MobilityBonus[Piece][mob];
 
+        // Add a bonus if a slider is pinning an enemy piece
+        if (   (Piece == BISHOP || Piece == ROOK || Piece == QUEEN)
+            && (PseudoAttacks[Piece][pos.king_square(Them)] & s))
+        {
+            b = BetweenBB[s][pos.king_square(Them)] & pos.pieces();
+
+            assert(b);
+
+            if (!more_than_one(b) && (b & pos.pieces(Them)))
+                score += ThreatBonus[Piece][type_of(pos.piece_on(lsb(b)))];
+        }
+
         // Decrease score if we are attacked by an enemy pawn. Remaining part
         // of threat evaluation must be done later when we have full attack info.
         if (ei.attackedBy[Them][PAWN] & s)
@@ -687,7 +699,8 @@ Value do_evaluate(const Position& pos, Value& margin) {
                       & ~ei.attackedBy[Them][0];
 
     if (undefendedMinors)
-        score += UndefendedMinorPenalty;
+        score += more_than_one(undefendedMinors) ? UndefendedMinorPenalty * 2
+                                                 : UndefendedMinorPenalty;
 
     // Enemy pieces not defended by a pawn and under our attack
     weakEnemies =  pos.pieces(Them)
index cb7b30b8f6f102a832f79c1ae835046f8aa83128..c516f3c444786dd2b3a41d49b5250deb17a7d75f 100644 (file)
@@ -1343,6 +1343,7 @@ split_point_start: // At split points actual search starts from here
     Bitboard b = (enemies ^ ksq) & newAtt & ~oldAtt;
     while (b)
     {
+        // Note that here we generate illegal "double move"!
         if (futilityBase + PieceValue[EG][pos.piece_on(pop_lsb(&b))] >= beta)
             return true;
     }