From: Marco Costalba Date: Sat, 2 Feb 2013 05:43:11 +0000 (+0100) Subject: Revert "Simplify Evaluation" X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=0901e12102cf61559e6bfbbda0a040c72048dc8c Revert "Simplify Evaluation" This reverts commit 496c7497cb81de4383 --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 984a85a6..49dc07fe 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -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) diff --git a/src/search.cpp b/src/search.cpp index cb7b30b8..c516f3c4 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -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; }