#ifndef CHESSBOARDVISUALIZER_HPP #define CHESSBOARDVISUALIZER_HPP #include "BaseVisualizer.hpp" #include "../Chessboard/Chessboard.hpp" #include "../Chesspieces/Chesspiece.hpp" class ChessboardVisualizer : public BaseVisualizer { private: Chessboard* CHESSBOARD; std::vector<std::vector<std::string>> draw_vector; static size_t GetMaxBoardWidth(); void GenerateTopBottomBorder(bool top, bool single); void GenerateElement() override; void GeneratePlayers(); void GenerateChessboard(); void GenerateFiles(); std::string GenerateBoardField(char file, int rank, int height); void GenerateDisplayVector(); std::string FillStringToMaxLength(std::string& str); public: ChessboardVisualizer(Chessboard* chessboard, size_t padding) : BaseVisualizer(ChessboardVisualizer::GetMaxBoardWidth(), padding), CHESSBOARD(chessboard) { ChessboardVisualizer::GenerateElement(); }; void DisplayElement(); }; #endif //CHESSBOARDVISUALIZER_HPP