Skip to content

Commit e5eab53

Browse files
authored
Merge pull request #731 from IIvec/master
Make kingRing always 8 squares
2 parents 1a3fae7 + f0f6da2 commit e5eab53

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/bitboard.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,9 @@ constexpr Bitboard make_bitboard(Square s, Squares... squares) {
165165
template<Direction D>
166166
constexpr Bitboard shift(Bitboard b) {
167167
return D == NORTH ? b << 8 : D == SOUTH ? b >> 8
168-
: D == NORTH_EAST ? (b & ~FileHBB) << 9 : D == SOUTH_EAST ? (b & ~FileHBB) >> 7
169-
: D == NORTH_WEST ? (b & ~FileABB) << 7 : D == SOUTH_WEST ? (b & ~FileABB) >> 9
168+
: D == EAST ? (b & ~FileHBB) << 1 : D == WEST ? (b & ~FileABB) >> 1
169+
: D == NORTH_EAST ? (b & ~FileHBB) << 9 : D == NORTH_WEST ? (b & ~FileABB) << 7
170+
: D == SOUTH_EAST ? (b & ~FileHBB) >> 7 : D == SOUTH_WEST ? (b & ~FileABB) >> 9
170171
: 0;
171172
}
172173

src/evaluate.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,12 @@ namespace {
274274
if (relative_rank(Us, pos.square<KING>(Us)) == RANK_1)
275275
kingRing[Us] |= shift<Up>(kingRing[Us]);
276276

277+
if (file_of(pos.square<KING>(Us)) == FILE_H)
278+
kingRing[Us] |= shift<WEST>(kingRing[Us]);
279+
280+
else if (file_of(pos.square<KING>(Us)) == FILE_A)
281+
kingRing[Us] |= shift<EAST>(kingRing[Us]);
282+
277283
kingAttackersCount[Them] = popcount(attackedBy[Us][KING] & pe->pawn_attacks(Them));
278284
kingAttacksCount[Them] = kingAttackersWeight[Them] = 0;
279285
}

0 commit comments

Comments
 (0)