// ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ─ │ ═║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ╭ ╮ ╯ ╰ ╱ ╲ ╳
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
vector<string> moves;
string board[8][8] = {
{"♜","♞","♝","♛","♚","♝","♞","♜"},
{"♟","♟","♟","♟","♟","♟","♟","♟"},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{" "," "," "," "," "," "," "," "},
{"♙","♙","♙","♙","♙","♙","♙","♙"},
{"♖","♘","♗","♕","♔","♗","♘","♖"}
};
int pot = 600;
int ptt = 600;
void wait(const int s) { this_thread::sleep_for(chrono::seconds(s)); }
void render(const string board[8][8]) {
cout << " ┌─────────────────┐\n";
for (int r = 0; r < 8; r++) {
cout << 8 - r << " │ ";
for (int c = 0; c < 8; c++) {
cout << board[r][c] << " ";
}
cout << "│\n";
}
cout << " └─────────────────┘\n";
cout << " a b c d e f g h";
}
string getMove(const int n) {
int i = (n - 1) * 2;
string mo = i < moves.size() ? moves[i] : "";
string mt = (i + 1) < moves.size() ? moves[i + 1] : "";
auto pad = [](const string& s) {
return ' ' + s + string(7 - s.size(), ' ');
};
return to_string(n) + pad(mo) + pad(mt) + "\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << " ____ _\n"
<< " / ___| |__ ___ ___ ___\n"
<< "| | | '_ \\ / _ \\/ __/ __|\n"
<< "| |___| | | | __/\\__ \\__ \\\n"
<< " \\____|_| |_|\\___||___/___/\n\n"
<< " 1: play\n"
<< " 2: information\n\n> ";
int num;
while (!(cin >> num)) {
cout << "\x1b[1A\x1b[2K> ";
cin.clear();
cin.ignore(100, '\n');
}
return 0;
}
Ly8g4pSMIOKUkCDilJQg4pSYIOKUnCDilKQg4pSsIOKUtCDilLwg4pSAIOKUgiDilZDilZEg4pWSIOKVkyDilZQg4pWVIOKVliDilZcg4pWYIOKVmSDilZog4pWbIOKVnCDilZ0g4pWeIOKVnyDilaAg4pWhIOKVoiDilaMg4pWkIOKVpSDilaYg4pWnIOKVqCDilakg4pWqIOKVqyDilawg4pWtIOKVriDila8g4pWwIOKVsSDilbIg4pWzCiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHRocmVhZD4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxzdHJpbmc+IG1vdmVzOwpzdHJpbmcgYm9hcmRbOF1bOF0gPSB7CiAgICAgICAgeyLimZwiLCLimZ4iLCLimZ0iLCLimZsiLCLimZoiLCLimZ0iLCLimZ4iLCLimZwifSwKICAgICAgICB7IuKZnyIsIuKZnyIsIuKZnyIsIuKZnyIsIuKZnyIsIuKZnyIsIuKZnyIsIuKZnyJ9LAogICAgICAgIHsiICIsIiAiLCIgIiwiICIsIiAiLCIgIiwiICIsIiAifSwKICAgICAgICB7IiAiLCIgIiwiICIsIiAiLCIgIiwiICIsIiAiLCIgIn0sCiAgICAgICAgeyIgIiwiICIsIiAiLCIgIiwiICIsIiAiLCIgIiwiICJ9LAogICAgICAgIHsiICIsIiAiLCIgIiwiICIsIiAiLCIgIiwiICIsIiAifSwKICAgICAgICB7IuKZmSIsIuKZmSIsIuKZmSIsIuKZmSIsIuKZmSIsIuKZmSIsIuKZmSIsIuKZmSJ9LAogICAgICAgIHsi4pmWIiwi4pmYIiwi4pmXIiwi4pmVIiwi4pmUIiwi4pmXIiwi4pmYIiwi4pmWIn0KICAgIH07CmludCBwb3QgPSA2MDA7CmludCBwdHQgPSA2MDA7Cgp2b2lkIHdhaXQoY29uc3QgaW50IHMpIHsgdGhpc190aHJlYWQ6OnNsZWVwX2ZvcihjaHJvbm86OnNlY29uZHMocykpOyB9CiAgICAKdm9pZCByZW5kZXIoY29uc3Qgc3RyaW5nIGJvYXJkWzhdWzhdKSB7CiAgICBjb3V0IDw8ICIgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuIjsKICAgIGZvciAoaW50IHIgPSAwOyByIDwgODsgcisrKSB7CiAgICAgICAgY291dCA8PCA4IC0gciA8PCAiIOKUgiAiOwogICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgODsgYysrKSB7CiAgICAgICAgICAgIGNvdXQgPDwgYm9hcmRbcl1bY10gPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICLilIJcbiI7CiAgICB9CiAgICBjb3V0IDw8ICIgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuIjsKICAgIGNvdXQgPDwgIiAgICBhIGIgYyBkIGUgZiBnIGgiOwp9CgpzdHJpbmcgZ2V0TW92ZShjb25zdCBpbnQgbikgewogICAgaW50IGkgPSAobiAtIDEpICogMjsKICAgIHN0cmluZyBtbyA9IGkgPCBtb3Zlcy5zaXplKCkgPyBtb3Zlc1tpXSA6ICIiOwogICAgc3RyaW5nIG10ID0gKGkgKyAxKSA8IG1vdmVzLnNpemUoKSA/IG1vdmVzW2kgKyAxXSA6ICIiOwogICAgYXV0byBwYWQgPSBbXShjb25zdCBzdHJpbmcmIHMpIHsKICAgICAgICByZXR1cm4gJyAnICsgcyArIHN0cmluZyg3IC0gcy5zaXplKCksICcgJyk7CiAgICB9OwogICAgcmV0dXJuIHRvX3N0cmluZyhuKSArIHBhZChtbykgKyBwYWQobXQpICsgIlxuIjsKfQppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0IDw8ICIgICBfX19fIF9cbiIKICAgICAgICAgPDwgIiAvIF9fX3wgfF9fICAgX19fICBfX18gX19fXG4iCiAgICAgICAgIDw8ICJ8IHwgICB8ICdfIFxcIC8gXyBcXC8gX18vIF9ffFxuIgogICAgICAgICA8PCAifCB8X19ffCB8IHwgfCAgX18vXFxfXyBcXF9fIFxcXG4iCiAgICAgICAgIDw8ICIgXFxfX19ffF98IHxffFxcX19ffHxfX18vX19fL1xuXG4iCiAgICAgICAgIDw8ICIgIDE6IHBsYXlcbiIKICAgICAgICAgPDwgIiAgMjogaW5mb3JtYXRpb25cblxuPiAiOwogICAgaW50IG51bTsKICAgIHdoaWxlICghKGNpbiA+PiBudW0pKSB7CiAgICAgICAgY291dCA8PCAiXHgxYlsxQVx4MWJbMks+ICI7CiAgICAgICAgY2luLmNsZWFyKCk7CiAgICAgICAgY2luLmlnbm9yZSgxMDAsICdcbicpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=