Move methods from Board to BitBoard

This commit is contained in:
2022-12-22 01:35:37 +01:00
parent a1d4dadaa2
commit 84afaa2ada
4 changed files with 143 additions and 109 deletions

View File

@@ -67,26 +67,6 @@ private:
// Check if the move is castling without checking the rights or validity.
static bool isMoveCastling(const BitBoard &from, const BitBoard &to, const Piece &piece);
static inline void clearIndex(BitBoard &b, const unsigned i) {
b &= ~(1ULL << i);
}
static inline void setIndex(BitBoard &b, const unsigned i) {
b |= 1ULL << i;
}
static inline BitBoard indexToBitBoard(const unsigned i) {
return (1ULL << i);
}
static inline BitBoard genShift(BitBoard x, const int s) {
return (s < 0) ? (x >> -s) : (s > 63) ? x : (x << s);
}
static inline BitBoard getRankBB(int r) {
return (genShift(1ULL, (r + 1) * 8) - 1) & genShift(~1ULL, r * 8 - 1);
}
static inline int toIndex(PieceType t) {
return static_cast<int>(t);
}
@@ -114,18 +94,6 @@ private:
return static_cast<PieceType>(0);
}
inline void applyMask(const BitBoard &mask) {
for (auto &item : mPieceBBs) {
item ^= mask;
}
}
// Returns the number of trailing 0-bits in b.
// WARN: Check for 0!
static inline int getLSB(const BitBoard b) {
return __builtin_ctzll(static_cast<unsigned long long>(b));
}
void handlePawnDoubleAdvance(const Move &move, BitBoard bb, const Piece &movedPiece);
void handleEnPassant(const Move &move, const Piece &movedPiece);
};