Browse Source

initial commit

nicolaswinkler 8 years ago
commit
6991b8b7ac
1 changed files with 37 additions and 0 deletions
  1. 37 0
      src/BitBoard.h

+ 37 - 0
src/BitBoard.h

@@ -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 */