/* * File: Board.hpp * Author: amr * * Created on July 30, 2025, 9:20 PM */ #ifndef BOARD_HPP #define BOARD_HPP #include #include #include #include "Piece.hpp" // why do I have to forward declare all these?! class Piece; enum Players { PL_WHITE, PL_BLACK }; struct Square; class Board { private: std::vector>> boardGrid; public: Board(); ~Board(); void setupInitialPosition(); Piece *getPieceAt(int x, int y) const; void movePiece(Square from, Square to); bool isInBounds(int x, int y) const; uint64_t serialBoard = 0xFFFF00000000FFFF; // opening position void deserializeBoard(uint64_t incomingBoard); }; #endif // BOARD_HPP