#ifndef PLAYINGVIEWVISUALIZER_HPP
#define PLAYINGVIEWVISUALIZER_HPP

#include "BaseVisualizer.hpp"
#include "../Chessboard/Chessboard.hpp"

class PlayingViewVisualizer : public BaseVisualizer {
  private:
    const size_t DISTANCE_BETWEEN_ELEMENTS;

    Chessboard* CHESSBOARD;
    std::string move;

    std::vector<std::vector<std::string>> position_vector;

    void GenerateElement();
    void GeneratePositionVector(
      std::vector<std::vector<std::string>>* chessboard_display_vector,
      std::vector<std::vector<std::string>>* historie_display_vector,
      std::vector<std::vector<std::string>>* command_menu_display_vector);

  public:
    PlayingViewVisualizer(Chessboard* chessboard, size_t padding, size_t distance) :
      BaseVisualizer(110, padding), CHESSBOARD(chessboard), DISTANCE_BETWEEN_ELEMENTS(distance) {}
    void DisplayElement();
    std::string GetMove();
};

#endif //PLAYINGVIEWVISUALIZER_HPP