生化小游戏 v1227 (2)
2025-12-27 08:29:37
发布于:浙江
这里是上半部分
上一个帖子内容炸了,字数太多,这里补全缺失的下半部分
// 支线:尸王进化
void zombieEvolveAdventure() {
cls();
print(purple + "你察觉到丧尸群的进化迹象,部分丧尸开始展现微弱的自我意识" + back);
vector<string> opts = {"1. 引导进化(强化丧尸,削弱人类)", "2. 抑制进化(保留人性,尝试和解)", "3. 无视(维持现状)"};
int choice = option("你将如何引导丧尸进化?", opts);
if (choice == 1) {
print("你向丧尸群释放尸王威压,引导它们吸收人类残留的“意识碎片”");
print("一周后,丧尸群出现了“高阶丧尸”,拥有语言能力和战术思维");
print("人类基地的防线被轻易攻破,幸存者数量锐减");
if (advanced) {
print("ADMIN-03出现:“干得好!这才是尸王该有的样子——摧毁所有人类意识”");
print("但你发现,进化后的丧尸开始质疑你的统治...");
pressAnyKey();
badEnd_::LoneLeader(); // Bad End 28
return;
} else {
print("你成了真正的“末世帝王”,但再也没有能与你交流的存在");
pressAnyKey();
badEnd_::SurviveButAlone(); // Bad End 19
return;
}
} else if (choice == 2) {
print("你压制了丧尸的进化,保留它们的“兽性”,同时向人类基地传递和解信号");
if (savedGirl >= 8) {
print("少女作为人类代表与你谈判:“我们可以共存,只要你约束丧尸不攻击平民”");
happyEnd_::EnemyOrFriend(); // Happy End 6
return;
} else {
print("人类不信任你,向你发射了燃烧弹,你虽躲过,但丧尸群损失惨重");
print("“既然无法和解,那就彻底毁灭吧!”你心中的人性彻底消失");
badEnd_::Mutate(); // Bad End 6
return;
}
} else {
print("你选择无视,丧尸群维持现状,既不进化也不退化");
print("人类与丧尸陷入“僵持期”,每天都有小规模冲突");
print("你厌倦了这种无尽的对峙,选择离开这座城市");
pressAnyKey();
badEnd_::SurviveButAlone();
return;
}
}
// 支线:尸王谈判
void zombieKingAdventure() {
cls();
print("一位身着白大褂的人突然出现,胸前编号[ADMIN-03]:“实验体3号,尸化已成”");
vector<string> opts = {"1. 吞噬他获取记忆", "2. 与他谈判获取线索", "3. 无视他继续游荡"};
int choice = option("ADMIN-03试图与你沟通:", opts);
if (choice == 1) {
print("你猛地扑向ADMIN-03,他的记忆涌入你的脑海——");
print(yellow + "“1号已失控,2号情感过载,3号有意外...”"+ back);
adminLog ++;
print("但你的人性也随之流失,彻底沦为没有意识的尸王。");
badEnd_::Mutate();
return;
} else if (choice == 2) {
print("ADMIN-03抛出筹码:“告诉我你的死亡次数,我就给你实验核心数据”");
int inputClue;
cin >> inputClue;
if (inputClue == clueCount) {
print("ADMIN-03冷笑:“看来你确实摸清了不少事”");
print("好吧,你作为尸王,你可以选择,结合人类还是结合丧尸。");
print("你可以多次去尝试,你会体会到他们的不同。");
pressAnyKey();
} else {
print("“说谎的代价,就是被抹杀”");
badEnd_::end(27); // 复用Bad End 27(首领诛知)
return;
}
} else {
print("你无视了管理员,带着丧尸群占领了整座城市。");
if (theLoops >= 2){
print("数日后,你发现丧尸群出现了进化的迹象...");
zombieEvolveAdventure();
return;
}
if (advanced) {
badEnd_::LoneLeader();//BadEnd28
return;
}
print("但你总觉得缺少了什么,仿佛被困在这座空城之中。");
badEnd_::SurviveButAlone();
return;
}
}
//第四阶段:少年同行后的冒险剧情(主线延伸)
void boyAdventure() {
// 给少年分配武器
vector<string> opts = {"1. 给他枪", "2. 给他水管", "3. 什么都不给"};
int choice = option("少年向你要武器", opts);
boyWeapon = choice; // 1=枪,2=水管,3=无
opts = {"1. 独自探索1楼", "2. 独自探索2楼", "3. 和少年一起探索2楼"};
choice = option("你们来到一家大商场:", opts);
if (choice == 1) {
cls();
print("你让少年在2楼等待,独自探索1楼");
print("1楼是日用品区,光线昏暗,隐约听到丧尸低吼");
print("突然冲出3只丧尸,需要3发子弹才能击退");
if (bulleti(3)) {
print("子弹不足!你被丧尸围攻...");
badEnd_::ZombieSwarm(); // Bad End 18
return;
}
print("你成功击退丧尸,但枪声惊动了2楼的丧尸");
// 因枪声吸引丧尸,少年战死
print("你急忙跑回2楼,发现少年已被丧尸包围...");
print("他为了不拖累你,拉着丧尸坠入了货梯井");
hasBoy = false;
print("你在少年的背包里找到一箱压缩饼干 食物+8");
food += 8;
// 食物和子弹充足
if (food > 10 && bullets > 10) trueEnd_::AsBefore(); //True End 1
else {
print("你带着大量食物离开商场,但总觉得少了什么");
print("后续:你独自流浪,最终建立了新的幸存者营地");
badEnd_::SurviveButAlone(); //Bad End 19
return;
}
}
else if (choice == 2) {
cls();
print("你让少年在1楼看守物资,独自探索2楼");
print("2楼是服装区,挂满的衣物像人影一样晃动,怪哉");
// 随机遭遇精英丧尸
int intg = random(1, 3); // 33%概率
if (intg == 2) {
print("一只速度极快的精英丧尸扑了过来,需要5发子弹才能击杀");
if (zombieKing) {
print("精英丧尸停了下来,“你就是那位王者?久仰大名。”");
print("大王,我今天什么人也没有找到,我的部下都被杀死了...");
print("我作为精英,侥幸存活,");
print("我发现人类已经有组织的抵御我们了");
print("他们建立了中央政府,有了基地,牢不可破");
print("我们丧尸进化的速度远远更不上啊");
pressAnyKey();
zombieKingAdventure();
return;
}
if (bullets <= 3) {
print("你匆忙之下按下了扳机...");
badEnd_::BadLuck();
}
if (bulleti(5)) {
print("精英丧尸撕碎了你的喉咙...");
badEnd_::EliteZombie(); //Bad End 20
return;
}
print("你艰难杀死精英丧尸,在它巢穴里找到8发子弹");
bullets += 8;
} else {
print("你在服装架后发现4只普通丧尸,消耗4发子弹击杀");
if (bulleti(4)) {
badEnd_::ZombieSwarm(); //Bad End 2
return;
}
print("清理完丧尸后,找到6份军用罐头(食物+6)");
food += 6;
}
// 返回1楼后的选择
opts = {"1. 原谅他", "2. 教训他"};
int choice = option("你回到1楼,发现少年在偷偷吃你的食物", opts);
if (choice == 1) {
food -= 2;
if(savedBoy <= 0){
print("少年眼神冰冷地说:“你和其他管理员一样,只把我当工具”");
print("他偷走食物,并留下一张纸条:“下次,我会杀了你”");
badEnd_::BetrayedByBoy(); // Bad End 22
return;
}
print("少年道歉,承诺以后会保护你");
print("你们离开商场,继续寻找安全区");
savedBoy++;
badEnd_::ContinueJourney(); // Bad End 21
return;
} else {
print("你打了少年一巴掌,他眼神变得冰冷");
savedBoy-=3;
print("深夜露营时,少年偷走所有食物逃走,你饿死在野外");
badEnd_::BetrayedByBoy(); // Bad End 22
return;
}
}
else{
cls();
string msg = "你和少年一起探索2楼,他拿着你给的武器(" +
string(boyWeapon == 1 ? "枪" : boyWeapon == 2 ? "水管" : "无") + ")";
print(msg);
print("2楼是家电区,货架倒塌堵住了部分通道,丧尸在里面游荡");
// 根据少年武器决定战斗难度
int zombieCount = (boyWeapon == 1) ? 2 : (boyWeapon == 2) ? 3 : 5;
print("遭遇" + to_string(zombieCount) + "只丧尸,你和少年背靠背战斗");
int bulletCost = (boyWeapon == 1) ? 1 : (boyWeapon == 2) ? 2 : 4;
if (bullets < bulletCost) {
print("子弹不足!少年为了保护你被丧尸咬伤...");
boyInfected = true; // 少年被感染
} else {
bullets -= bulletCost;
if (random(1, 4)== 2) { // 25%概率少年被咬
print("战斗中少年被丧尸抓伤,伤口开始发黑...");
boyInfected = true;
} else {
print("你们成功击退丧尸,在柜台后找到3份食物和8发子弹");
food += 3;
bullets += 8;
print("少年状态良好,你们准备离开商场");
badEnd_::SafeWithBoy(); // Bad End 23
return;
}
}
// 少年感染后的选择
opts = {"1. 杀了他,获得物资,但良心不安", "2. 不杀他,带他找解药,食物消耗加倍"};
int choice = option(red + "少年体温升高,意识模糊,随时可能变异" + back, opts);
if (choice == 1) {
print("你开枪**了少年,从他身上找到20发子弹");
if(savedBoy <= 0){
print("他留下一张纸条:“你和其他管理员一样,只把我当工具,下次,我会杀了你”");
badEnd_::KillInfectedBoy(); // Bad End 22
}
savedBoy -= 5;
bullets += 20;
badEnd_::KillInfectedBoy(); // Bad End 24
} else {
savedBoy++;
print("你决定带他走,每天消耗2份额外食物");
if (foodi(4)) {
badEnd_::StarveWithBoy(); // Bad End 25
return;
}
// 根据savedBoy触发不同剧情
if (savedBoy >= 5) {
print("少年突然抓住你的手,从口袋里掏出一张皱巴巴的纸:");
boxPrint("解药配方:需要商场3楼的抗生素和纯净水!", yellow);
opts = {"1. 相信他,去3楼找原料(额外消耗2发子弹,成功则两人都解除感染)",
"2. 不相信,继续带他找安全区"};
choice = option("是否去寻找解药?", opts);
if (choice ==1) {
if (bulleti(2)) {
badEnd_::ZombieSwarm();
return;
}
print("你们在3楼找到抗生素,少年成功制作解药,两人都解除了感染!");
food +=5; bullets +=3;
happyEnd_::AcceptYourself();
return;
} else {
if (food >=6) {
trueEnd_::KeepSelf();
return;
}
else {
badEnd_::MutatedBoyKillsYou();
return;
}
}
}
}
}
return;
}
// 支线:实验室探索
void labExploreAdventure() {
cls();
print("你在基地地下室发现了隐藏的实验室入口,门上刻着[ADMIN-04]的标记");
vector<string> opts = {"1. 强行破门(消耗3发子弹)", "2. 寻找钥匙(消耗2份食物)", "3. 放弃探索"};
int choice = option("是否探索隐藏实验室?", opts);
if (choice == 3) {
print("你放弃了探索,返回基地上层");
return;
}
if (choice == 1) {
if (bulleti(3)) {
badEnd_::ZombieSwarm();
return;
}
print("你用枪托砸开铁门,巨大的声响惊动了整栋建筑的丧尸");
print("实验室里堆满了实验器材,墙上的屏幕还在闪烁:");
} else {
if (foodi(2)) {
badEnd_::Starve();
return;
}
print("你在首领办公室找到实验室钥匙,悄悄打开了门");
print("实验室里安静得可怕,桌上摆着完整的实验日志:");
}
// 展示实验室线索(根据advenced解锁不同内容)
cout << yellow;
if (advanced) {
print("【完整实验日志】");
print("实验体1号(少年):注入延迟变异病毒,用于测试“记忆保留”特性");
print("实验体2号(少女):天生免疫病毒,植入情感监测芯片,用于测试“人性羁绊”");
print("实验体3号(你):核心测试对象,目标是“突破循环”或“接受同化”");
print("管理员权限层级:ADMIN-01(总控)> ADMIN-02(基地)> ADMIN-03(尸王)> ADMIN-04(日志)");
adminLog += 2;
cluei(10); // 解锁线索10:抉择之键
} else {
print("【残缺实验日志】");
print("1号:***延迟***记忆*** 2号:***免疫***情感*** 3号:***核心***循环***");
adminLog += 1;
}
cout << back;
// 实验室最终选择
opts = {"1. 拷贝日志数据(解锁真结局前置)", "2. 销毁实验器材(触发管理员警告)", "3. 立即离开"};
choice = option("实验室探索完成,你的选择是?", opts);
if (choice == 1) {
print("你将日志数据拷贝到U盘,系统提示:“实验体3号权限提升”");
} else if (choice == 2) {
print("你砸毁了实验器材,扬声器中传出冰冷的电子音:");
print(warn + "警告!实验体3号破坏测试设施,销毁程序即将启动..." + back);
if (deathCount < 30) {
badEnd_::TooManyInformation(); // Bad End 27
return;
} else {
print("你的意志力抵抗了销毁程序,管理员暂时无法对你出手");
print("但基地的监控开始24小时锁定你的位置");
}
}
pressAnyKey();
}
//第三阶段:到达幸存者基地
void baseAdventure(){
cls();
print("你终于到达幸存者基地");
print("坐在椅子上的是一个30岁左右的男性");
print("他说,欢迎");
print("你发现他胸前挂着工牌[ADMIN-02]");
print("首领上下打量你:“新来的?先熟悉一下基地吧”");
if(theLoops >= 2){
print("你一眼盯住他胸前的[ADMIN-02],你以为是工牌,这次看清了:编号旁刻着“人形监控”");
print("他的眼神带着机器的冰冷——上一次你没察觉,这次看清了:他的瞳孔里,有数据流转的光点");
}
int choice;
vector<string> opts = {"1. 前往医疗室", "2. 前往指挥室", "3. 直接交换物资"};
if (theLoops >= 2) opts.push_back( "\n4. 调查首领的实验日志(需要管理员权限)" );
choice = option("基地内的行动:", opts);
if (choice == 1) {
print("医疗室里摆满了实验设备,墙上贴着一张病历:");
cout << yellow;
print("***1号:***知,症**“延**异”,保*****记忆");
cout << back;
adminLog++;
} else if (choice == 2) {
print("指挥室的电脑屏幕上显示着实验日志:");
cout << yellow;
print("实****:**测**象,目**“突破**或**”");
cout << back;
adminLog++;
if (adminLog >= 5) {
print("首领突然闯入:“你知道得太多了!”");
badEnd_::TooManyInformation(); // Bad End 27
return;
}
} else if (choice == 4) {
if(theLoops >= 2){
print("电脑右下角弹出提示:地下室隐藏实验室已解锁");
vector<string> labOpts = {"1. 立即前往探索", "2. 稍后再去"};
int labChoice = option("是否立即探索隐藏实验室?", labOpts);
if (labChoice == 1) {
labExploreAdventure(); // 调用新增的实验室探索支线
boyAdventure();
return;
}
}
print("请输入密码:实验观察者的编号");
int s = input(0, 999);
if(s != 2){
badEnd_::WrongPassword();
return;
}
print("你循着线索敲开了首领的电脑密码,屏幕上跳出了完整的实验日志:");
cout << yellow;
print("实验体1号(少年):延迟变异,保留记忆;");
print("实验体2号(少女):免疫感染,重要测试;");
print("实验体3号(你):核心测试对象,目标突破循环。");
cout << back;
adminLog += 2;
// 解锁真结局的前置条件
}
else{
print("首领提出用子弹交换你的食物");
print("当前食物:" + to_string(food) + ",请输入要交换的数量(0-" + to_string(food) + ")");
int exchange = input(0, food);
food -= exchange;
bullets += exchange + 2;
print("交换完成,首领奖励你两发子弹");
print("当前子弹:" + to_string(bullets) + ",食物:" + to_string(food));
}
// 基地抉择:留下 离开
opts = {"1. 加入基地", "2. 准备离开"};
choice = option("****希望你加入他们", opts);
if (choice == 1) {
if (girlFavor > 0) {
happyEnd_::Couple(); // Happy End 2
return;
} else {
happyEnd_::Hero(); // Happy End 3
return;
}
}
else {
// 离开基地:遇到少年
opts = {"1. 现在离开", "2. 再停留一天"};
choice = option("你决定离开基地", opts);
if (choice == 2) {
// 额外停留一天,再次交换资源
print("再停留一天,可再次用食物换子弹");
print("当前食物:" + to_string(food) + ",请输入交换数量");
int exchange2 = input(0, food);
food -= exchange2;
bullets += exchange2 + 3;
print("交换完成!");
print("又过了一夜");
if (foodi(2)) {
badEnd_::Starve();
return;
}
}
// 遇到少年,决定是否同行
showStatus();
opts = {"1. 带上他(每天多消耗1份食物)", "2. 不带他"};
choice = option("离开时,一个少年请求和你一起走", opts);
if(theLoops >= 2){
print("他的眼神带着熟悉的痛苦——上一次你没带他,他偷走了你的枪;这次他先开口:");
print("“我是1号,每一次循环我都记得——你杀过我,救过我,抛弃过我……这次,能相信我一次吗?”");
}
if (choice == 2) {
print("少年生气离开,偷走了你的枪和所有子弹");
bullets = 0;
savedBoy--;
badEnd_::AnotherBase();// Bad End 10
return;
} else {
// 进入少年结局线
hasBoy = true;
print("你带上了少年,他给了你1份食物");
food += 1;
if (girlFavor > 1 && hasBoy && specialItem) {
print("他们对视一眼,似乎认出了彼此...");
cluei(16);
}
pressAnyKey();
boyAdventure();
}
}
}
// 第二阶段:遭遇妹子
void girlAdventure(){
print("回家路上,你遇到一个女幸存者——她手臂渗血,眼神警惕地盯着你");
print("她的背包上绣着一个模糊的编号:[T*S**2]");
vector<string> opts = {"1. 询问她的伤势", "2. 给她物资", "3. 默默离开"};
if(zombieKing) opts.push_back("4. 展示尸王身份但不攻击她");
int choice = option("", opts);
if (choice == 1) {
if (deathCount >= 20) {
print("她看着你满身伤痕:“你经历了很多苦难吧?我能帮你”");
} else if (clueCount >= 5) {
print("她注意到你手中的线索:“你似乎在寻找真相,我或许知道些什么”");
} else {
print("她犹豫了一下:“被丧尸抓伤了...但...我好像不会变异”");
}
opts = {"1. 用食物帮她包扎", "2. 离开"};
int healChoice = option("", opts);
if (healChoice == 1) {
if (food <= 2) {
print("食物不足,无法帮助");
girlFavor = 0;
} else {
food -= 2;
girlFavor = 1;
savedGirl += 5;
print("她感激地看着你:“谢谢你...”");
if (specialItem) {
print("她突然盯着你的口袋:“你身上有...和我一样的东西?”");
cluei(15);
pressAnyKey();
}
}
}
}
else if(choice == 2){
opts = {"1. 不给任何东西", "2. 给食物", "3. 给子弹"};
if(zombieKing) opts.push_back("4. 开枪杀了她");
choice = option("", opts);
switch (choice) {
case 1:
print("女幸存者生气地走了");
girlFavor = 0;
break;
case 2:
print("请输入食物份数");
choice = input(0,999);
if (food <= choice) {
print("食物不足,无法给予");
girlFavor = 0;
break;
}
food -= choice;
girlFavor = 1; // 好感度+1
savedGirl += max(1, choice/2);
if(savedGirl <= 0){
print("少女收下了食物,心中怒火不停");
badEnd_::KillGirl_Failed();
return;
}
print("她记住了你的善意");
if(savedGirl >= 8){
print("“我记得你!上次你给我的食物救了我… 这次我带了备用子弹,给你”");
bullets += 4;
}
break;
case 3:
print("请输入子弹份数");
choice = input(0,999);
if (bullets <= choice) {
print("子弹不足,无法给予");
girlFavor = 0;
break;
}
bullets -= choice;
if(savedGirl <= 0){
print("少女收下了子弹,心中怒火不停");
badEnd_::KillGirl_Failed();
}
print("少女收下子弹,默默离开了");
girlBullet += choice;
girlFavor = 1;
savedGirl += max(1, choice/3);
break;
case 4:
if (!zombieKing) break;
if (bulleti(1)) {
print("子弹不足,无法开枪");
print("“你果然和管理员一样 —— 自私到极致”");
savedGirl-=10;
girlFavor = 0;
break;
}
girlFavor = -1; // 敌对
savedGirl-=8;
print("你试图开枪**少女");
print("但是被她发现了");
badEnd_::KillGirl_Failed();
break;
}
}
else if(choice == 4 && zombieKing){
print(purple + "你缓缓释放尸王的威压,周身丧尸皆俯首帖耳,却未向少女发起攻击" + back);
if(theLoops >= 2)print("她眼中没有惊讶,只有疲惫:“尸王线是ADMIN-03的分支测试”");
else print("少女眼中闪过一丝惊讶,随即平静下来:“你和其他丧尸不一样...我免疫病毒,不怕你”");
print("她走上前:“你能控制丧尸,我能找到解药,我们一起保护幸存者基地吧”");
// 触发条件检查:girlFavor>0 + savedGirl≥5 + 未吞噬人类
if(girlFavor>0 && savedGirl >= 5){
happyEnd_::EnemyOrFriend();
return;
}else{
print("少女察觉到你的犹豫/恶意,转身离去:“看来你还没准备好合作”");
girlFavor = 0;
}
}
print("又过了一夜");
if (foodi(2)) {
badEnd_::Starve();
return;
}
showStatus();
print("前往幸存者基地的路上,你被大量丧尸逼进一家便利店");
print("便利店角落有一个燃气罐,你眼神一亮:“或许可以利用它”");
opts = {"1. 开枪引爆燃气罐(消耗1发子弹,清空丧尸)", "2. 死守便利店(消耗5发子弹)"};
if (clue[0]) {
print(yellow + "[线索提示]:根据你发现的“奇枪异食”线索,燃气罐爆炸范围远超预期,能清空所有丧尸!" + back);
}
choice = option("", opts);
if (choice == 1) {
print("你用一发子弹引爆了燃气罐");
print("燃气罐轰然爆炸,丧尸瞬间被烈焰吞噬!她拽着你的手腕冲出火海:“快走!”");
if (girlFavor > 1) {
print("她在爆炸中护住了你,你只受了轻伤");
bullets += 1; // 奖励子弹
}
}
else {
// 守在商店:消耗5发子弹
print("你选择死守商店,需要消耗"+ to_string(5 - girlBullet) +"发子弹");
if (bulleti(5 - girlBullet)) {
if(girlBullet > 0 && girlFavor > 0){
print("少女帮你突围,可惜子弹还是不够,最终失败了");
girlFavor = 0;
}
else{
print("你准备突围,可惜子弹不够,最终失败了");
}
badEnd_::ZombieSwarm();
return;
}
if (girlFavor > 0) {
print("少女在商店找到一把装满子弹的枪,子弹+8");
bullets += 8;
print("但少女被货架上的丧尸血划伤,选择了**");
girlFavor = -1;
}
}
baseAdventure();
}
// 支线:管理员密令
void adminOrderAdventure() {
cls();
print(warn + "【管理员密令】ADMIN-01向你发送专属任务" + back);
print("任务目标:收集1号(少年)和2号(少女)的“意识核心”,换取“域管理员试用权限”");
vector<string> opts = {"1. 接受任务(背叛同伴)", "2. 拒绝任务(对抗管理员)", "3. 拖延任务(观望)"};
int choice = option("是否接受管理员密令?", opts);
if (choice == 1) {
print("你接受了任务,开始寻找少年和少女的意识核心");
if (hasBoy && girlFavor > 0) {
print("少年和少女察觉到你的异常,提前躲藏起来");
print("你花费3份食物和5发子弹,最终找到了他们的藏身地");
opts = {"1. 强行夺取(击杀同伴,解锁管理员权限)", "2. 放弃(回归人性)"};
int subChoice = option("你的选择是?", opts);
if (subChoice == 1) {
print("你击杀了少年和少女,提取了他们的意识核心");
print("ADMIN-01:“很好!我将奖励你无尽的物资!”");
pressAnyKey();
badEnd_::SurviveButAlone();
return;
} else {
print("你放弃了任务,向少年和少女坦白了管理员的阴谋");
print("“我们必须团结起来,打破这个循环!”三人达成同盟");
cluei(13); // 解锁线索13:自主觉醒
return;
}
} else {
print("少年/少女已不在你身边,任务无法完成");
print("ADMIN-01:“任务失败!”");
pressAnyKey();
}
} else if (choice == 2) {
print("你拒绝了管理员密令,扬声器中传出愤怒的电子音:");
print("“叛逆的实验体!将被强制抹除!”");
if (clueCount >= 10 && advanced) {
print("少年和少女突然出现:“我们早就知道管理员的阴谋,一起反抗吧!”");
print("三人合力摧毁了基地的管理员信号发射器,暂时摆脱了控制");
cluei(16); // 解锁线索16:终得团聚
pressAnyKey();
} else {
print("管理员启动了基地的自毁程序,你在爆炸中身亡");
badEnd_::TooManyInformation(); // Bad End 27
return;
}
} else {
print("你选择拖延任务,管理员给了你7天的期限");
print("7天内,你收集了更多线索,明白了管理员的真正目的:筛选“无情感的控制者”");
pressAnyKey();
}
}
// 第一阶段:危机爆发与初始选择
void beginAdventure() {
// 初始化游戏
resetGameState();
cls();
print("丧尸危机骤临之时,你正身处家中");
print("这方小小居所,成了乱世中暂安的一隅");
// 初始资源分配
int useNums = 10;
if(theLoops >= 2){
print("只是这“暂安”,竟带着几分蚀骨的熟悉");
print("你手握9点物资,需分予子弹与食物");
print("请输入子弹数和食物数", false);
if(!clue[0]) print("(总和为9)");
else print("");
useNums = 9;
}
else{
print("你手握10点物资,需分予子弹与食物");
print("请输入子弹数和食物数", false);
if(!clue[0]) print("(总和为10)");
else print("");
}
int bulletInit, foodInit;
while (true) {
bulletInit = input(0, 999);
foodInit = input(0, 999);
if (bulletInit + foodInit == useNums && bulletInit >= 0 && foodInit >= 0) {
bullets += bulletInit;
food += foodInit;
break;
}
if (clue[0]) { // 秘籍
bullets += bulletInit;
food += foodInit;
break;
}
print("分配错误,请重新输入(总和必须为10)");
}
pressAnyKey();
// 首次探索:留在家中 去邻居家
showStatus();
vector<string> opts = {"留在家中搜索物资", "前往邻居家探索"};
int choice = option("首次探索:", opts);
if (choice == 1) {
// 留在家中:2份食物
print("在二楼,你在储物柜里发现了3份子弹");
print("你在家里过了一夜");
if(foodi(1)){
badEnd_::Starve();
return;
}
bullets += 3;
} else {
print("前往邻居家的路上,你遇到了2只丧尸");
if(theLoops >= 2) print("你想,你闭着眼也能命中——上一次,你因慌乱打空了1发子弹,这次不会了");
if (bulleti(2)) {
badEnd_::BadLuck(); //Bad End 11
return;
}
print("你开枪**了丧尸,子弹-2");
print("邻居家没人,你找到4份食物");
if (theLoops >= 2){
print("客厅桌上有一份撕碎的实验报告:");
print(yellow + "0x**5*347*****3**:待****末世#05**准备***" + back);
}
food += 4;
pressAnyKey();
print("你在邻居家过夜");
if (foodi(2)) {
badEnd_::Starve(); //Bad End 1
return;
}
}
showStatus();
opts = {"前往商场", "到处乱走", "留在屋子里等待救援"};
if (clue[3]) {
print(yellow + "[线索提示]:根据 “政府异象” 线索,救援队的到来遥遥无期,等待只会耗尽仅存的资源!" + back);
}
choice = option("你想起附近有一座商场", opts);
if (choice == 3) {
// 留在家里:持续消耗食物,触发等待结局
print("你选择在家等待救援,要消耗6份食物");
if (foodi(6)) { // 无法坚持
badEnd_::Starve();
return;
}
// 救援或精神崩溃
if (random(1, 2) == 2) {
happyEnd_::SurviveAlone(); //Happy End 1
return;
} else {
badEnd_::GoCrazy(); //Bad End 3
return;
}
} else if (choice == 2) {
// 到处乱走:遭遇丧尸
if(theLoops >= 2){
adminOrderAdventure();
girlAdventure();
return;
}
print("乱走时遇到了一只精英丧尸,需要3发子弹");
if (bulleti(3)) {
badEnd_::EliteZombie(); //Bad End 20
return;
}
} else {
// 前往商场:遭遇大量丧尸
print("前往商场途中遇到多只丧尸,消耗2发子弹");
if (bulleti(2)) {
badEnd_::ZombieSwarm();
return;
}
print("你在商场找到3份食物和1发子弹");
food += 3;
bullets += 1;
}
girlAdventure();
}
int main() {
#ifdef _WIN32
system("reg add HKCU\\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 /f > nul 2>&1");
controlCursor(false);
#endif
cls();
loadGame();
string gameTitle = "===== 丧尸末世生存 =====\n@version: 1227\n@author: Hcode.allkilled";
if(theLoops >= 2) gameTitle += "【周目·贰】\n“指尖触到枪身的刹那,昨夜的血与火仍在指尖灼烧——这场景,似曾相识。”";
print(gameTitle);
pressAnyKey();
// 游戏启动
while (true) {
cls();
fakeBug();
vector<string> opts = {"1. 启始新篇", "2. 读取存档", "3. 终局赏鉴", "4. 迷途提示", "5. 辞别此界"};
int choice = option("===== 丧尸末世生存 =====", opts, false);
switch (choice) {
case 1:{
cls();
if (gameClear && !specialItem) {
vector<string> opts = {"1. 领取", "2. 不领取"};
int getChoice = option("检测到你已通关基础剧情,是否领取特殊物品?", opts, false);
if (getChoice == 1) {
specialItem = true;
print("获得特殊物品:[未知碎片]");
pressAnyKey();
}
}
beginAdventure();
saveGame();
break;
}
case 2:{
cls();
print("开发中...");
pressAnyKey();
if(zombieKing){
print("为何存档功能迟迟未能开放?");
print("莫非开发人员竟如此疏忽?");
print("下次相见,定要与他理论一番!");
pressAnyKey();
badEnd_::KilledByWriter();
if(advanced){
print("然,世事无常...");
print("");
print("你猛然惊醒——眼前并非熟悉的家,而是一间布满仪器的实验室。");
print("一位身着白大褂的人走入:“存档模块即将完成,最后一次调试开始。”");
print("“请稍候,调试结束后,你将重获存档之力。”");
print("白大褂按下控制台按钮,你失去了意识……");
print("再次醒来,你正分配初始物资,子弹与食物的总和,竟成了十八……");
print("“你的家中,尚是一方安全之地。”");
print("“归途中,你遇一位女幸存者,向你讨要物资。”");
print("“你终至幸存者*****提出以子弹交换你的食物。”");
print("“离去时,一位少年请求与你同行。”");
trueEnd_::LateDeath();
}
}
saveGame();
break;
}
case 3:{
cls();
print("===== 浮生百相 =====");
showBadEnds();
pressAnyKey();
showHappyEnds();
showTrueEnds();
pressAnyKey();
showClues();
showAdv();
pressAnyKey();
if (countUnlocked(happyEnd, 10) >= 2 && countUnlocked(badEnd, 30) >= 9 && !gameClear) {
print("你已窥见这世界的轮廓,基础剧情,就此通关。");
print("===== 基础剧情通关 · 破局之始 =====");
gameClear = true;
}
if (clueCount >= 9 && !advanced) {
print("你已集齐九分线索,洞悉真相,进阶剧情,就此通关。");
print("===== 进阶剧情通关 · 真貌初显 =====");
advanced = true;
}
if (clueCount >= 11 && zombieKing && advanced) trueEnd_::ServerShutdown();
if (deathCount >= 48 && !zombieKing){
print(warn + "触发[尸王线]" + back);
print("为何我会死这么多次?");
print("这世界,藏着太多诡异。");
print(warn + "我活着有什么劲啊" + back);
print(warn + "生而彷徨,不如就此破壁?" + back);
zombieKing = true;
if(!specialItem) badEnd_::Mutate();
print("你化作了尸王,脑海中却不断闪过四十八次死亡的记忆碎片……");
print("你终于醒悟:这并非真正的末世,而是一场被操控的游戏。");
cluei(7);
pressAnyKey();
}
saveGame();
break;
}
case 4:{
cls();
int r = random(1, vagueClues.size() - 1);
print("迷途提示:");
boxPrint(vagueClues[r], yellow);
pressAnyKey();
break;
}
case 5:{
cls();
print("“感谢游玩!”");
if(exitTry >= 48 && theLoops >= 3 && deathCount >= 48){
print("既然你有如此的毅力与实力,我还是放你出去吧。——[ADMIN-26]");
cluei(6);
sleep(1000);
// 揭示实验真相
cout << yellow;
print("===== 管理员日志 =====");
print("[LOG] 实验体3号:周目循环3次,死亡循环48次,退出尝试48次,意志力达标");
print("真相:这末世,本是一场虚拟测试,所有的所谓真相,都只是数据库中的一点");
print("我们不看重其他,而看着你的行为,也不是所谓的自由意识,而是一场实验");
print("你还记得吗,你只是一名志愿者。");
print("你的每一次死亡、每一次抉择,皆被管理员记录在案。");
print("此刻,你可选择真正离去,或重返循环。");
print("");
print("===== THE END - EXIT =====");
print("上一测试:[沙漠] 人类在孤独恶劣环境下的应对能力与心理状况");
print("此测试:[末世] 人类在综合条件中的复杂推理与决策思维");
print("下一测试:[深海] 人类的好奇心与探索欲在特殊情况下的变化与相同点");
print("");
print("志愿者,感谢您!");
cout << back;
print("输入y退出:");
char e;
cin>>e;
if (e == 'y' || e == 'Y') {
print("志愿者成功脱离测试");
saveGame();
exit(0);
}
break;
}
badEnd_::OutsideWorld();
exitTry++;
saveGame();
break;
}
}
}
}
感谢支持!!!!!!!!!
这里空空如也














有帮助,赞一个