[BitBoard] Add fills and direction methods

This commit is contained in:
2022-12-22 11:18:23 +01:00
parent fbc1a5589a
commit 4157c9200e
3 changed files with 58 additions and 12 deletions

View File

@@ -82,8 +82,18 @@ public:
constexpr void clear(unsigned i);
constexpr void set(unsigned i);
BitBoard left(unsigned i) const;
BitBoard right(unsigned i) const;
BitBoard north() const;
BitBoard northEast() const;
BitBoard northWest() const;
BitBoard east() const;
BitBoard south() const;
BitBoard southEast() const;
BitBoard southWest() const;
BitBoard west() const;
BitBoard northFill() const;
BitBoard southFill() const;
BitBoard fileFill() const;
static BitBoard fromIndex(unsigned i);
@@ -215,11 +225,30 @@ constexpr void BitBoard::clear(const unsigned i) {
inline BitBoard BitBoard::fromIndex(const unsigned i) {
return 1ULL << i;
}
inline BitBoard BitBoard::left(const unsigned int i) const {
return (mBoard >> i);
inline BitBoard BitBoard::north() const {
return (mBoard << 8);
}
inline BitBoard BitBoard::right(const unsigned int i) const {
return (mBoard << i);
inline BitBoard BitBoard::northEast() const {
return (mBoard << 9) & ~AFile;
}
inline BitBoard BitBoard::northWest() const {
return (mBoard << 7) & ~HFile;
}
inline BitBoard BitBoard::west() const {
return (mBoard >> 1) & ~HFile;
}
inline BitBoard BitBoard::east() const {
return (mBoard << 1) & ~AFile;
}
inline BitBoard BitBoard::south() const {
return (mBoard >> 8);
}
inline BitBoard BitBoard::southEast() const {
return (mBoard >> 7) & ~AFile;
}
inline BitBoard BitBoard::southWest() const {
return (mBoard >> 9) & ~HFile;
}
inline int BitBoard::lsb() const {
return __builtin_ctzll(mBoard);