X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fpawns.cpp;h=b4b8d9eea80b343a3647ab41f7e0d3ced5f4135d;hp=73a9b904b347757fda1ba601344dfd69f913259b;hb=e304db9d1ecf6a2318708483c90fadecf4fac4ee;hpb=4f5680950a4e4c55da2877e1be91efd2be1c76ba diff --git a/src/pawns.cpp b/src/pawns.cpp index 73a9b904..b4b8d9ee 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -30,34 +30,34 @@ namespace { #define S(mg, eg) make_score(mg, eg) // Doubled pawn penalty by opposed flag and file - const Score DoubledPawnPenalty[2][8] = { + const Score DoubledPawnPenalty[2][FILE_NB] = { { S(13, 43), S(20, 48), S(23, 48), S(23, 48), S(23, 48), S(23, 48), S(20, 48), S(13, 43) }, { S(13, 43), S(20, 48), S(23, 48), S(23, 48), S(23, 48), S(23, 48), S(20, 48), S(13, 43) }}; // Isolated pawn penalty by opposed flag and file - const Score IsolatedPawnPenalty[2][8] = { + const Score IsolatedPawnPenalty[2][FILE_NB] = { { S(37, 45), S(54, 52), S(60, 52), S(60, 52), S(60, 52), S(60, 52), S(54, 52), S(37, 45) }, { S(25, 30), S(36, 35), S(40, 35), S(40, 35), S(40, 35), S(40, 35), S(36, 35), S(25, 30) }}; // Backward pawn penalty by opposed flag and file - const Score BackwardPawnPenalty[2][8] = { + const Score BackwardPawnPenalty[2][FILE_NB] = { { S(30, 42), S(43, 46), S(49, 46), S(49, 46), S(49, 46), S(49, 46), S(43, 46), S(30, 42) }, { S(20, 28), S(29, 31), S(33, 31), S(33, 31), S(33, 31), S(33, 31), S(29, 31), S(20, 28) }}; // Pawn chain membership bonus by file - const Score ChainBonus[8] = { + const Score ChainBonus[FILE_NB] = { S(11,-1), S(13,-1), S(13,-1), S(14,-1), S(14,-1), S(13,-1), S(13,-1), S(11,-1) }; // Candidate passed pawn bonus by rank - const Score CandidateBonus[8] = { + const Score CandidateBonus[RANK_NB] = { S( 0, 0), S( 6, 13), S(6,13), S(14,29), S(34,68), S(83,166), S(0, 0), S( 0, 0) }; @@ -65,12 +65,12 @@ namespace { 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][8] = + const Value ShelterWeakness[2][RANK_NB] = { { V(141), V(0), V(38), V(102), V(128), V(141), V(141) }, { V( 61), V(0), V(16), V( 44), V( 56), V( 61), V( 61) } }; // Danger of enemy pawns moving toward our king indexed by [pawn blocked][rank] - const Value StormDanger[2][8] = + const Value StormDanger[2][RANK_NB] = { { V(26), V(0), V(128), V(51), V(26) }, { V(13), V(0), V( 64), V(25), V(13) } }; @@ -240,12 +240,12 @@ Value PawnEntry::shelter_storm(const Position& pos, Square ksq) { { // Shelter penalty is higher for the pawn in front of the king b = ourPawns & FileBB[f]; - rkUs = b ? rank_of(Us == WHITE ? first_1(b) : ~last_1(b)) : RANK_1; + rkUs = b ? rank_of(Us == WHITE ? lsb(b) : ~msb(b)) : RANK_1; safety -= ShelterWeakness[f != kf][rkUs]; // Storm danger is smaller if enemy pawn is blocked b = theirPawns & FileBB[f]; - rkThem = b ? rank_of(Us == WHITE ? first_1(b) : ~last_1(b)) : RANK_1; + rkThem = b ? rank_of(Us == WHITE ? lsb(b) : ~msb(b)) : RANK_1; safety -= StormDanger[rkThem == rkUs + 1][rkThem]; }