- // kingAttackersCount[color] is the number of pieces of the given color
- // which attack a square in the kingZone of the enemy king.
- int kingAttackersCount[2];
-
- // kingAttackersWeight[color] is the sum of the "weight" of the pieces of the
- // given color which attack a square in the kingZone of the enemy king. The
- // weights of the individual piece types are given by the variables
- // QueenAttackWeight, RookAttackWeight, BishopAttackWeight and
- // KnightAttackWeight in evaluate.cpp
- int kingAttackersWeight[2];
-
- // kingAdjacentZoneAttacksCount[color] is the number of attacks to squares
- // directly adjacent to the king of the given color. Pieces which attack
- // more than one square are counted multiple times. For instance, if black's
- // king is on g8 and there's a white knight on g5, this knight adds
- // 2 to kingAdjacentZoneAttacksCount[BLACK].
- int kingAdjacentZoneAttacksCount[2];
-
- // mateThreat[color] is a move for the given side which gives a direct mate.
- Move mateThreat[2];
-
- // Middle game and endgame mobility scores.
- Value mgMobility, egMobility;
-
- // Extra futility margin. This is added to the standard futility margin
- // in the quiescence search.
- Value futilityMargin;
-};
-
-
-////
-//// Prototypes
-////
-
-extern Value evaluate(const Position &pos, EvalInfo &ei, int threadID);
-extern Value quick_evaluate(const Position &pos);