-
个人简介
67🤤

小游戏合集 👇👇
//-std=c++11 #include <iostream> #include <vector> #include <fstream> #include <conio.h> #include <windows.h> #include <cstdlib> #include <ctime> #include <iomanip> #include <cstring> #include <algorithm> using namespace std; enum Color { BLACK = 0, BLUE = 1, GREEN = 2, CYAN = 3, RED = 4, MAGENTA = 5, BROWN = 6, LGRAY = 7, GRAY = 8, LBLUE = 9, LGREEN = 10, LCYAN = 11, LRED = 12, LMAGENTA = 13, YELLOW = 14, WHITE = 15 }; void setColor(int c) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c); } void clear() { system("cls"); } void waitKey() { setColor(WHITE); cout << "\n按任意键返回..."; _getch(); } int getHighScore(const string& name) { ifstream fin("score.dat"); string n; int s; while (fin >> n >> s) if (n == name) return s; return 0; } void saveHighScore(const string& name, int score) { vector<pair<string, int>> vec; ifstream fin("score.dat"); string n; int s; bool found = false; while (fin >> n >> s) { if (n == name) { vec.emplace_back(n, max(score, s)); found = true; } else vec.emplace_back(n, s); } if (!found) vec.emplace_back(name, score); ofstream fout("score.dat"); for (auto& p : vec) fout << p.first << " " << p.second << endl; } int chooseDifficulty() { clear(); setColor(LBLUE); cout << "============ 难度选择 ============\n\n"; setColor(WHITE); cout << "1 - 简单\n2 - 普通\n3 - 困难\n\n"; cout << "选择: "; int c = _getch() - '0'; return (c < 1 || c > 3) ? 2 : c; } int speedByDifficulty(int d) { if (d == 1) return 180; if (d == 2) return 120; return 70; } void showHelp() { clear(); setColor(LCYAN); cout << "==================== 操作说明 ====================\n\n"; setColor(WHITE); cout << "X 退出/返回\n"; cout << "WASD 移动\n"; cout << "空格 跳跃(小恐龙)\n"; cout << "===================================================\n"; waitKey(); } void showTutorial() { clear(); setColor(YELLOW); cout << "==================== 游戏教程 ====================\n\n"; setColor(WHITE); cout << "【贪吃蛇】多食物同时存在,吃F得分\n"; cout << "【2048】相同数字合并,目标2048\n"; cout << "【打砖块】接住小球,不让它掉落\n"; cout << "【猜数字】猜1-100数字,提示大小\n"; cout << "【小恐龙】空格跳跃躲避仙人掌,越跑越快\n"; cout << "===================================================\n"; waitKey(); } // ==================== 贪吃蛇 · 多食物版 ==================== void gameSnake() { int diff = chooseDifficulty(); int spd = speedByDifficulty(diff); enum class Dir { STOP, LEFT, RIGHT, UP, DOWN }; struct Point { int x, y; }; bool over = false; const int w = 20, h = 20; const int FOOD_COUNT = 5; vector<Point> foods; int score = 0; Dir dir = Dir::STOP; vector<Point> snake; snake.push_back({w/2, h/2}); int high = getHighScore("snake"); auto addFood = [&]() { bool ok; Point p; do { ok = true; p.x = rand() % w; p.y = rand() % h; for (auto& s : snake) if (s.x == p.x && s.y == p.y) ok = false; for (auto& f : foods) if (f.x == p.x && f.y == p.y) ok = false; } while (!ok); foods.push_back(p); }; for (int i = 0; i < FOOD_COUNT; i++) addFood(); while (!over) { clear(); setColor(LGREEN); for (int i = 0; i < w+2; i++) cout << "#"; cout << endl; for (int i = 0; i < h; i++) { setColor(LGREEN); cout << "#"; for (int j = 0; j < w; j++) { bool isBody = false; bool isFood = false; for (auto& s : snake) if (s.x == j && s.y == i) { isBody = true; break; } for (auto& f : foods) if (f.x == j && f.y == i) { isFood = true; break; } if (i == snake[0].y && j == snake[0].x) { setColor(WHITE); cout << "O"; } else if (isFood) { setColor(LRED); cout << "F"; } else if (isBody) { setColor(LGREEN); cout << "o"; } else cout << " "; } setColor(LGREEN); cout << "#\n"; } for (int i = 0; i < w+2; i++) cout << "#"; setColor(WHITE); cout << "\n分数: " << score << " 最高分: " << high << " 按X退出\n"; if (_kbhit()) { char ch = _getch(); if (ch == 'x' || ch == 'X') break; switch (ch) { case 'a': if (dir != Dir::RIGHT) dir = Dir::LEFT; break; case 'd': if (dir != Dir::LEFT) dir = Dir::RIGHT; break; case 'w': if (dir != Dir::DOWN) dir = Dir::UP; break; case 's': if (dir != Dir::UP) dir = Dir::DOWN; break; } } Point head = snake[0]; switch (dir) { case Dir::LEFT: head.x--; break; case Dir::RIGHT: head.x++; break; case Dir::UP: head.y--; break; case Dir::DOWN: head.y++; break; default: break; } snake.insert(snake.begin(), head); bool ate = false; for (auto it = foods.begin(); it != foods.end(); ++it) { if (head.x == it->x && head.y == it->y) { foods.erase(it); score += 10; ate = true; break; } } if (ate) addFood(); else snake.pop_back(); if (head.x < 0 || head.x >= w || head.y < 0 || head.y >= h) over = true; for (size_t i = 1; i < snake.size(); i++) if (snake[i].x == head.x && snake[i].y == head.y) over = true; Sleep(spd); } setColor(LRED); cout << "\n===== GAME OVER =====\n"; if (score > high) { setColor(YELLOW); cout << "?? 新纪录!\n"; saveHighScore("snake", score); } waitKey(); } // ==================== 2048 完整修复版 ==================== void game2048() { const int SZ = 4; int grid[SZ][SZ] = {0}; int score = 0; int high = getHighScore("2048"); auto hasEmpty = [&]() { for (int i = 0; i < SZ; ++i) for (int j = 0; j < SZ; ++j) if (grid[i][j] == 0) return true; return false; }; auto canMove = [&]() { for (int i = 0; i < SZ; ++i) for (int j = 0; j < SZ; ++j) { int v = grid[i][j]; if (j < SZ-1 && grid[i][j+1] == v) return true; if (i < SZ-1 && grid[i+1][j] == v) return true; } return false; }; auto addRandom = [&]() { if (!hasEmpty()) return; vector<pair<int, int>> pos; for (int i = 0; i < SZ; ++i) for (int j = 0; j < SZ; ++j) if (grid[i][j] == 0) pos.emplace_back(i, j); int r = rand() % pos.size(); grid[pos[r].first][pos[r].second] = (rand() % 10 < 9) ? 2 : 4; }; auto draw = [&]() { clear(); setColor(LBLUE); cout << "============== 2048 ==============\n\n"; setColor(WHITE); cout << "分数: " << score << " 最高分: " << high << "\n\n"; for (int i = 0; i < SZ; ++i) { for (int j = 0; j < SZ; ++j) { int v = grid[i][j]; if (v == 0) { setColor(GRAY); cout << setw(6) << "."; } else if (v == 2) { setColor(WHITE); cout << setw(6) << v; } else if (v == 4) { setColor(LGREEN); cout << setw(6) << v; } else if (v == 8) { setColor(CYAN); cout << setw(6) << v; } else if (v == 16){ setColor(YELLOW); cout << setw(6) << v; } else if (v == 32){ setColor(LRED); cout << setw(6) << v; } else if (v == 64){ setColor(MAGENTA); cout << setw(6) << v; } else { setColor(RED); cout << setw(6) << v; } } cout << "\n\n"; } setColor(WHITE); cout << "WASD移动 X退出\n"; }; auto slideLine = [&](int line[]) { int tmp[SZ] = {0}, idx = 0; for (int i = 0; i < SZ; ++i) if (line[i]) tmp[idx++] = line[i]; for (int i = 0; i < SZ-1; ++i) { if (tmp[i] && tmp[i] == tmp[i+1]) { tmp[i] *= 2; score += tmp[i]; tmp[i+1] = 0; } } int res[SZ] = {0}; idx = 0; for (int i = 0; i < SZ; ++i) if (tmp[i]) res[idx++] = tmp[i]; memcpy(line, res, sizeof(res)); }; auto left = [&]() { int old[SZ][SZ]; memcpy(old, grid, sizeof(grid)); for (int i = 0; i < SZ; ++i) slideLine(grid[i]); return memcmp(old, grid, sizeof(grid)) != 0; }; auto right = [&]() { int old[SZ][SZ]; memcpy(old, grid, sizeof(grid)); for (int i = 0; i < SZ; ++i) { int line[SZ]; for (int j = 0; j < SZ; ++j) line[j] = grid[i][SZ-1-j]; slideLine(line); for (int j = 0; j < SZ; ++j) grid[i][SZ-1-j] = line[j]; } return memcmp(old, grid, sizeof(grid)) != 0; }; auto up = [&]() { int old[SZ][SZ]; memcpy(old, grid, sizeof(grid)); for (int j = 0; j < SZ; ++j) { int line[SZ]; for (int i = 0; i < SZ; ++i) line[i] = grid[i][j]; slideLine(line); for (int i = 0; i < SZ; ++i) grid[i][j] = line[i]; } return memcmp(old, grid, sizeof(grid)) != 0; }; auto down = [&]() { int old[SZ][SZ]; memcpy(old, grid, sizeof(grid)); for (int j = 0; j < SZ; ++j) { int line[SZ]; for (int i = 0; i < SZ; ++i) line[i] = grid[SZ-1-i][j]; slideLine(line); for (int i = 0; i < SZ; ++i) grid[SZ-1-i][j] = line[i]; } return memcmp(old, grid, sizeof(grid)) != 0; }; addRandom(); addRandom(); draw(); while (true) { if (!_kbhit()) continue; char c = _getch(); if (c == 'x' || c == 'X') break; bool moved = false; switch (c) { case 'a': moved = left(); break; case 'd': moved = right(); break; case 'w': moved = up(); break; case 's': moved = down(); break; } if (moved) { addRandom(); draw(); } if (!hasEmpty() && !canMove()) { setColor(LRED); cout << "\n===== GAME OVER =====\n"; break; } } if (score > high) saveHighScore("2048", score); waitKey(); } // ==================== 打砖块 ==================== void gameBrick() { int diff = chooseDifficulty(); int spd = speedByDifficulty(diff); const int w = 24, h = 12; int bx = w/2, by = h/2; int dx = 1, dy = -1; int pad = w/2 - 2; const int padW = 5; int score = 0; int high = getHighScore("brick"); while (true) { clear(); setColor(LGREEN); for (int i = 0; i < w+2; i++) cout << "#"; cout << endl; for (int i = 0; i < h; i++) { setColor(LGREEN); cout << "#"; for (int j = 0; j < w; j++) { if (i == by && j == bx) { setColor(WHITE); cout << "O"; } else cout << " "; } setColor(LGREEN); cout << "#\n"; } cout << "#"; for (int j = 0; j < w; j++) { if (j >= pad && j < pad+padW) cout << "="; else cout << " "; } cout << "#\n"; for (int i = 0; i < w+2; i++) cout << "#"; setColor(WHITE); cout << "\n分数: " << score << " 最高分: " << high << " A/D移动 X退出\n"; if (_kbhit()) { char c = _getch(); if (c == 'a' && pad > 0) pad--; if (c == 'd' && pad+padW < w) pad++; if (c == 'x' || c == 'X') break; } bx += dx; by += dy; if (bx <= 0 || bx >= w-1) { dx *= -1; } if (by <= 0) { dy *= -1; } if (by == h-1 && bx >= pad && bx < pad+padW) { dy *= -1; score += 5; } if (by >= h) { setColor(LRED); cout << "\n===== GAME OVER =====\n"; break; } Sleep(spd); } if (score > high) { setColor(YELLOW); cout << "?? 新纪录!\n"; saveHighScore("brick", score); } waitKey(); } // ==================== 猜数字 ==================== void gameGuess() { clear(); int ans = rand() % 100 + 1; int g, cnt = 0; int high = getHighScore("guess"); setColor(LBLUE); cout << "======== 猜数字游戏 ========\n\n"; setColor(WHITE); cout << "已生成 1~100 的数字,开始猜吧!\n\n"; while (true) { cout << "请输入: "; cin >> g; cnt++; if (g < ans) { setColor(YELLOW); cout << "小了!\n"; } else if (g > ans) { setColor(YELLOW); cout << "大了!\n"; } else { setColor(LGREEN); cout << "\n恭喜猜对!次数: " << cnt << endl; int score = max(0, 100 - cnt); if (score > high) { cout << "?? 新纪录!\n"; saveHighScore("guess", score); } break; } setColor(WHITE); } waitKey(); } // ==================== 谷歌小恐龙(已修复跳跃R消失) ==================== void gameDino() { int diff = chooseDifficulty(); int spd = speedByDifficulty(diff); const int GROUND = 4; const int WIDTH = 35; int dinoY = GROUND; bool isJumping = false; int velY = 0; const int gravity = 1; const int jumpPower = -4; int cactusX = WIDTH - 5; int score = 0; int high = getHighScore("dino"); while (true) { clear(); setColor(WHITE); cout << "===== 谷歌小恐龙 =====\n"; cout << "分数: " << score << " 最高分: " << high << "\n\n"; for (int y = 0; y <= GROUND; ++y) { for (int x = 0; x < WIDTH; ++x) { if (x == 5 && y == dinoY) { setColor(LCYAN); cout << "R"; } else if (x == cactusX && y == GROUND) { setColor(LGREEN); cout << "#"; } else { setColor(WHITE); cout << " "; } } cout << endl; } setColor(GRAY); for (int x = 0; x < WIDTH; ++x) cout << "="; cout << endl; setColor(WHITE); cout << "\n空格跳跃 X 退出"; if (_kbhit()) { char k = _getch(); if (k == ' ' && dinoY == GROUND) { isJumping = true; velY = jumpPower; } if (k == 'x' || k == 'X') break; } if (isJumping) { velY += gravity; dinoY += velY; if (dinoY >= GROUND) { dinoY = GROUND; isJumping = false; velY = 0; } } cactusX--; if (cactusX < 0) { score++; cactusX = WIDTH - (rand() % 10 + 8); if (spd > 30) spd--; } if (cactusX == 5 && dinoY == GROUND) { setColor(LRED); cout << "\n\n===== GAME OVER =====\n"; break; } Sleep(spd); } if (score > high) { setColor(YELLOW); cout << "?? 新纪录!\n"; saveHighScore("dino", score); } waitKey(); } // ==================== 主菜单 ==================== int main() { SetConsoleTitle("C++ 超级小游戏合集"); srand((unsigned)time(NULL)); while (true) { clear(); setColor(LBLUE); cout << "======= C++ 超级小游戏合集 =======\n\n"; setColor(WHITE); cout << " 1 - 贪吃蛇(多食物)\n"; cout << " 2 - 2048\n"; cout << " 3 - 打砖块\n"; cout << " 4 - 猜数字\n"; cout << " 5 - 小恐龙\n"; cout << " 6 - 操作说明\n"; cout << " 7 - 游戏教程\n"; cout << " 0 - 退出\n\n"; cout << "请选择: "; char c = _getch(); switch (c) { case '1': gameSnake(); break; case '2': game2048(); break; case '3': gameBrick(); break; case '4': gameGuess(); break; case '5': gameDino(); break; case '6': showHelp(); break; case '7': showTutorial(); break; case '0': clear(); setColor(LCYAN); cout << "\n再见!\n"; setColor(WHITE); return 0; } } }二战犹太人的经历
#include <iostream> #include <string> #include <cstdlib> #include <ctime> #include <windows.h> using namespace std; int day = 1; int hp = 100; int hunger = 0; int courage = 20; int trust = 30; bool alive = true; bool has_family = true; bool has_friend = false; bool in_school = false; bool is_newsboy = false; bool newsboy_warsaw = false; bool newsboy_paris = false; bool in_paper = false; bool in_smuggle = false; bool uprising = false; bool war_front = false; bool trench = false; bool wounded = false; bool prisoner = false; bool comrade_alive = true; bool escape_to_france = false; bool met_sister_marie = false; bool reached_paris = false; bool paris_resistance = false; bool survived_france = false; // 颜色函数 void color(int c) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c); } void clear() { system("cls"); } void wait(int ms) { Sleep(ms); } void line() { color(8); cout << "-----------------------------------------\n"; color(7); } void hideCursor() { CONSOLE_CURSOR_INFO cci; cci.bVisible = FALSE; cci.dwSize = 1; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci); } void status() { color(10); cout << "========== 二战生存记录 ==========\n"; color(11); cout << "第" << day << "天 | 生命:" << hp << " 饥饿:" << hunger << " 勇气:" << courage << " 信任:" << trust << endl; color(14); cout << "亲人:" << (has_family?"在一起":"失散") << " | 朋友:" << (has_friend?"伊扎克":"无") << endl; color(13); cout << "身份: "; if (is_newsboy) cout << "地下卖报人 "; if (war_front) cout << "前线战士 "; if (reached_paris) cout << "巴黎逃亡者"; cout << endl; color(10); cout << "===================================\n\n"; color(7); } void check_dead() { if (hp <= 0 || hunger >= 100) { clear(); color(12); line(); cout << "你没能熬过黑暗……\n坚持了 " << day << " 天。\n"; color(7); alive = false; system("pause >nul"); exit(0); } } void prologue() { clear(); color(6); line(); cout << "1939年,波兰·华沙。\n你叫莱拉,17岁。纳粹入侵,城市陷落。\n"; cout << "深夜,驱逐开始。混乱中,你与亲人失散。\n"; color(7); has_family = false; hunger += 15; wait(2000); } void become_newsboy() { clear(); status(); line(); color(14); cout << "地下组织找到你:\n"; cout << "『我们需要卖报人——伪装街头卖报,秘密传递抵抗报纸。』\n"; cout << "『一旦被抓,立即枪毙。』\n\n"; color(11); cout << "1. 成为地下卖报人(危险)\n2. 拒绝(安全但无助)\n"; color(7); int c; cin >> c; if (c == 1) { is_newsboy = true; newsboy_warsaw = true; courage += 40; trust += 30; color(10); cout << "\n你穿上旧外套,抱着报纸,走上街头。\n"; cout << "表面叫卖,暗中传递希望。\n"; } else { courage -= 15; color(8); cout << "\n你选择躲藏,在绝望中等待。\n"; } color(7); wait(2000); } void newsboy_action() { if (!is_newsboy) return; clear(); status(); line(); color(14); cout << "你在街头叫卖:『报纸!报纸!华沙最新消息!』\n"; cout << "真正的地下报纸藏在底层。\n"; cout << "纳粹巡逻车经过!\n\n"; color(11); cout << "1. 镇定递报 2. 慌忙藏起\n"; color(7); int c; cin >> c; if (c == 1) { courage += 20; color(10); cout << "\n你骗过纳粹,成功传递情报。\n"; } else { hp -= 20; color(12); cout << "\n你被殴打,报纸被烧毁……\n"; } color(7); check_dead(); wait(1500); } void meet_friend() { clear(); status(); line(); color(10); cout << "少年伊扎克递给你半块黑面包:『一起活。』\n1.接受 2.拒绝\n"; color(7); int c; cin >> c; if (c == 1) { has_friend = true; trust += 40; hunger -= 20; } else { hunger += 25; hp -= 15; } check_dead(); wait(1500); } void secret_school() { clear(); status(); line(); color(14); cout << "加入秘密学校,教孩子读书?1.是 2.否\n"; color(7); int c; cin >> c; if (c == 1) { in_school = true; courage += 25; trust += 20; } wait(1500); } void war_front_line() { clear(); status(); line(); color(12); cout << "1944年,盟军反攻。\n"; cout << "你加入波兰抵抗军,被派往战争前线。\n"; cout << "战壕、炮火、死亡、战友。\n\n"; color(11); cout << "1. 上前线战斗 2. 担任后勤医护\n"; color(7); int c; cin >> c; war_front = true; trench = true; courage += 60; if (c == 1) { color(14); cout << "\n你进入战壕,子弹从头顶呼啸而过。\n"; cout << "战友卡米尔:『跟着我!我们一起回家!』\n"; } else { color(9); cout << "\n你在战地医院救助伤兵。\n"; } color(7); wait(2000); } void trench_battle() { if (!war_front) return; clear(); status(); line(); color(12); cout << "【炮火袭击】德军炮击开始!大地震动!\n"; color(11); cout << "1. 扑向战友 2. 独自隐蔽\n"; color(7); int c; cin >> c; if (c == 1) { color(13); cout << "\n你救下卡米尔,自己被冲击波震伤……\n"; wounded = true; hp -= 30; } else { color(8); cout << "\n卡米尔被炸倒……他牺牲了。\n"; comrade_alive = false; trust -= 40; } color(7); check_dead(); wait(2000); } void prisoner_of_war() { if (!war_front) return; clear(); status(); line(); color(8); cout << "队伍被打散,你被俘了。\n"; cout << "德军战俘营,饥饿、苦役、死亡。\n\n"; color(11); cout << "1. 等待越狱机会 2. 顺从苦役\n"; color(7); int c; cin >> c; prisoner = true; if (c == 1) { color(10); cout << "\n深夜,你与几名战俘挖开土墙,成功逃亡!\n"; prisoner = false; courage += 50; } else { color(12); cout << "\n你在苦役中濒临死亡……\n"; hp -= 40; hunger += 50; } color(7); check_dead(); wait(2000); } void warsaw_uprising() { clear(); status(); line(); color(14); cout << "1943年,华沙起义爆发!\n1.战斗 2.躲藏\n"; color(7); int c; cin >> c; uprising = true; courage += 50; if (c == 1) { color(12); cout << "伊扎克为掩护你牺牲……\n"; color(7); has_friend = false; } wait(2000); } void choice_escape_france() { clear(); status(); line(); color(11); cout << "起义失败。两条生路:\n1. 东欧逃亡 2. 逃亡法国(最危险也最自由)\n"; color(7); int c; cin >> c; if (c == 2) escape_to_france = true; } void france_escape_path() { if (!escape_to_france) return; clear(); status(); line(); color(9); cout << "波兰乡村 → 德国边境 → 法国 → 巴黎\n"; cout << "你躲进煤车,越过边境,九死一生。\n"; color(7); wait(1500); clear(); line(); color(13); cout << "法国修女玛丽:『我藏你去巴黎。』\n"; color(7); met_sister_marie = true; hp += 30; hunger -= 30; wait(1500); reached_paris = true; clear(); line(); color(14); cout << "你抵达巴黎!纳粹占领下的黑暗都市。\n"; color(7); wait(1500); } void paris_newsboy() { if (!reached_paris || !is_newsboy) return; clear(); status(); line(); color(14); cout << "你重新拿起报纸,成为【巴黎地下卖报人】。\n"; cout << "在香榭丽舍街头,你一边叫卖,一边传递抵抗军情报。\n"; cout << "纳粹密探就在人群中……\n\n"; color(11); cout << "1. 冷静传递情报 2. 迅速撤离\n"; color(7); int c; cin >> c; newsboy_paris = true; courage += 40; trust += 30; color(10); cout << "\n你成为巴黎抵抗组织最重要的街头信使。\n"; color(7); wait(2000); } void paris_resist() { if (!reached_paris) return; clear(); status(); line(); color(10); cout << "巴黎抵抗组织邀请你:传递密信、掩护犹太儿童。\n1.加入 2.隐藏\n"; color(7); int c; cin >> c; if (c == 1) { paris_resistance = true; courage += 50; } } void ending() { clear(); line(); color(14); cout << "【1945年 · 战争结束】\n"; color(7); line(); if (alive && reached_paris && paris_resistance && is_newsboy) { color(10); cout << "【传奇结局:街头的信使】\n"; color(11); cout << "你从华沙卖报人,到前线战士,再到巴黎地下英雄。\n"; cout << "你用一份份报纸,传递了黑暗时代最珍贵的东西:真相。\n"; cout << "你活了下来,成为历史的声音。\n"; } else if (alive && war_front && wounded && comrade_alive) { color(10); cout << "【战友结局:从战壕到和平】\n"; color(11); cout << "你与战友卡米尔战后重逢。\n"; cout << "你们一起回到废墟中的华沙,重建家园。\n"; } else if (alive && reached_paris && met_sister_marie) { color(13); cout << "【温暖结局:被拯救者】\n"; color(11); cout << "修女保护了你。你活在自由的巴黎。\n"; cout << "你一生都在传递善意,像她曾经对你那样。\n"; } else if (alive && is_newsboy) { color(14); cout << "【坚守结局:卖报人的一生】\n"; color(11); cout << "你从未放下手中的报纸。\n"; cout << "你见证了暴政的崩溃,见证了光明降临。\n"; } else { color(12); cout << "【苦难结局】\n"; color(8); cout << "你活过了地狱,却永远失去了家园与过去。\n"; cout << "但你没有屈服。你是数百万无声者中的一个。\n"; } color(7); line(); color(10); cout << "这不是游戏。这是一段真实的历史。\n铭记苦难,守护光明。\n"; color(7); line(); } int main() { srand(time(0)); hideCursor(); clear(); color(14); line(); cout << "《暗夜里的星:二战卖报人·战争与逃亡》\n"; line(); color(11); cout << "按回车开始……"; color(7); cin.get(); prologue(); meet_friend(); become_newsboy(); secret_school(); newsboy_action(); warsaw_uprising(); war_front_line(); trench_battle(); prisoner_of_war(); choice_escape_france(); france_escape_path(); paris_newsboy(); paris_resist(); ending(); return 0; }身份认证已通过,巴别塔欢迎你
-
最近活动