#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
// 全局变量定义 增加注释 避免混淆
int sleeptime=40,kaishi=0,shiqu=0,yuedu=0,kaihe=0,jixumosuo=0,yincang,temp,zidan_ka=0,danjia_ka=0,bengdai=0,shangkou=0;
bool wupin[10],qiang_ka=false,wunangensui=false;
// 物品索引:0-手电筒 1-电池 2-电池 3-电池 4-压缩饼干 5-纯净水 6-蜡烛 7-火柴 8-胶水 9-剪刀
// 成就和线索定义(扩展数组长度,方便后续添加更多内容)
bool chengjiu[30]={false};  // 成就数组 初始全未解锁
bool putongxiansuo[30]={false};  // 普通线索数组
bool jingjiexiansuo[30]={false}; // 进阶线索数组
const string SAVE_FILE="game_save.txt";  // 存档文件路径
// 函数声明
void jinru();
void slow(string s);
void Cin(int &a, int b, int c);
string math_to_string(int n);
void check();
void zhandou(int zidan,int shang,int hude);// 移除冲突的局部变量
void game();
void clear();
void clean();
void load_save();  // 读取存档函数
void save_progress();  // 保存进度函数
void unlock_chengjiu(int index, const string& name);  // 解锁成就函数
void unlock_xiansuo(bool* xiansuo_arr, int index, const string& name, const string& type);  // 解锁线索函数
// 慢速输出函数
void clean(){
    system("cls");
    return ;
}
void clear(){
    Sleep(1000);
    system("cls");
    return ;
}
void slow(string s){
    for(int i=0;i<s.size();i++){
        cout<<s[i];
        Sleep(sleeptime);
    }
}
// 安全输入函数(修复cin错误状态)
void Cin(int &a, int b, int c){
    while(true){
        // 清除cin错误状态并忽略无效输入
        if(!(cin >> a)){
            cin.clear(); // 重置cin状态
            cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略剩余输入
            slow("输入无效,请输入数字!\n");
            continue;
        }
        if(a<b||a>c){
            slow("请重新输入(范围:" + math_to_string(b) + "-" + math_to_string(c) + ")\n");
        }else{
            break;
        }
    }
}
// 数字转字符串(修复0的边界情况)
string math_to_string(int n){
    if(n == 0) return "0"; // 处理0的情况
    string s;
    while(n!=0){
        s += n%10 + '0';
        n /= 10;
    }reverse(s.begin(), s.end()); // 简化反转逻辑
    return s;
}
// 读取存档函数
void load_save() {
    ifstream file(SAVE_FILE);
    if (!file.is_open()) {
        // 如果存档文件不存在,创建新文件并初始化
        slow("未检测到存档文件,创建新存档......\n");
        save_progress();
        return;
    }
    // 读取成就状态
    string line;
    if (getline(file, line)) {
        for (int i = 0; i < min((int)line.size(), 10); i++) {
            chengjiu[i] = (line[i] == '1');
        }
    }// 读取普通线索状态
    if (getline(file, line)) {
        for (int i = 0; i < min((int)line.size(), 10); i++) {
            putongxiansuo[i] = (line[i] == '1');
        }
    }// 读取进阶线索状态
    if (getline(file, line)) {
        for (int i = 0; i < min((int)line.size(), 10); i++) {
            jingjiexiansuo[i] = (line[i] == '1');
        }
    }file.close();
    slow("存档读取成功!\n");
    Sleep(1000);
}
// 保存进度函数
void save_progress() {
    ofstream file(SAVE_FILE);
    if (!file.is_open()) {
        slow("存档保存失败!\n");
        return;
    }// 写入成就状态(1=解锁,0=未解锁)
    for (int i = 0; i < 10; i++) {
        file << (chengjiu[i] ? '1' : '0');
    }file << endl;
	// 写入普通线索状态
    for (int i = 0; i < 10; i++) {
        file << (putongxiansuo[i] ? '1' : '0');
    }file << endl;
	// 写入进阶线索状态
    for (int i = 0; i < 10; i++) {
        file << (jingjiexiansuo[i] ? '1' : '0');
    }
    file << endl;

    file.close();
    slow("存档已更新!\n");
    Sleep(500);
}
// 解锁成就(自动保存)
void unlock_chengjiu(int index, const string& name) {
    if (index < 0 || index >= 10) return;
    if (!chengjiu[index]) {
        chengjiu[index] = true;
        slow("恭喜解锁成就----" + name + "!\n");
        save_progress(); // 解锁后立即保存
    }
}
// 解锁线索(自动保存)
void unlock_xiansuo(bool* xiansuo_arr, int index, const string& name, const string& type) {
    if (index < 0 || index >= 10 || !xiansuo_arr) return;
    if (!xiansuo_arr[index]) {
        xiansuo_arr[index] = true;
        slow("恭喜解锁" + type + "线索----" + name + "!\n");
        save_progress(); // 解锁后立即保存
    }
}
// 状态检查函数(换弹+伤口处理)
void check(){
    clear();
    // 换弹逻辑
    if(danjia_ka < 2){
        slow("检测到弹夹没满 是否换弹?\n1.换弹\n2.不换弹\n");
        Cin(temp, 1, 2);
        if(temp == 1){
            if(zidan_ka > 0){
                clear();
                slow("装填中......");
                int need = 2 - danjia_ka;
                int re = min(zidan_ka, need);
                danjia_ka += re;
                zidan_ka -= re;
                Sleep(500 * re);
                slow("\n装填完成! 当前弹夹:" + math_to_string(danjia_ka) + " 剩余子弹:" + math_to_string(zidan_ka) + "\n");
            }else{
                slow("无子弹 请补充子弹后重试\n");
            }
        }
    }
    // 伤口处理逻辑
    if(shangkou > 0){
        string s = math_to_string(shangkou);
        slow("你有" + s + "处伤口 是否全部使用绷带治疗?(如绷带不足将使用全部绷带)\n1.用!\n2.等我再搜一点一起治疗\n");
        Cin(temp, 1, 2);
        if(temp == 1){
            int use_bandage = min(bengdai, shangkou);
            bengdai -= use_bandage;
            shangkou -= use_bandage;
            slow("治疗完成! 剩余绷带:" + math_to_string(bengdai) + " 剩余伤口:" + math_to_string(shangkou) + "\n");
        }
    }
    // 流血过多判定
    if(shangkou > 5){
        slow("很不幸 你流血过多了\n");
        slow("你开始逐渐失去意识\n");
        slow("你死了\n");
        slow("有伤不要硬抗啊......\n");
        Sleep(750);
        jinru(); 
    }return ;
}
// 战斗函数 
void zhandou(int zidan, int hudezidan,int huode,int shoushang){
    clear();
    int need = rand() % zidan + 1;
    slow("战斗中......");
    Sleep(750);
    // 战斗胜利判定
    if(need <= zidan_ka + danjia_ka){
        // 消耗子弹(优先弹夹,再消耗备用)
        int use_danjia = min(danjia_ka, need);
        danjia_ka -= use_danjia;
        need -= use_danjia;
        zidan_ka -= need;
        Sleep(750);
        slow("\n你胜利了!恭喜!\n");
        // 解锁战斗胜利成就
        unlock_chengjiu(1, "初露锋芒");
        // 解锁战斗线索
        unlock_xiansuo(putongxiansuo, 0, "怪物弱点-物理攻击", "普通");
    }else{
        slow("\n你死了\n");
        clear();
        jinru();
        return ;
    }
    // 随机获得绷带
    if(rand() % huode == 0){ 
        slow("你获得了一个绷带!\n");
        bengdai += 1;
    }
    // 随机受伤
    if(rand() % shoushang == 0){ 
        slow("你受伤了!\n");
        shangkou += 1;
    }
    // 随机获得子弹
    int huodezidan = rand() % hudezidan;
    zidan_ka += huodezidan;
    if(huodezidan != 0){
        string s = math_to_string(huodezidan);
        slow("你获得了" + s + "发子弹\n"); 
    }
    // 战斗后检查状态
    check();
    return ;
}
// 游戏主逻辑
void game(){
    clean();
    slow("正在加载......");
    memset(wupin, false, sizeof wupin);
    Sleep(3000);
    slow("\n加载完成\n");
    Sleep(350);
    clean();
    // 游戏剧情
    slow("你是一个深圳某校的初二学生\n");
    slow("今天是周二\n");
    slow("你背着书包来到学校 今天似乎十分的正常 你却发现桌上有一个用铁盒子保护的东西\n");
    slow("是否打开?\n1.开!\n2.上课要紧\n");
    Cin(kaihe, 1, 2); // 改用安全输入函数
    if(kaihe == 1){
        slow("箱子里有一封信!\n");
        slow("是否拾取?\n1.拾取\n2.丢到一边\n");
        Cin(shiqu, 1, 2);
        if(shiqu == 1){
            slow("是否现在打开阅读?\n1.现在就读\n2.有空再说\n");
            Cin(yuedu, 1, 2);
            if(yuedu == 1){
                clear();
                slow("信件内容:\n");
                slow("如果有人看见了这封信 这太好了\n");
                slow("如果你可以按照我说的去做 你或许可以拯救所有人\n");
                slow("或许你有许多的疑问 但是 现在没有时间去回答你了\n");
                slow("我可以告诉你的是 我就是你 如果这样有助于你理解的话\n");
                slow("你看见这封信件时 我所在的世界应该已经没有活人了\n");
                slow("在绝望之中的人什么事都干的出来 你知道的 不然我也不会写这封信了\n");
                slow("我们遭受到了某种怪物的袭击\n");
                slow("它们拥有人形 会**** 有一定的智力\n");
                slow("但是它们惧怕****\n");
                slow("箱子里还有点应急物资 在****学校将会*****\n");
                slow("注意时刻保持警惕\n");
                slow("如果可以 请尽量让更多的同学一起撤离!\n");
                slow("去***的出口 那里可以更快的出去!\n");
                slow("旁边有一行略微潦草的字 似乎是在慌忙之中写下的\n");
                slow("我们在***遭到***袭击!不要去***!我们永远都*****\n");
                slow("信件戛然而止 末尾是直接撕掉的 或许在其他地方有另外的部分......\n");
                slow("不知为什么上面有一些划掉的字......像是作者自己划掉的\n");
                slow("可他为什么要划掉这些......\n");
                slow("这么潦草的字迹肯定很赶时间......那作者又是什么时候把信放进箱子的......\n");
                // 解锁信件线索
                unlock_xiansuo(putongxiansuo, 1, "神秘信件", "普通");
                unlock_xiansuo(jingjiexiansuo, 0, "时间悖论", "进阶");
                Sleep(3500);
                clear();
                slow("拿开信封 箱子里有一些物资\n");
            }
        }else{
            slow("你丢开信封 发现箱子里还有一些东西\n");
        }
        slow("但是你还没看完有什么东西就'啪'的停电了\n");
        slow("教室一片混乱 你还要继续摸索吗\n1.继续\n2.随人流撤出教室\n");
        Cin(jixumosuo, 1, 2);
        if(jixumosuo == 1){
            slow("箱子里有很多东西 但是没有灯的照明 你只能一个一个摸\n");
            clear();
            slow("正在摸索......\n");
            Sleep(2000);
            slow("摸索完成!你获得了一下物品:\n");
            slow("1.有电池的手电筒\n2.手电筒的电池*3\n3.压缩饼干\n4.纯净水\n5.蜡烛\n6.火柴\n7.胶水\n8.剪刀\n");
            memset(wupin, true, sizeof wupin);
            // 解锁获得物资成就
            unlock_chengjiu(2, "物资收集者");
            Sleep(300);
            slow("这些东西真的有用吗......\n");
            slow("话说虽然是6点多但也不至于这么黑吧......\n");
            slow("教室有点黑的吓人呢......\n");
            slow("身边传来了沉重的脚步\n不是吧......\n");
            slow("1.直接站起跑出教室\n2.趴在地上\n3.不动\n");
            Cin(yincang, 1, 3);
            if(yincang == 1 || yincang == 2){
                if(yincang == 1){
                    slow("到处漆黑一片 基本上什么都看不见\n");
                    slow("你的背后传来火辣辣的疼 你受伤了\n");
                    shangkou += 1;
                }else{
                    slow("怪物在箱子前停留了一段时间后走出了教室\n");
                    slow("1.跟着它出去\n2.在原地等待\n");
                    Cin(temp, 1, 2);
                    if(temp == 1){
                        slow("怪物回头发现了你!\n");
                    }else{
                        slow("怪物在外面转了一圈之后回来了\n");
                        slow("它停在了你的面前\n");
                        slow("被发现了!\n");
                        slow("还是躲不过吗......明明已经是最保守的选择了才对......\n");
                        slow("你死了\n");
                        clear();
                        return ;
                    }
                }
                slow("请选择:\n1.快跑\n2.静步贴着墙根走\n");
                Cin(temp, 1, 2);
                clear();
                if(temp == 2){
                    slow("怪物似乎跟丢了......听脚步去追同学了\n");
                    slow("漆黑一片......什么都看不见\n1.打开手电筒\n2.再等一会\n");
                    Cin(temp, 1, 2); 
                    if(temp == 1){
                        slow("怪物的脚步停下了......\n");
                        slow("怎么有种不好的预感......\n");
                        slow("脚步回来了......\n");
                        slow("1.丢掉手电筒\n2.跑!\n3.丢下手电筒跑\n4.丢下手电筒之后静步贴着墙根走\n");
                        Cin(temp,1,4);
                        if(temp==1||temp==3||temp==4){
                        	wupin[0]=false;
						}if(temp == 1){
                            slow("手电筒在地上滚了几圈之后对准了你\n");
                            slow("凭借着灯光 你看见了怪物正站在你的面前\n");
                            slow("它的身上只有无尽的黑暗\n");
                            slow("而你的心里只有无尽的绝望......\n");
                            slow("你死了\n");
                            clear();
                            return ;
                        }else if(temp == 2){
                            slow("怪物的脚步一直就在你的身后\n");
                            slow("突然你被扑到在地上\n");
                            slow("手电筒的光照在怪物身上\n");
                            slow("只有黑暗......那是一个由黑暗组成的人形怪物\n");
                            slow("怪物大叫一声\n");
                            slow("你感到震耳欲聋\n");
                            slow("然后怪物抬起来大手......\n");
                            slow("你死了\n");
                            clear();
                            return ;
                        }else if(temp == 3){
                            slow("怪物的脚步停在了手电筒附近\n");
                            slow("似乎被灯光吸引了?\n");
                            slow("不对!它正在看着你!\n");
                            slow("怪物飞扑过来 撞翻在地\n");
                            slow("你磕到了头\n");
                            slow("你死了\n");
                            slow("你死了\n");
                            clear();
                            return ;
                        }else{
                            slow("怪物的脚步停在了手电筒附近......\n");
                            Sleep(100);
                            slow("似乎正在寻找什么?\n");
                            slow("手电筒那边传来了破空的声音......它在攻击?\n");
                            // 解锁怪物行为线索
                            //unlock_xiansuo(putongxiansuo, 2, "怪物怕光", "普通");
                            // 隔壁教室分支
                            gebijiaoshi:
                            slow("你走着走着碰到了一扇门......是隔壁班!他们的门没关!太好了!\n1.直接进入\n2.悄悄进入\n3.继续往前走\n");
                            Cin(temp, 1, 3);
                            if(temp == 1 || temp == 2){
                                slow("怎么有一股......血的味道......\n");
                                slow("是怪物!不止一个!怎么会!\n");
                                if(temp == 1){
                                    slow("突然有两个绿色的点亮了起来 是怪物的眼睛!\n");
                                    slow("1.跑!\n2.就地躲藏\n");
                                    Cin(temp, 1, 2);
                                    if(temp == 1){
                                        slow("你的前面突然出现一个巨大的身影......是一开始的那个怪物!\n");
                                        slow("被前后夹击了啊......\n");
                                        slow("还真是聪明呢......\n");
                                        slow("我也就这样了......\n");
                                        slow("你死了\n");
                                        clear();
                                        return ;
                                    }else{
                                        slow("你的右边响起了沉重的脚步\n");
                                        slow("它走到了你的附近\n");
                                        slow("就在这时 门外也走进一个怪物\n");
                                        slow("看来不止一个啊......\n");
                                        slow("你死了\n");
                                        clear();
                                        return ;
                                    }
                                }else{
                                    slow("在讲台似乎有什么东西进食的声音......\n");
                                    slow("不会吧......这么贪吃?\n");
                                    slow("1.过去看看\n2.留在原地\n");
                                    Cin(temp, 1, 2);
                                    if(temp == 1){
                                        slow("你悄悄的摸到了讲台 发现是一个人形的怪物在啃食一个人的尸体\n");
                                        slow("我*!,好**的恶心啊!\n");
                                        slow("你不禁后退两步 但是你撞到了桌子\n");
                                        slow("怪物抬起头看向了你\n");
                                        slow("裂开的嘴角在像人一样向你微笑?!\n");
                                        slow("你死了\n");
                                        clear();
                                        return ;
                                    }else{
                                        slow("你留在了原地\n");
                                        slow("前门突然响起了又一个脚步\n");
                                        slow("去到了讲台前面\n");
                                        slow("突然讲台上发出来巨大的尖叫\n");
                                        slow("然后是扭打的声音\n");
                                        slow("似乎......他们还会护食?\n");
                                        slow("'砰'的一声 讲台被打飞了\n");
                                        slow("还砸在你的身上\n");
                                        slow("你被砸死了\n");
                                        unlock_xiansuo(putongxiansuo,2,"内斗","普通");
                                        clear();
                                        return ;
                                    }
                                }
                            }else{
                                // 碰到卡卡分支
                                pengdaokaka:
                                clear();
                                slow("你沿着走廊一直走 但是由于没有手电筒你几乎看不见任何东西\n");
                                slow("突然你撞到了一个人\n");
                                slow("就在你差点叫出声的时候他捂住了你的嘴巴\n");
                                slow("他小声地说:别怕 我是卡卡 你没有忘记我吧?\n");
                                slow("明明昨天还一起玩的......问这个问题干什么......\n");
                                slow("1.回答:记得\n2.回答:不记得\n3.模棱两可的回答\n");
                                Cin(temp, 1, 3);
                                if(temp == 3 || temp == 2){
                                    slow("\"卡卡\":看来还是被你发现了啊......\n");
                                    slow("你死了\n");
                                    clear();
                                    return ;
                                }else if(temp == 1){
                                    slow("\"卡卡\":那就好 跟紧我 我带你去一个地方 那里比较安全\n");
                                    slow("卡卡自己走了......\n1.跟上\n2.悄悄离开\n");
                                    Cin(temp, 1, 2);
                                    if(temp == 2){
                                        slow("那个自称卡卡的人回来了 但是他的嘴角为什么挂着冷笑?\n");
                                        slow("\"卡卡\":真是聪明呢......不过还不够\n");
                                        slow("你死了\n");
                                        clear();
                                        return ;
                                    }else{
                                        slow("\"卡卡\"带你来到了一间储物间 里面乱七八糟的摆着各种东西\n");
                                        slow("\"卡卡\":这些都是我自制的东西 现在派上用场了!我早就知道了现在的事情!\n");
                                        slow("\"卡卡\":这些东西你拿着吧 到时候我们去校门口集合!记得带你能带的幸存者过来!\n");
                                        slow("\"卡卡\"自己走了 但是他好像走反了?那边是刚刚我们来的方向啊\n");
                                        clear();
                                        slow("是否打开\"卡卡\"留下的包裹\n1.打开\n2.里面肯定没好东西 还是不开了\n");
                                        Cin(temp, 1, 2);
                                        
                                        if(temp == 1){
                                            slow("里面有一把双喷!\n获得枪械---双喷\n");
                                            qiang_ka = true;
                                            slow("还有45发子弹!\n获得子弹---双喷子弹*45\n");
                                            zidan_ka+=45;
                                            slow("一个绷带!\n获得绷带*1\n");
                                            bengdai+=1;
                                            if(!wupin[0]){
                                            	slow("还有......你丢掉的手电筒?怎么会在他这......\n");
                                            	wupin[0]=true;
											}
                                            // 解锁获得武器成就
                                            unlock_chengjiu(3, "武装起来");
                                            Sleep(1000);
                                            check(); // 这里会触发换弹逻辑
                                        }else{
                                            slow("你把包裹撇在了一边\n");
                                        }
                                        slow("出去吗?\n1.出去\n2.不出去\n");
                                        Cin(temp, 1, 2);
                                        if(temp == 1){
                                            slow("外面有一只怪物!\n");
                                            if(qiang_ka){
                                                slow("1.开枪打它!\n");
                                            }slow("2.缩回储物间\n");
                                            
                                            //适配有无枪械的输入范围
                                            int min_val = qiang_ka ? 1 : 2;
                                            int max_val = 2;
                                            Cin(temp, min_val, max_val);
                                            
                                            if(temp == 1){
                                            	danjia_ka-=2;
                                                slow("怎么没中!!!\n");
                                                slow("不好!它已经快到储物间了!\n");
                                                if(qiang_ka){
                                                    slow("1.打它!\n");
                                                }slow("2.缩回储物间\n");
                                                if(qiang_ka){
                                                    Cin(temp,1,2);
                                                }else{
                                                    Cin(temp,2,2);
                                                }if(temp == 2){
                                                    if(shangkou == 1){
                                                        slow("怪物在你原来的伤口上又划了一下 伤口更深了\n");
                                                        slow("由于伤口够深 伤及心脏 你死了\n");
                                                        clear();
                                                        return ;
                                                    }else{
                                                        slow("尽管你躲的够快 但还是被怪物的爪子划到了\n");
                                                        shangkou += 1;
                                                        check();
                                                        goto suohuichuwujian; 
                                                    }
                                                }else{
                                                	check();
                                                    slow("尽管你有着多年玩射击游戏的经验 但毕竟不是现实\n");
                                                    slow("至于 你开枪的结果......我是伯乐 好马\n");
                                                    slow("你死了\n");
                                                    unlock_chengjiu(5,"菜就多练");
                                                    clear();
                                                    return ;
                                                }
                                            }else{
                                                // 缩回储物间分支
                                                suohuichuwujian:
                                                slow("你直接缩回了储物间\n");
                                                slow("怪物在外面用爪子刮门 发出刺耳的声响\n");
                                                check();
                                                slow("怪物把门板抓开了一个洞!");
                                                if(!qiang_ka){
                                                    slow("由于你没有武器 你无法抵抗\n");
                                                    slow("你死了\n");
                                                    clear();
                                                    return ;
                                                }if(danjia_ka > 0){
                                                    check(); 
                                                    slow("是否开枪?\n1.打它!\n2.节省子弹先\n");
                                                    Cin(temp, 1, 2);
                                                    
                                                    if(temp == 1){
                                                        slow("枪枪爆头好运连连 你成功的击杀了怪物!\n");
                                                        slow("看来怪物也并不是免疫物理攻击的嘛\n");
                                                        slow("当前弹夹剩余");
                                                        // 解锁首杀成就
                                                        unlock_chengjiu(4,"首杀");
                                                        check();
                                                        clear();
                                                        slow("这里似乎没有东西了 要出去吗?\n1.走走走 有枪我怕谁!\n2.再搜搜\n");
                                                        Cin(temp, 1, 2);
                                                        
                                                        if(temp == 2){
                                                            clear();
                                                            slow("搜索中......");
                                                            Sleep(3000);
                                                            slow("\n搜索完成!\n");
                                                            slow("获得一下物品:\n");
                                                            slow("1.录音  似乎还可以播放\n是否听取录音?\n1.听!\n2.先赶路吧\n");
                                                            Cin(temp, 1, 2);
                                                            bool a = false;
                                                            if(sleeptime == 5){
                                                                a = true;
                                                            }sleeptime=30;
                                                            slow("我们TMD遭到了袭击 在****口有陷**注意躲避!\n");
                                                            slow("重复!在楼****有**阱注意躲避!\n");
                                                            // 解锁录音线索
                                                            unlock_xiansuo(putongxiansuo, 3, "陷阱警告", "普通");
                                                            unlock_xiansuo(jingjiexiansuo, 1, "教学楼布局", "进阶");
                                                            unlock_chengjiu(6, "窃听");
                                                            if(a){
                                                                sleeptime=5;
                                                            }else{
                                                                sleeptime = 40;
                                                            }slow("似乎录音的地方有些吵闹?有一些音频听不清\n");
                                                            slow("就这样吧......该去找同学们了\n");
                                                            slow("突然 附近有黑影出现\n");
                                                            slow("坏了!是那些怪物!它们被枪声吸引了!有1...2...3个起步!!!\n");
                                                            slow("他们离这还有一些距离......要不试着用喷子打它们?\n1.打!\n2.跑路了兄弟 跑路了 有事受着\n3.等它们离近再打\n");
                                                            Cin(temp, 1, 3);
                                                            if(temp == 1){
                                                                zhandou(50, 5,3,2); // 移除冲突参数
                                                            }else if(temp == 3){
                                                                zhandou(35,10,3,3); // 移除冲突参数
                                                            }else{
                                                                clear();
                                                                slow("尽管你使出了吃奶的力气还是跑不过那些怪物\n");
                                                                slow("你还要继续跑吗?\n1.继续跑\n2.停下朝怪物开枪\n3.边跑边开枪\n");
                                                                Cin(temp, 1, 3);
                                                                if(temp == 1){
                                                                    slow("终于 在你的不懈努力下\n");
                                                                    Sleep(750);
                                                                    slow("你力竭了......\n");
                                                                    slow("你看着这些怪物 艰难地举起了枪\n");
                                                                    slow("但是枪还没有举起就被怪物一巴掌拍飞了......\n");
                                                                    slow("你死了\n");
                                                                    clear();
                                                                    return ;
                                                                }else if(temp == 2){
                                                                    slow("由于体力接近耗尽 你的命中率大幅降低\n");
                                                                    zhandou(90, 15,3,2); // 移除冲突参数
                                                                }else{
                                                                    slow("由于你在奔跑你的命中率降低\n");
                                                                    zhandou(70, 12,3,2); // 移除冲突参数
                                                                }
                                                            }clear();
                                                            slow("战斗结束的你发现楼上似乎有一个黑影\n");
                                                            slow("黑影消失了......\n");
                                                            slow("1.追上楼\n2.去找同学们集合\n");
                                                            Cin(temp,1,2);
                                                            if(temp==2){
                                                            	slow("");
                                                            }else{
                                                                slow("你追着黑影上了楼梯\n");
                                                                slow("黑影突然停下来\n");
                                                                slow("1.试图沟通\n2.直接开枪打它\n");
                                                                Cin(temp,1,2);
                                                                if(temp==1){
                                                                    slow("黑影没有动静......\n");
                                                                    slow("1.再次尝试沟通\n2.我可没有那么多的耐心!\n");
                                                                    Cin(temp,1,2);
                                                                    if(temp==2){
                                                                        goto dasiheiying;
                                                                    }else{
                                                                        slow("黑影缓缓转身 露出了她的脸\n");
                                                                        slow("万幸不是怪物 刚刚也没有开枪\n");
                                                                        clear();
                                                                        slow("1.试图搭话\n2.询问一些事情\n");
                                                                        Cin(temp,1,2);
                                                                        slow("她没有说话......\n");
                                                                        slow("但是你发现她的口袋里装着一张纸\n");
                                                                        slow("1.讨要那张纸\n2.我又和她不熟\n");
                                                                        Cin(temp,1,2);
                                                                        if(temp==1){
                                                                            slow("她没有任何的动作 就呆在原地\n");
                                                                        }else{
                                                                            slow("你们就这么呆在这\n");
                                                                        }slow("她的脸色惨白 似乎是 低血糖?\n");
                                                                        slow("看上去她的状态不是很好 甚至于马上就会晕倒\n");
																		if(wupin[4]&&wupin[5]){
																			slow("1.给她压缩饼干和水\n"); 
																		}slow("2.什么都不给她\n");
																		if(wupin[4]&&wupin[5]){
																			Cin(temp,1,2);
																		}else{
																			Cin(temp,2,2);
																		}if(temp==2){
																			slow("她真的马上就晕了......\n");
																			slow("这可怎么办......\n");
																			slow("1.守在这\n2.试图开枪吓醒她\n");
																			if(wupin[4]&&wupin[5]){
																				slow("3.将压缩饼干压成粉混着水喂她\n");
																				Cin(temp,1,3);
																				if(temp==3){
																					wupin[4]=wupin[5]=false;
																					slow("她的脸色看起来在变好了\n");
																					slow("她醒了\n");
																					unlock_chengjiu(8,"饿一会也不会怎么样");
																					goto jiuhuonvsheng;
																				}
																			}else{
																				Cin(temp,1,2);
																			}if(temp==2){
																				danjia_ka-=1;
																				slow("然而这并没有什么卵用......浪费一颗子弹除外\n");
																				goto nvshengzhouweideguaiwu;
																			}
																		}else{
																			wupin[4]=wupin[5]=false;
																			slow("她的脸色看起来好多了\n");
																			unlock_chengjiu(7,"还好拿上了");
																			jiuhuonvsheng:
																			slow("她的状态似乎好多了\n");
																			slow("尝试重新与她交谈?\n1.是\n2.否\n");
																			Cin(temp,1,2);
																			if(temp==1){
																				slow("你和她并不熟 所以你从名字开始问起\n");
																				slow("你得知了她的名字\"吴楠\"\n");
																				slow("\"吴楠\":我们班在校门口遭到了袭击......\n");
																				slow("\"吴楠\":怪物是从校门外进来的......\n");
																				slow("\"吴楠\":校门外还有不少......\n");
																				slow("\"吴楠\":我们......可能得交代在这\n");
																			}clear();
																			slow("是否重新提起那张纸?\n1.那张纸很重要!\n2.不要也罢\n");
																			Cin(temp,1,2);
																			if(temp==1){
																				slow("\"吴楠\":这张纸?是我在一个房间找到的\n");
																				slow("\"吴楠\":这张纸当时还被所在一个铁盒里呢~我撬开的!\n");
																				slow("铁盒......一开始的我看见的铁盒里也有纸......\n");
																				slow("是......同一个人写的?\n");
																				slow("1.索要\n2.继续往前走\n");
																				Cin(temp,1,2);
																				if(temp==1){
																					slow("\"吴楠\"欣然同意了\n");
																					slow("文字也是有点模糊......但是字体倒是相差无几\n");
																					clear(); 
																					slow("纸条内容:\n");
																					slow("**有直升机!是救援!\n");
																					slow("上面有全副武装的士兵和******是政府的人!\n");
																					slow("靠!直升机负载满了 上面全是幸存者 直升机走了!\n");
																					slow("不对!直升机**了!上面有****!是****!\n");
																					Sleep(750);
																					slow("关键部分似乎被人为抹除了......\n");
																					slow("算了 既然有直升机就先去高处吧......\n");
																					unlock_xiansuo(putongxiansuo,5, "直升机", "普通");
																				}
																			}clear();
																			slow("\"吴楠\"想要带你去高处\n1.去\n2.不去\n");
																			Cin(temp,1,2);
																			if(temp==2){
																				slow("\"吴楠\"自己前往了高处\n");
																				wunangensui=false;
																			}else{
																				wunangensui=true;
																				slow("你们来到了教学楼楼顶\n");
																				slow("这里的视野很好......\n");
																				slow("但......问题是地上为什么只有一片片的血迹?\n");
																				slow("尸体......遇难者的尸体都哪去了?\n");
																				slow("\"吴楠\"建议在这等待救援\n");
																				slow("1.接受\n2.不接受\n");
																				Cin(temp,1,2);
																				 
																			}
																		}
                                                                    }
                                                                }else{
                                                                    dasiheiying:
                                                                    danjia_ka-=1; 
                                                                    slow("黑影晃晃悠悠地倒了下来\n");
                                                                    clear();
                                                                    //check();
                                                                    slow("1.再补几枪\n2.接近查看\n");
                                                                    Cin(temp,1,2);
                                                                    if(temp==1){
                                                                        danjia_ka-=1;
                                                                        //check();
                                                                        //纯浪费子弹 
                                                                    }slow("黑影完全没有了动静\n");
                                                                    slow("你小心翼翼地接近它 却发现它看起来没有怪物那么高大\n");
                                                                    slow("它的脸部朝下 无法辨认\n1.给它翻个身\n2.辨认有什么用 打赢了就是我厉害\n");
                                                                    Cin(temp,1,2);
                                                                    if(temp==1){
                                                                        slow("它露出了脸\n");
                                                                        slow("你却发现她是你的一个女同学......\n");
                                                                        slow("你......刚刚开枪打死了她......\n");
                                                                        slow("你发现她的手里似乎攥着一张纸\n");
                                                                        slow("1.拿出来读\n2.肯定是陷阱!\n");
                                                                        Cin(temp,1,2);
                                                                        if(temp==1){
                                                                            clear();
                                                                            slow("那张纸皱巴巴的 上面有些字还被磨掉了\n");
                                                                            slow("纸张内容:\n");
                                                                            slow("初二8班全学生45人遇难\n");
                                                                            slow("二人失踪 三人幸存 其中一人受伤\n");
                                                                            slow("在校门口有大量类人生物\n");
                                                                            slow("目前已知特点:\n");
                                                                            slow("1.它们似乎惧怕水和****\n");
                                                                            slow("2.它们做不到一些人类可以做的动作 例如******\n");
                                                                            slow("纸的最后有些许血迹 可能就是这位幸存者的......\n");
                                                                            slow("这张纸有点泛黄......墨也有点淡了 似乎......有些时候了?\n");
                                                                            // 解锁幸存者线索
                                                                            unlock_xiansuo(putongxiansuo, 4, "幸存者", "普通");
                                                                            unlock_xiansuo(jingjiexiansuo, 2, "怪物弱点-水", "进阶");
                                                                            clear();
                                                                        }
                                                                    }nvshengzhouweideguaiwu:
																	slow("你的周围突然响起了沉重的脚步\n");
                                                                    slow("不好!是它们!它们被枪声吸引来了!\n");
                                                                    slow("你的面前随即出现了几个巨大的怪物\n");
                                                                    if(danjia_ka==1){
                                                                        slow("你朝它们开了一枪却毫无用处\n");
                                                                        slow("霰弹枪的弹丸在空中分散开来 均匀地打在了每一个怪物身上\n");
                                                                        slow("它们看起来屁事没有\n");
                                                                        slow("反倒是你......\n");
                                                                    }else{
                                                                        slow("你试图开枪反抗 但是你忘记了你刚刚打完了枪膛里的子弹\n");
                                                                        slow("枪击发出\"咔咔\"的声音却无弹丸射出\n");
                                                                    }slow("你死了\n");
                                                                    clear();
                                                                    return ;
                                                                }
                                                            }
                                                        }
                                                    }else{
                                                        slow("怪物挠破门板进来了\n");
                                                        slow("你被砍成了臊子\n");
                                                        slow("你死了\n死得不能再死\n");
                                                        clear();
                                                        return ;
                                                    }
                                                } 
                                            }
                                        }else{
                                            slow("外面响起了一阵脚步......但是没有怪物那么重\n");
                                            slow("是......幸存者?\n");
                                            slow("外面有说话声 来人自称是\"卡卡\"\n");
                                            slow("他说他受伤了 要回来休整状态 让你放他进来\n");
                                            slow("1.放他进来\n2.不放\n");
                                            Cin(temp,1,2);
                                            if(temp==1){
                                                slow("你打开了门\n");
                                                slow("只不过面前的不是一个人......而是\n");
                                                slow("一个面部扭曲 四肢细长的怪物!\n");
                                                slow("它一脸狞笑 笑着朝你走来\n");
                                                slow("\"怎么能让你一直躲在这呢......\"\n");
                                                slow("你死了\n");
                                                unlock_xiansuo(jingjiexiansuo, 3, "伪人", "进阶");
                                                clear();
                                                return ;
                                            }else{
                                                slow("外面的人依旧苦苦哀求 试图让你打开这个本就不怎么坚固的木门\n");
                                                slow("1.打开门\n2.不开\n");
                                                Cin(temp,1,2);
                                                if(temp==1){
                                                    slow("面前的不是一个人......而是一个怪物!\n");
                                                    slow("它狞笑着朝你靠近\n");
                                                    slow("\"卡卡\"居然不第一时间开门......真是的\n");
                                                    slow("你死了\n");
                                                    clear();
                                                    return ;
                                                }else{
                                                    slow("外面安静了一会......\n");
                                                    slow("1.出去\n2.在里面等着\n"); // 修复语法错误:\2 -> \n2
                                                    Cin(temp,1,2);
                                                    if(temp==1){
                                                        slow("怪物注视着你 似乎很欣赏你的勇气\n");
                                                        zidan_ka=0;//必定赢不了 
                                                        danjia_ka=0;
                                                        zhandou(INT_MAX,INT_MAX,INT_MAX,1);
                                                    }else{
                                                        slow("外面在安静了一会之后突然又想起了脚步声\n");
                                                        slow("接着 本就不怎么坚固的木门被一脚踹开\n");
                                                        slow("怪物一脸不屑的看着你\n");
                                                        slow("\"胆小鬼\"\n");
                                                        slow("你死了\n");
                                                        clear();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }else{
                    	slow("你周围响起了一阵声音\n1.跟寻声音过去\n2.扶着墙往前走\n");
                    	Cin(temp, 1, 2);
                    	if(temp == 1){
                    	    goto gebijiaoshi;
                    	}else{
                    	    goto pengdaokaka;
                    	}
                	}
                }else{
                	slow("怪物追上了你......\n");
                	slow("完了.....\n");
                	slow("你死了\n");
                	clear();
                	return ;
            	}
            }else{
            	slow("脚步停在了箱子前面 一个巨大的黑影站在前面\n");
        	    slow("一个人形的生物伸出了触手一样的东西触碰箱子\n");
            	slow("突然那个触手一样的东西碰到了你\n");
        	    slow("那只手顿了一下 便高高抬起\n");
            	slow("请选择:\n1.跑!!!\n2.接着不动\n");
            	Cin(temp, 1, 2); // 改用安全输入函数
            	if(temp == 2){
            	    slow("那只大手狠狠地落下 接着你变成了路易十六\n");
            	    unlock_chengjiu(9,"历史的伟人");
					clear();
            	    return ;
            	}else{
            	    slow("你跑出了教室 外面一片黑暗\n");
            	    slow("脚步紧紧跟在身后 接着你被踹翻在地\n");
            	    slow("你感到被东西压住脑袋 动弹不得\n");
            	    slow("接着 那只大手高高举起 又落了下来\n");
            	    slow("你变成了路易十六\n");
            	    unlock_chengjiu(9,"历史的伟人");
            	    clear();
            	    return ;
            	}
        	}
        }else{
        	clear();
        	//随人流撤出原始教室 
        	slow("你撤出了教室\n"); 
        	slow("奇怪的是 学校里只有你们一个班的人出来了......\n");
        	unlock_xiansuo(putongxiansuo,6, "消失的人们", "普通");
        	slow("人流走到了校门口......\n");
			slow("就在即将成功撤出学校时\n");
			slow("前面的同学如潮水一般退了回来\n");
			slow("什么鬼!!!\n");
			slow("你踮着脚往前看去\n");
			slow("找到了大家后退的原因----怪物\n");
			slow("你接着也跑了起来\n");
			slow("怪物突然大吼一声 周围冲出许多怪怪物\n");
			slow("你周围的同学一个接一个的减少\n");
			slow("最后 幸存下来的同学只有一个\n");
			slow("但不是你\n");
			Sleep(750);
			slow("你死了\n");
			unlock_xiansuo(putongxiansuo,7, "校门口的怪物", "普通");
			clear();
			return ;
		}
    }else{
        slow("你就这么上着课 完全将盒子的事抛在脑后......\n");
        slow("今天就这么过去了......\n");
        slow("但总感觉......又有新的一轮新的循环在等着我......\n");
        // 解锁"平静的一天"成就
        unlock_chengjiu(0,"平静的一天???");
        clear();
        return ;
    }
}

// 游戏入口函数
void jinru(){
    clean();
    slow("1.进入游戏\n");
    slow("2.快速输出\n");
    slow("3.获取游戏剧情相关提示\n");
    slow("4.游戏开发相关\n");
    slow("5.查看成就\n");
    slow("6.查看线索\n");
    slow("7.退出游戏\n");
    Cin(kaishi,1,7); // 修复输入范围错误:原1-5改为1-7
    if(kaishi == 2){
        if(sleeptime == 40){
            sleeptime = 5;
            slow("已开启快速输出\n");
        }else{
            sleeptime = 40;
            slow("已关闭快速输出\n");
        }Sleep(500);
        jinru();
    }else if(kaishi == 1){
        // 重置全局变量 避免多次进入游戏状态残留
        zidan_ka = 0;
        danjia_ka = 0;
        bengdai = 0;
        shangkou = 0;
        qiang_ka = false;
        memset(wupin, false, sizeof wupin);
        game();
        jinru();
    }else if(kaishi == 7){
        clean();
        slow("555 是不是哪里有BUG让你不满意了 我会努力调试的\n");
        slow("记得下次再来QWQ\n");
        return ;
    }else if(kaishi == 3){
        int suiji = rand() % 5;
        clean();
        if(suiji == 0){
            slow("一些看来必死的选择可能会有一些有用的线索!\n");
        }else if(suiji == 1){
            slow("人形生物拥有智商 请对身边的每一个人保持警惕!\n");
        }else if(suiji == 2){
            slow("当怪物离你有一定距离时喷子的命中率会变低!\n");
            Sleep(500);
            slow("当然 要是你运气够好的话 说不定可以活下来......\n");
        }else if(suiji == 3){
            slow("战斗时有很多不确定因素......一切皆看运气......\n");
        }else if(suiji == 4){
            slow("战斗可以获得绷带或者伤口 但是记住 战斗有风险\n");
        }
        Sleep(1000);
        jinru();
    }else if(kaishi == 4){
        clear();
        slow("真的不知道说什么......\n");
        slow("你可以自己复制一份回去补充好\n");
        slow("记得给我玩玩......\n");
        clear();
        jinru();
    }else if(kaishi==5){
        clean();
        slow("已解锁的成就:\n");
        bool has_chengjiu = false;
        // 成就名称映射
        const string chengjiu_names[30] = {"平静的一天???","初露锋芒","物资收集者","武装起来","首杀","再多练练", "窃听", "还好带上了", "饿一会也不会怎么样","历史的伟人"};
        for(int i=0; i<30; i++){
            if(chengjiu[i] && !chengjiu_names[i].empty()){
                slow(math_to_string(i+1) + ". " + chengjiu_names[i] + "\n");
                has_chengjiu = true;
            }
        }
        if(!has_chengjiu){
            slow("暂无解锁的成就\n");
        }slow("\n按任意键返回主菜单...\n");
        cin.ignore();
        cin.get();
        jinru();
    }else if(kaishi==6){
        clean();
        slow("=== 普通线索 ===\n");
        bool has_putong = false;
        const string putong_names[30] = {"怪物弱点-物理攻击","神秘信件","内斗","陷阱警告","幸存者","救援---直升机", "消失的人们", "校门口的怪物", "", ""};
        for(int i=0; i<30; i++){
            if(putongxiansuo[i] && !putong_names[i].empty()){
                slow(math_to_string(i+1) + ". " + putong_names[i] + "\n");
                has_putong = true;
            }
        }
        if(!has_putong){
            slow("暂无解锁的普通线索\n");
        }slow("\n=== 进阶线索 ===\n");
        bool has_jingjie=false;
        const string jingjie_names[30]={"时间悖论","教学楼布局","怪物弱点-水","伪人", "", "", "", "", "", ""};
        for(int i=0; i<30;i++){
            if(jingjiexiansuo[i]&&!jingjie_names[i].empty()){
                slow(math_to_string(i+1)+"."+jingjie_names[i]+"\n");
                has_jingjie=true;
            }
        }if(!has_jingjie){
            slow("暂无解锁的进阶线索\n");
        }slow("\n按任意键返回主菜单...\n");
        cin.ignore();
        cin.get();
        jinru();
    }
}
int main(){
    cin.tie(0);
    srand((unsigned int)time(NULL)); // 初始化随机数种子 避免每次随机结果相同
    // 游戏启动时读取存档
    load_save();
    // 进入游戏主菜单
    jinru();
    return 0; 
}