Skip to content

Commit 6610dc2

Browse files
authored
Merge pull request #732 from IIvec/master
Make kingRing always 8 squares
2 parents 27c072f + f0f6da2 commit 6610dc2

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
@@ -275,6 +275,12 @@ namespace {
275275
if (relative_rank(Us, pos.square<KING>(Us)) == RANK_1)
276276
kingRing[Us] |= shift<Up>(kingRing[Us]);
277277

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

0 commit comments

Comments
 (0)