diff options
1 files changed, 40 insertions, 0 deletions
| -rw-r--r-- | Sem. 15/Chess/ChessBoard/ChessBoard.h | 40 |
diff --git a/Sem. 15/Chess/ChessBoard/ChessBoard.h b/Sem. 15/Chess/ChessBoard/ChessBoard.h new file mode 100644 index 0000000..1825119 --- /dev/null +++ b/Sem. 15/Chess/ChessBoard/ChessBoard.h @@ -0,0 +1,40 @@ +#pragma once +#include "../Figures/FigureBase/Figure.h" + +const size_t BOARD_SIZE = 8; +class ChessBoard +{ + struct Cell + { + Figure* f = nullptr; + Cell() = default; + + Cell(const Cell& other) = delete; + Cell& operator=(const Cell& other) = delete; + bool isEmpty() + { + return f == nullptr; + } + + void print() const + { + if (f != nullptr) + f->print(); + else + std::cout << ' '; + } + + ~Cell() + { + delete f; + } + }; + Cell board[BOARD_SIZE][BOARD_SIZE]; + +public: + ChessBoard(); + ChessBoard(const ChessBoard& other) = delete; + ChessBoard& operator=(const ChessBoard&) = delete; + + void print() const; +};
\ No newline at end of file |
