X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fevaluate.cpp;h=6acaaad0e0eaf1cc30e2222032772f4ecf553e36;hb=71440cf77b1df19e72bf281903c6babe2574b3ca;hp=1ee727da59773a5920835db74eb5f6e6bf6ea855;hpb=26689d8c2ae506e4da1a5654fcfdfe04886c3692;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 1ee727da..6acaaad0 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -207,19 +207,6 @@ namespace { const int BishopCheck = 2; const int KnightCheck = 3; - // KingExposed[Square] contains penalties based on the position of the - // defending king, indexed by king's square (from white's point of view). - const int KingExposed[] = { - 2, 0, 2, 5, 5, 2, 0, 2, - 2, 2, 4, 8, 8, 4, 2, 2, - 7, 10, 12, 12, 12, 12, 10, 7, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15 - }; - // KingDanger[Color][attackUnits] contains the actual king danger weighted // scores, indexed by color and by a calculated integer number. Score KingDanger[COLOR_NB][128]; @@ -434,7 +421,7 @@ Value do_evaluate(const Position& pos) { { ei.kingRing[Them] = b | shift_bb(b); b &= ei.attackedBy[Us][PAWN]; - ei.kingAttackersCount[Us] = b ? popcount(b) / 2 : 0; + ei.kingAttackersCount[Us] = b ? popcount(b) : 0; ei.kingAdjacentZoneAttacksCount[Us] = ei.kingAttackersWeight[Us] = 0; } else @@ -640,8 +627,7 @@ Value do_evaluate(const Position& pos) { Score score = ei.pi->king_safety(pos, ksq); // Main king safety evaluation - if ( ei.kingAttackersCount[Them] >= 2 - && ei.kingAdjacentZoneAttacksCount[Them]) + if (ei.kingAttackersCount[Them]) { // Find the attacked squares around the king which have no defenders // apart from the king itself @@ -654,11 +640,10 @@ Value do_evaluate(const Position& pos) { // Initialize the 'attackUnits' variable, which is used later on as an // index to the KingDanger[] array. The initial value is based on the // number and types of the enemy's attacking pieces, the number of - // attacked and undefended squares around our king, the square of the - // king, and the quality of the pawn shelter. + // attacked and undefended squares around our king and the quality of + // the pawn shelter (current 'score' value). attackUnits = std::min(20, (ei.kingAttackersCount[Them] * ei.kingAttackersWeight[Them]) / 2) + 3 * (ei.kingAdjacentZoneAttacksCount[Them] + popcount(undefended)) - + KingExposed[relative_square(Us, ksq)] - mg_value(score) / 32; // Analyse the enemy's safe queen contact checks. Firstly, find the