|
@@ -0,0 +1,37 @@
|
|
|
+#ifndef CHESSY_BITBOARD_H
|
|
|
+#define CHESSY_BITBOARD_H
|
|
|
+
|
|
|
+#include <inttypes.h>
|
|
|
+
|
|
|
+namespace chessy
|
|
|
+{
|
|
|
+ using U64 = uint64_t;
|
|
|
+
|
|
|
+ struct Bitboard;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+struct chessy::Bitboard
|
|
|
+{
|
|
|
+ U64 bits;
|
|
|
+
|
|
|
+ Bitboard (void) = default;
|
|
|
+ Bitboard (const Bitboard&) = default;
|
|
|
+ ~Bitboard (void) = default;
|
|
|
+
|
|
|
+ inline void setBit (int i) { bits |= 1 << i; }
|
|
|
+ inline void unsetBit (int i) { bits |= ~(1 << i); }
|
|
|
+
|
|
|
+ inline void setBit (int row, int column)
|
|
|
+ { setBit(row * 8 + column); }
|
|
|
+ inline void unsetBit (int row, int column)
|
|
|
+ { unsetBit(row * 8 + column); }
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#endif /* CHESSY_BITBOARD_H */
|