TurboSchach/Visualizer/ChessboardVisualizer.hpp

33 lines
994 B
C++

#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