
#include <iostream>
#include <Windows.h>
#include <vector>
#include <iomanip>
#include <conio.h>
class Func {
protected:
int color;
struct Pos {
int x; int y; };
public:
Func() :color(NULL) {
}
~Func(){
}
int Random(const int& min, const int& max) {
return min + rand() % ((max - min) + 1);
}
void Draw(const Pos& pos, const int& color) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), COORD{
(short)pos.x, (short)pos.y });
std::cout << std::setw(2) << "\0";
}
template<typename T>
void Draw(const Pos& pos, T str, const int& color) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), COORD{
(short)pos.x, (short)pos.y });
std::cout << str;
}
};
class Console :protected Func{
private:
CONSOLE_CURSOR_INFO info;
public:
Console() {
info = {
1, 0 };
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
system("mode con cols=110 lines=31");
Init();
}
~Console() {
}
void Init() {
for (int i = 0; i <= 49; i++) {
for (int j = 0; j <= 30; j++)