/* TextDisplay class module stores internal data of the board, scoreboard, and other game implementation for text output */ #ifndef _TEXTDISPLAY_H_ #define _TEXTDISPLAY_H_ #include "display.h" #include <vector> #include <ostream> #include <string> class Shapes; class TextDisplay : public BiquadrisDisplay { std::vector<std::vector<std::vector<char>>> boards; std::vector<int> scores; std::vector<int> highScores; std::vector<int> levels; std::vector<char> nextBlocks; std::string hint; void printChar(std::ostream &out, char c, int amount); void printShape(std::ostream &out, Shapes &s, int row, int width); int padding(std::string &str, int width); public: TextDisplay(int width, int height); void update(int _highScore) override; void update(int boardId, int score) override; void update(int boardId, int level, char nextBlock) override; void update(int boardId, int row, int col, char type) override; void setHint(std::string _hint); void playerLoses() override; bool printable() override; void print(std::ostream &out); }; #endif