Skip to content

Commit 296534f

Browse files
committed
Prefer names to numbers in storm code
Also replaces some tabs with spaces and change StormDanger order to reflect ShelterWeakness one. No functional change.
1 parent e5c7b44 commit 296534f

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/pawns.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -60,32 +60,31 @@ namespace {
6060
// Unsupported pawn penalty
6161
const Score UnsupportedPawnPenalty = S(20, 10);
6262

63-
// Weakness of our pawn shelter in front of the king indexed by [file pairs (a/h,b/g,c/f,d/e)][rank]
63+
// Weakness of our pawn shelter in front of the king by [distance from edge][rank]
6464
const Value ShelterWeakness[][RANK_NB] = {
6565
{ V(101), V(10), V(24), V(68), V(90), V( 95), V(102) },
6666
{ V(105), V( 1), V(30), V(76), V(95), V(100), V(105) },
6767
{ V( 99), V( 0), V(32), V(72), V(92), V(101), V(100) },
6868
{ V( 94), V( 1), V(31), V(68), V(89), V( 98), V(106) } };
6969

70-
// Danger of enemy pawns moving toward our king indexed by
71-
// [file pairs (a/h,b/g,c/f,d/e)][no friendly pawn | pawn unblocked | pawn blocked by pawn| pawn blocked by king][rank of enemy pawn]
70+
// Danger of enemy pawns moving toward our king by [type][distance from edge][rank]
7271
const Value StormDanger[][4][RANK_NB] = {
7372
{ { V( 0), V( 61), V( 128), V(47), V(27) },
74-
{ V(25), V( 33), V( 95), V(39), V(21) },
75-
{ V( 0), V( 0), V( 80), V(14), V( 8) },
76-
{ V( 0), V(-300), V(-300), V(54), V(23) } },
77-
{ { V( 0), V( 66), V( 131), V(49), V(27) },
73+
{ V( 0), V( 66), V( 131), V(49), V(27) },
74+
{ V( 0), V( 62), V( 126), V(52), V(23) },
75+
{ V( 0), V( 63), V( 128), V(52), V(26) } },
76+
{ { V(25), V( 33), V( 95), V(39), V(21) },
7877
{ V(24), V( 33), V( 97), V(42), V(22) },
79-
{ V( 0), V( 0), V( 163), V(28), V(12) },
80-
{ V( 0), V( 67), V( 128), V(46), V(24) } },
81-
{ { V( 0), V( 62), V( 126), V(52), V(23) },
8278
{ V(24), V( 33), V( 93), V(35), V(23) },
79+
{ V(26), V( 27), V( 96), V(37), V(22) } },
80+
{ { V( 0), V( 0), V( 80), V(14), V( 8) },
81+
{ V( 0), V( 0), V( 163), V(28), V(12) },
8382
{ V( 0), V( 0), V( 163), V(25), V(15) },
84-
{ V( 0), V( 64), V( 130), V(50), V(29) } },
85-
{ { V( 0), V( 63), V( 128), V(52), V(26) },
86-
{ V(26), V( 27), V( 96), V(37), V(22) },
87-
{ V( 0), V( 0), V( 161), V(24), V(14) },
88-
{ V( 0), V( 63), V( 127), V(51), V(24) } } };
83+
{ V( 0), V( 0), V( 161), V(24), V(14) } },
84+
{ { V( 0), V(-300), V(-300), V(54), V(23) },
85+
{ V( 0), V( 67), V( 128), V(46), V(24) },
86+
{ V( 0), V( 64), V( 130), V(50), V(29) },
87+
{ V( 0), V( 63), V( 127), V(51), V(24) } } };
8988

9089
// Max bonus for king safety. Corresponds to start position with all the pawns
9190
// in front of the king and no enemy pawn on the horizon.
@@ -247,13 +246,15 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) {
247246

248247
const Color Them = (Us == WHITE ? BLACK : WHITE);
249248

249+
enum { NoFriendlyPawn, Unblocked, BlockedByPawn, BlockedByKing };
250+
250251
Bitboard b = pos.pieces(PAWN) & (in_front_bb(Us, rank_of(ksq)) | rank_bb(ksq));
251252
Bitboard ourPawns = b & pos.pieces(Us);
252253
Bitboard theirPawns = b & pos.pieces(Them);
253254
Value safety = MaxSafetyBonus;
254-
File kf = std::max(FILE_B, std::min(FILE_G, file_of(ksq)));
255+
File center = std::max(FILE_B, std::min(FILE_G, file_of(ksq)));
255256

256-
for (File f = kf - File(1); f <= kf + File(1); ++f)
257+
for (File f = center - File(1); f <= center + File(1); ++f)
257258
{
258259
b = ourPawns & file_bb(f);
259260
Rank rkUs = b ? relative_rank(Us, backmost_sq(Us, b)) : RANK_1;
@@ -262,12 +263,11 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) {
262263
Rank rkThem = b ? relative_rank(Us, frontmost_sq(Them, b)) : RANK_1;
263264

264265
safety -= ShelterWeakness[std::min(f, FILE_H - f)][rkUs]
265-
+ StormDanger[std::min(f, FILE_H - f)]
266-
[file_of(ksq) == f && relative_rank(Us, ksq) == rkThem - 1 ? 3 :
267-
rkUs == RANK_1 ? 0 :
268-
rkThem != rkUs + 1 ? 1 :
269-
/* pawn blocked by pawn */ 2 ]
270-
[rkThem];
266+
+ StormDanger
267+
[f == file_of(ksq) && rkThem == relative_rank(Us, ksq) + 1 ? BlockedByKing :
268+
rkUs == RANK_1 ? NoFriendlyPawn :
269+
rkThem == rkUs + 1 ? BlockedByPawn : Unblocked]
270+
[std::min(f, FILE_H - f)][rkThem];
271271
}
272272

273273
return safety;

0 commit comments

Comments
 (0)