S(34,68), S(83,166), S(0, 0), S( 0, 0)
};
- const Score PawnStructureWeight = S(233, 201);
-
// Weakness of our pawn shelter in front of the king indexed by [king pawn][rank]
const Value ShelterWeakness[2][RANK_NB] =
{ { V(141), V(0), V(38), V(102), V(128), V(141), V(141) },
value += CandidateBonus[relative_rank(Us, s)];
}
- e->pawnsOnWhiteSquaresCount[Us] = popcount<Max15>(ourPawns & WhiteSquares);
- e->pawnsOnWhiteSquaresCount[Them] = popcount<Max15>(theirPawns & WhiteSquares);
+ e->pawnsOnSquares[Us][BLACK] = popcount<Max15>(ourPawns & BlackSquares);
+ e->pawnsOnSquares[Us][WHITE] = pos.piece_count(Us, PAWN) - e->pawnsOnSquares[Us][BLACK];
- e->pawnsOnBlackSquaresCount[Us] = popcount<Max15>(ourPawns & BlackSquares);
- e->pawnsOnBlackSquaresCount[Them] = popcount<Max15>(theirPawns & BlackSquares);
+ e->pawnsOnSquares[Them][BLACK] = popcount<Max15>(theirPawns & BlackSquares);
+ e->pawnsOnSquares[Them][WHITE] = pos.piece_count(Them, PAWN) - e->pawnsOnSquares[Them][BLACK];
return value;
}
e->value = evaluate_pawns<WHITE>(pos, wPawns, bPawns, e)
- evaluate_pawns<BLACK>(pos, bPawns, wPawns, e);
-
- e->value = apply_weight(e->value, PawnStructureWeight);
-
return e;
}