+struct InvertedBoard {
+ signed char pos[BOARD_SIZE];
+};
+
+struct Board {
+ signed char board[BOARD_SIZE];
+ bool is_valid() const;
+ signed char hole() const;
+ InvertedBoard invert() const;
+ int distance(const Board& o) const;
+ int distance(const InvertedBoard& invo) const;
+ bool operator==(const Board& o) const;
+ bool operator!=(const Board& o) const;
+ bool operator<(const Board& o) const;
+};