#pragma once #include #include "SquareT.h" #include "CoordT.h" class BoardT { public: BoardT(std::size_t w=8, std::size_t h=8); BoardT(const BoardT & other) = delete; BoardT & operator = (const BoardT & other) = delete; SquareT & operator[] (const CoordT & coord); const SquareT & operator[] (const CoordT & coord) const; CoordT NewCoord(std::size_t x=0, std::size_t y=0) const; CoordT ChangeCoord(const CoordT & coord, DirT dir) const; size_t Height() const; size_t Width() const; private: size_t CoordToPos(const CoordT & coord) const; std::size_t width; std::size_t height; std::unique_ptr board; };