X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=02810b78490093f1f14f7c220897f2661f4bc63f;hp=984a85a65e0492c3daaa46ddc72f06709ae32487;hb=ea4e22be1da1ccbf316d27f2eb3b14d0e13388e4;hpb=a72710c66038f3c5abc8ba84d6a36c49c55d1b6c diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 984a85a6..02810b78 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -150,6 +150,8 @@ namespace { #undef S + const Score BishopPinBonus = make_score(66, 11); + // Bonus for having the side to move (modified by Joona Kiiski) const Score Tempo = make_score(24, 11); @@ -496,7 +498,7 @@ Value do_evaluate(const Position& pos, Value& margin) { // Init king safety tables only if we are going to use them if ( pos.piece_count(Us, QUEEN) - && pos.non_pawn_material(Us) >= QueenValueMg + RookValueMg) + && pos.non_pawn_material(Us) > QueenValueMg + PawnValueMg) { ei.kingRing[Them] = (b | (Us == WHITE ? b >> 8 : b << 8)); b &= ei.attackedBy[Us][PAWN]; @@ -581,6 +583,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)