diff --git a/BitBoard.cpp b/BitBoard.cpp index 8e89589..6b26519 100644 --- a/BitBoard.cpp +++ b/BitBoard.cpp @@ -51,3 +51,12 @@ BitBoard BitBoard::southFill() const { BitBoard BitBoard::fileFill() const { return northFill() | southFill(); } + +BitBoard BitBoard::kingAttacks(const BitBoard bb) { + BitBoard result = bb.east() | bb.west() | bb; + result |= (result.north() | result.south()); + result ^= bb; + + return result; + +} \ No newline at end of file diff --git a/BitBoard.h b/BitBoard.h index a35b4e6..b88cc2d 100644 --- a/BitBoard.h +++ b/BitBoard.h @@ -95,6 +95,8 @@ public: BitBoard southFill() const; BitBoard fileFill() const; + static BitBoard kingAttacks(BitBoard bb); + static BitBoard fromIndex(unsigned i); static BitBoard getRank(int r);