From: Gary Linscott Date: Wed, 13 Feb 2013 17:19:54 +0000 (-0500) Subject: Merge branch 'simplify_eval' into bishop_pin_clop X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=671f24ff355dd1a92a2c5eabfe3d482ccc4ffe73;hp=30c2e3828a5ea143e6190680dcd8e9d93fd17840 Merge branch 'simplify_eval' into bishop_pin_clop --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 984a85a6..56bcbc68 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -150,6 +150,8 @@ namespace { #undef S + Score BishopPinBonus = make_score(66, 11); + // 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) diff --git a/src/ucioption.cpp b/src/ucioption.cpp index e59a43a9..bc4a6481 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -87,6 +87,8 @@ void init(OptionsMap& o) { o["Slow Mover"] = Option(100, 10, 1000); o["UCI_Chess960"] = Option(false); o["UCI_AnalyseMode"] = Option(false, on_eval); + o["pin_open"] = Option(66, -100, 100, on_eval); + o["pin_end"] = Option(11, -100, 100, on_eval); }