• 个人简介

    盗墓传奇
    1.1版本
    【商店】更新商店功能,商品用银子兑换
    
    #include <bits/stdc++.h>
    #include <windows.h>
    #include <ctime>
    #include <limits>  // 用于输入合法性校验
    using namespace std;
    
    // 全局常量定义
    const double DEFAULT_SLEEP_TIME = 1.2;
    const int DEFAULT_COLOR = 15;
    const int MAX_ITEMS = 10;  // 最大道具数量
    
    // 玩家属性结构体
    struct Player {
        long long silver;      // 银子
        long long combat;      // 战力
        long long speed;       // 速度
        string name;           // 玩家姓名
        bool has_map;          // 是否拥有大荒地图
        bool has_eye;          // 是否拥有神霄天目
        bool has_yinyang;      // 是否拥有阴阳轮转能力
        string items[MAX_ITEMS];// 道具栏
        int item_count;        // 道具数量
    };
    
    // 商店道具结构体
    struct ShopItem {
        string name;   // 道具名称
        long long price; // 价格
        string desc;   // 描述
    };
    
    // 全局玩家对象
    Player player;
    // 商店道具列表
    ShopItem shop_items[] = {
        {"千年人参", 800, "使用后战力+300"},
        {"摸金符", 500, "使用后速度+200"},
        {"大力丸", 300, "使用后战力+100"},
        {"疾风靴", 400, "使用后速度+150"},
        {"止血散", 200, "战斗失败后恢复100战力"}
    };
    const int SHOP_ITEM_COUNT = sizeof(shop_items) / sizeof(ShopItem);
    
    // 清屏函数
    void clean() { 
        system("cls"); 
    }
    
    // 睡眠函数(秒为单位)
    void sleep_seconds(double n) { 
        n = n * 1000; 
        Sleep(static_cast<DWORD>(n)); 
    }
    
    // 设置控制台文字颜色
    void set_color(short n) { 
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n); 
    }
    
    // 初始化随机数生成器
    void init_random() {
        srand(static_cast<unsigned int>(time(0)));
    }
    
    // 生成指定范围的随机数
    int random_int(int first, int second) { 
        int min_val = min(first, second);
        int max_val = max(first, second);
        int range = max_val - min_val + 1;
        return rand() % range + min_val; 
    }
    
    // 随机颜色输出提示信息
    void print_random_color(const string& msg) {
        int color = random_int(9, 14);
        set_color(color);
        cout << msg << endl;
        set_color(DEFAULT_COLOR); // 恢复默认颜色
    }
    
    // 显示玩家属性(保留函数,用于初始化时展示)
    void show_attributes() {
        set_color(11);
        cout << "================= 玩家属性 =================" << endl;
        set_color(DEFAULT_COLOR);
        printf("银子:%lld\t战力:%lld\t速度:%lld\n", player.silver, player.combat, player.speed);
        cout << "特殊能力:";
        if (player.has_yinyang) cout << "阴阳轮转 ";
        if (player.has_eye) cout << "神霄天目 ";
        if (!player.has_yinyang && !player.has_eye) cout << "无";
        cout << endl;
        cout << "持有道具:";
        if (player.item_count == 0) {
            cout << "无";
        } else {
            for (int i = 0; i < player.item_count; i++) {
                cout << player.items[i] << " ";
            }
        }
        cout << "\n===========================================\n\n";
    }
    
    // 添加道具到道具栏
    void add_item(const string& item_name) {
        if (player.item_count < MAX_ITEMS) {
            player.items[player.item_count++] = item_name;
            print_random_color("叮!获得道具:" + item_name);
        } else {
            set_color(12);
            cout << "道具栏已满,无法获得新道具!" << endl;
            set_color(DEFAULT_COLOR);
        }
    }
    
    // 使用道具(内部函数)
    void use_item_internal(int idx) {
        string item = player.items[idx];
        if (item == "千年人参") {
            player.combat += 300;
            char msg[100];
            sprintf(msg, "使用千年人参,战力+300!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "摸金符") {
            player.speed += 200;
            char msg[100];
            sprintf(msg, "使用摸金符,速度+200!当前速度:%lld", player.speed);
            print_random_color(msg);
        } else if (item == "大力丸") {
            player.combat += 100;
            char msg[100];
            sprintf(msg, "使用大力丸,战力+100!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "疾风靴") {
            player.speed += 150;
            char msg[100];
            sprintf(msg, "使用疾风靴,速度+150!当前速度:%lld", player.speed);
            print_random_color(msg);
        } else if (item == "止血散") {
            player.combat += 100;
            char msg[100];
            sprintf(msg, "使用止血散,战力+100!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "大荒地图") {
            set_color(12);
            cout << "大荒地图无法使用,是探索古墓的必备道具!" << endl;
            set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME);
            return;
        } else {
            set_color(13);
            cout << "该道具暂时无法使用!" << endl;
            set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME);
            return;
        }
    
        // 使用后移除道具
        for (int i = idx; i < player.item_count - 1; i++) {
            player.items[i] = player.items[i+1];
        }
        player.item_count--;
        print_random_color("道具已使用!");
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    // 道具管理(合并查看/使用)
    void item_management() {
        while (true) {
            clean();
            set_color(13);
            cout << "\n\n\t\t【道具管理】\n\n";
            set_color(DEFAULT_COLOR);
            
            // 显示玩家当前银子
            cout << "当前银子:" << player.silver << "两\n\n";
            
            // 显示道具列表
            cout << "【我的道具】\n";
            if (player.item_count == 0) {
                cout << "暂无道具\n";
            } else {
                for (int i = 0; i < player.item_count; i++) {
                    cout << i+1 << ". " << player.items[i] << endl;
                }
            }
            
            // 道具操作菜单
            cout << "\n【操作选项】\n";
            cout << "1. 使用道具\n";
            cout << "2. 返回主菜单\n";
            cout << "\n请选择操作(1-2):";
            
            int choice;
            while (!(cin >> choice) || choice < 1 || choice > 2) {
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
                set_color(12);
                cout << "输入无效!请输入1或2:";
                set_color(DEFAULT_COLOR);
            }
            
            if (choice == 2) {
                break; // 返回主菜单
            }
            
            // 使用道具
            if (player.item_count == 0) {
                set_color(12);
                cout << "\n没有道具可使用!" << endl;
                set_color(DEFAULT_COLOR);
                sleep_seconds(DEFAULT_SLEEP_TIME);
                continue;
            }
            
            cout << "\n请选择要使用的道具编号(0返回):";
            int item_choice;
            while (!(cin >> item_choice) || item_choice < 0 || item_choice > player.item_count) {
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
                set_color(12);
                cout << "输入无效!请输入0-" << player.item_count << "之间的数字:";
                set_color(DEFAULT_COLOR);
            }
            
            if (item_choice == 0) {
                continue;
            }
            
            use_item_internal(item_choice - 1);
        }
    }
    
    // 商店系统
    void shop_system() {
        while (true) {
            clean();
            set_color(10);
            cout << "\n\n\t\t【大荒杂货铺】\n\n";
            set_color(DEFAULT_COLOR);
            
            // 显示玩家当前银子
            cout << "当前银子:" << player.silver << "两\n\n";
            
            // 显示商店道具
            cout << "【出售道具】\n";
            for (int i = 0; i < SHOP_ITEM_COUNT; i++) {
                cout << i+1 << ". " << shop_items[i].name 
                     << " - " << shop_items[i].price << "两"
                     << " (" << shop_items[i].desc << ")\n";
            }
            
            // 商店操作菜单
            cout << "\n【操作选项】\n";
            cout << SHOP_ITEM_COUNT + 1 << ". 返回主菜单\n";
            cout << "\n请选择要购买的道具编号(" << SHOP_ITEM_COUNT + 1 << "返回):";
            
            int choice;
            while (!(cin >> choice) || choice < 1 || choice > SHOP_ITEM_COUNT + 1) {
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
                set_color(12);
                cout << "输入无效!请输入1-" << SHOP_ITEM_COUNT + 1 << "之间的数字:";
                set_color(DEFAULT_COLOR);
            }
            
            if (choice == SHOP_ITEM_COUNT + 1) {
                break; // 返回主菜单
            }
            
            // 购买道具
            int item_idx = choice - 1;
            ShopItem& selected_item = shop_items[item_idx];
            
            if (player.silver >= selected_item.price) {
                // 扣除银子
                player.silver -= selected_item.price;
                char msg[100];
                sprintf(msg, "花费%d两银子购买了%s!剩余银子:%lld", 
                        selected_item.price, selected_item.name.c_str(), player.silver);
                print_random_color(msg);
                
                // 添加道具到背包
                add_item(selected_item.name);
                sleep_seconds(DEFAULT_SLEEP_TIME);
            } else {
                set_color(12);
                cout << "\n银子不足!购买" << selected_item.name << "需要" << selected_item.price << "两,你只有" << player.silver << "两。" << endl;
                set_color(DEFAULT_COLOR);
                sleep_seconds(DEFAULT_SLEEP_TIME);
            }
        }
    }
    
    // 显示主菜单(核心修改:新增商店选项,合并道具选项)
    int show_main_menu() {
        clean();
        // 玩家属性固定显示在菜单上方
        set_color(11);
        cout << "================= 玩家属性 =================" << endl;
        set_color(DEFAULT_COLOR);
        printf("银子:%lld\t战力:%lld\t速度:%lld\n", player.silver, player.combat, player.speed);
        cout << "特殊能力:";
        if (player.has_yinyang) cout << "阴阳轮转 ";
        if (player.has_eye) cout << "神霄天目 ";
        if (!player.has_yinyang && !player.has_eye) cout << "无";
        cout << "\n===========================================\n\n";
        
        // 主菜单标题
        set_color(14);
        cout << "\t\t【盗墓传奇 - 主菜单】\n\n";
        set_color(DEFAULT_COLOR);
        // 菜单选项:新增商店,合并道具
        cout << "1. 继续探索\n";
        cout << "2. 道具管理(查看/使用)\n";
        cout << "3. 商店购买\n";
        cout << "4. 保存进度\n";
        cout << "5. 加载进度\n";  
        cout << "6. 退出游戏\n";
        cout << "\n请选择操作(1-6):";
        
        int choice;
        // 输入合法性校验:1-6范围
        while (!(cin >> choice) || choice < 1 || choice > 6) {
            cin.clear(); 
            cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
            set_color(12);
            cout << "输入无效!请输入1-6之间的数字:";
            set_color(DEFAULT_COLOR);
        }
        return choice;
    }
    
    // 保存进度
    void save_progress() {
        ofstream save_file("save_data.txt");
        if (save_file.is_open()) {
            save_file << player.name << endl;
            save_file << player.silver << " " << player.combat << " " << player.speed << endl;
            save_file << player.has_map << " " << player.has_eye << " " << player.has_yinyang << endl;
            save_file << player.item_count << endl;
            for (int i = 0; i < player.item_count; i++) {
                save_file << player.items[i] << endl;
            }
            save_file.close();
            print_random_color("进度保存成功!");
        } else {
            set_color(12);
            cout << "保存失败!" << endl;
            set_color(DEFAULT_COLOR);
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    // 加载进度
    void load_progress() {
        ifstream load_file("save_data.txt");
        if (load_file.is_open()) {
            player.item_count = 0;
            
            load_file >> player.name;
            load_file >> player.silver >> player.combat >> player.speed;
            load_file >> player.has_map >> player.has_eye >> player.has_yinyang;
            
            int item_num;
            load_file >> item_num;
            load_file.ignore(); 
            
            for (int i = 0; i < item_num; i++) {
                string item;
                getline(load_file, item);
                if (player.item_count < MAX_ITEMS) {
                    player.items[player.item_count++] = item;
                }
            }
            
            load_file.close();
            print_random_color("进度加载成功!欢迎回来," + player.name + "!");
        } else {
            set_color(12);
            cout << "没有找到存档文件!" << endl;
            set_color(DEFAULT_COLOR);
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    // 随机事件 - 遇到宝箱
    void event_chest() {
        set_color(10);
        cout << "\n你发现了一个古老的宝箱!" << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
        
        int reward_type = random_int(1, 3);
        if (reward_type == 1) {
            int silver_reward = random_int(500, 2000);
            player.silver += silver_reward;
            char msg[50];
            sprintf(msg, "打开宝箱获得%d两银子!", silver_reward);
            print_random_color(msg);
        } else if (reward_type == 2) {
            int combat_reward = random_int(200, 800);
            player.combat += combat_reward;
            char msg[50];
            sprintf(msg, "打开宝箱获得上古功法,战力+%d!", combat_reward);
            print_random_color(msg);
        } else {
            add_item("千年人参");
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    // 随机事件 - 遇到怪物
    void event_monster() {
        set_color(12);
        string monsters[] = {"尸蹩", "血尸", "粽子", "阴兵", "螭龙"};
        string monster_name = monsters[random_int(0, 4)];
        int monster_combat = random_int(300, 1500);
        
        cout << "\n危险!出现了" << monster_name << "!" << endl;
        cout << monster_name << "战力:" << monster_combat << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
        
        cout << "\n选择:1.战斗  2.逃跑" << endl;
        int choice;
        while (!(cin >> choice) || choice < 1 || choice > 2) {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
            set_color(12);
            cout << "输入无效!请输入1或2:";
            set_color(DEFAULT_COLOR);
        }
        
        if (choice == 1) {
            cout << "\n你与" << monster_name << "展开了战斗!" << endl;
            sleep_seconds(1.5);
            
            if (player.combat >= monster_combat) {
                set_color(10);
                cout << "战斗胜利!你击败了" << monster_name << endl;
                int silver_reward = random_int(300, 1000);
                player.silver += silver_reward;
                char msg[50];
                sprintf(msg, "获得%d两银子!", silver_reward);
                print_random_color(msg);
                
                if (random_int(1, 3) == 1) {
                    add_item("摸金符");
                }
            } else {
                set_color(12);
                cout << "战斗失败!你被" << monster_name << "击败了!" << endl;
                player.silver -= 200;
                if (player.silver < 0) player.silver = 0;
                cout << "损失200两银子,剩余银子:" << player.silver << endl;
                
                // 检查是否有止血散
                bool has_zhixue = false;
                int zhixue_idx = -1;
                for (int i = 0; i < player.item_count; i++) {
                    if (player.items[i] == "止血散") {
                        has_zhixue = true;
                        zhixue_idx = i;
                        break;
                    }
                }
                if (has_zhixue) {
                    // 自动使用止血散
                    player.combat += 100;
                    if (player.combat < 0) player.combat = 0;
                    // ======== 修复469行报错:替换to_string为sprintf ========
                    char zhixue_msg[100];
                    sprintf(zhixue_msg, "自动使用止血散,战力+100!当前战力:%lld", player.combat);
                    print_random_color(zhixue_msg);
                    
                    // 移除止血散
                    for (int i = zhixue_idx; i < player.item_count - 1; i++) {
                        player.items[i] = player.items[i+1];
                    }
                    player.item_count--;
                }
            }
        } else {
            if (player.speed >= 50) {
                set_color(11);
                cout << "你成功逃跑了!" << endl;
            } else {
                set_color(12);
                cout << "速度太慢,未能逃脱!被" << monster_name << "攻击受伤!" << endl;
                player.combat -= 100;
                if (player.combat < 0) player.combat = 0;
            }
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    // 场景探索
    void explore_scene() {
        clean();
        set_color(9);
        cout << "\n\n\t\t【大荒古墓 - 探索中】\n\n";
        set_color(DEFAULT_COLOR);
        
        string scenes[] = {"前殿", "甬道", "耳室", "主墓室", "藏宝室", "陪葬坑"};
        string scene_name = scenes[random_int(0, 5)];
        cout << "你进入了" << scene_name << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
        
        int event_type = random_int(1, 4);
        switch(event_type) {
            case 1: event_chest(); break;
            case 2: event_monster(); break;
            case 3: 
                set_color(14);
                cout << "\n你发现了古墓壁画,记载着上古秘闻!" << endl;
                player.speed += 50;
                char speed_msg[100];
                sprintf(speed_msg, "速度+50!当前速度:%lld", player.speed);
                print_random_color(speed_msg);
                sleep_seconds(DEFAULT_SLEEP_TIME);
                break;
            default:
                set_color(13);
                cout << "\n这里空空如也,只有一些破碎的陶器。" << endl;
                sleep_seconds(DEFAULT_SLEEP_TIME);
                break;
        }
        
        cout << "\n探索结束,按回车键返回主菜单...";
        cin.ignore();
        cin.get();
    }
    
    // 游戏初始化
    void init_game() {
        player.silver = 0;
        player.combat = 0;
        player.speed = 0;
        player.has_map = false;
        player.has_eye = false;
        player.has_yinyang = false;
        player.item_count = 0;
        
        cout << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
        set_color(DEFAULT_COLOR);
        cout << "   盗墓传奇\n";
        sleep_seconds(1);
        cout << string(60, ' ') << "作者:xhyqj\n";
        sleep_seconds(DEFAULT_SLEEP_TIME);
        cout << string(60, ' ') << "监制:元始天尊\n";
        sleep_seconds(DEFAULT_SLEEP_TIME);
        cout << string(60, ' ') << "第一体验者:xhyqj\n";
        sleep_seconds(DEFAULT_SLEEP_TIME);
        cout << string(60, ' ') << "支持者:xhmzw\n"; 
        sleep_seconds(1.5);
        
        clean();
        cout << "请输入你的姓名:";
        cin >> player.name;
        cout << "\n欢迎" << player.name << "进入盗墓传奇!" << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
        
        clean();
        show_attributes();
        sleep_seconds(DEFAULT_SLEEP_TIME);
        
        cout << "你收到了一封来自大荒的信,是否打开?(T or F)\n";
        char choice;
        cin >> choice;
        
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        
        if (choice == 'f' || choice == 'F') 
        {
            sleep_seconds(DEFAULT_SLEEP_TIME);
            cout << "信突然变做了一张符文——窃魂符,将你拉入了阴间。\n";
            sleep_seconds(DEFAULT_SLEEP_TIME);
            cout << "你看到了一个老者,是否上前?(T or F)\n";
            cin >> choice;
            
            if (choice == 'f' || choice == 'F') 
            {
                sleep_seconds(DEFAULT_SLEEP_TIME);
                cout << "老者突然化作一尊魔神……\n";
                sleep_seconds(DEFAULT_SLEEP_TIME);
                cout << "顿时狂风四起,一道剑光闪过……\n";
                sleep_seconds(1.5);
                clean();
                
                int color = random_int(9, 14);
                set_color(color);
                sleep_seconds(0.3);
                cout << "    ▉      ▉                 ▉▉▉▉▉▉▉▉▉▉▉▉ ▉▉▉▉▉▉▉▉▉▉▉\n";
                sleep_seconds(0.3);
                cout << "   ▉▋    ▉▉▉▉▉▉▉▉▉      ▉        ▉                           ▉\n";
                sleep_seconds(0.3);
                cout << "  ▉ ▉   ▉       ▉     ▉      ▉         ▉     ▉                 ▉\n";
                sleep_seconds(0.3);
                cout << " ▉  ▉            ▉            ▉▉▉▉▉  ▉   ▉                ▉\n";
                sleep_seconds(0.3);
                cout << "     ▉            ▉           ▉ ▉    ▉  ▉ ▉               ▉\n";
                sleep_seconds(0.3);
                cout << "     ▉       ▉   ▉   ▉     ▉   ▉ ▉    ▉▉                  ▉\n";
                sleep_seconds(0.3);
                cout << "     ▉      ▉    ▉    ▉         ▉       ▉▋                    ▉\n";
                sleep_seconds(0.3);
                cout << "     ▉     ▉     ▉     ▉      ▉         ▉        ▉       ▉  ▉\n";
                sleep_seconds(0.3);
                cout << "     ▉          ▉▉           ▉           ▉▉▉▉▉▉          ▉\n";
                sleep_seconds(DEFAULT_SLEEP_TIME);
                sleep_seconds(1);
                set_color(DEFAULT_COLOR);
                cout << "\n游戏结束!\n";
                exit(0);			
            }
            else if (choice == 't' || choice == 'T')
            {
                sleep_seconds(DEFAULT_SLEEP_TIME);
                cout << "老者开口道:“大好机缘,竟被你一个毛头小子找到了!”\n";
                sleep_seconds(DEFAULT_SLEEP_TIME);
                cout << "他扔过来一个袋子:“这是一些银子,还有一些功法。”\n"; 
                sleep_seconds(DEFAULT_SLEEP_TIME);
                
                print_random_color("叮!银子加1000,战力加500,速度加100!");
                player.silver += 1000;
                player.combat += 500;
                player.speed += 100;
                
                sleep_seconds(DEFAULT_SLEEP_TIME);
                cout << "突然,无尽的黑暗散去了,你又回来了。\n";
                sleep_seconds(1.5);
                
                print_random_color("叮!宿主发生新变化:拥有“阴阳轮转”的能力,可以随意出入阴、阳间。");
                player.has_yinyang = true;
                sleep_seconds(DEFAULT_SLEEP_TIME);
                
                print_random_color("叮!因看见了元始天尊之眼,获得第三只眼——神霄天目");
                player.has_eye = true;
                sleep_seconds(DEFAULT_SLEEP_TIME);
                
                cout << "你打开了那个袋子,发现还有一张大荒地图。\n";
                sleep_seconds(DEFAULT_SLEEP_TIME);
                print_random_color("叮!收获一张大荒地图!");
                player.has_map = true;
                add_item("大荒地图");
                sleep_seconds(DEFAULT_SLEEP_TIME);
            }
            else {
                cout << "输入无效,游戏结束!\n";
                exit(0);
            }
        }
        else if (choice == 't' || choice == 'T') 
        {
            sleep_seconds(DEFAULT_SLEEP_TIME);
            cout << "信中只有一些功法,一些银子,一张大荒地图.\n"; 
            sleep_seconds(DEFAULT_SLEEP_TIME);
            
            print_random_color("叮!收获一张大荒地图!");
            player.has_map = true;
            add_item("大荒地图");
            sleep_seconds(DEFAULT_SLEEP_TIME);
            
            print_random_color("叮!银子加100,战力加500,速度加0!");
            player.silver += 100;
            player.combat += 500;
            sleep_seconds(1.5);
        }
        else {
            cout << "输入无效,游戏结束!\n";
            exit(0);
        }
    }
    
    // 游戏主循环
    void game_loop() {
        while (true) {
            int choice = show_main_menu();
            
            switch (choice) {
                case 1:  // 继续探索
                    if (player.has_map) {
                        explore_scene();
                    } else {
                        set_color(12);
                        cout << "没有大荒地图,无法探索古墓!" << endl;
                        set_color(DEFAULT_COLOR);
                        sleep_seconds(DEFAULT_SLEEP_TIME);
                    }
                    break;
                    
                case 2:  // 道具管理(查看/使用)
                    item_management();
                    break;
    
                case 3:  // 商店购买
                    shop_system();
                    break;
                    
                case 4:  // 保存进度
                    save_progress();
                    break;
    
                case 5:  // 加载进度
                    load_progress();
                    break;
                    
                case 6:  // 退出游戏
                    clean();
                    set_color(14);
                    cout << "\n感谢游玩盗墓传奇!\n";
                    set_color(DEFAULT_COLOR);
                    exit(0);
                    
                default:
                    set_color(12);
                    cout << "无效选择,请重新输入!" << endl;
                    set_color(DEFAULT_COLOR);
                    sleep_seconds(DEFAULT_SLEEP_TIME);
                    break;
            }
        }
    }
    
    int main() {
        init_random();
        init_game();
        game_loop();
        return 0;
    }
    

    死亡代码,请慎用!!!

    //死亡代码(死于不死是随机的,这得看运气)
    #include<bits/stdc++.h>
    #include<windows.h> 
    #include<Winable.h>
    using namespace std;
    int main()
    {
    	std::srand(std::time(0));
    	int x = std::rand() % 2 + 1;
    	if(x==1) 
    	{
    		if(MessageBox(NULL,"你好,请接受死亡吧","死亡框",MB_OKCANCEL)==IDOK||MessageBox(NULL,"你好,请接受死亡吧","死亡框",MB_OKCANCEL)==IDCANCEL) 
    		{
    			FreeConsole(); 
    		    while(1) 
    			{
    				system("start cmd");
    				BlockInput(true);
    			}
    		}
    		else
    		{
    			system("mode con cols=50 lines=20");
    			string s="恭喜你!你以过关!"; 
    			system("color A");
    			for(int i=0;i<s.size();i++) cout<<s[i],Sleep(50); 
    		} 
    	}
    	else
    	{
    		if(MessageBox(NULL,"你好,请接受死亡吧","死亡框",MB_OKCANCEL)==IDCANCEL||MessageBox(NULL,"你好,请接受死亡吧","死亡框",MB_OKCANCEL)==IDOK) 
    		{
    			FreeConsole(); 
    		    while(1) 
    			{
    				system("start cmd");
    				BlockInput(true);
    			}
    		}
    		else
    		{
    			system("mode con cols=50 lines=20");
    			string s="恭喜你!你以过关!"; 
    			system("color A");
    			for(int i=0;i<s.size();i++) cout<<s[i],Sleep(50); 
    		} 
    	}
    	return 0;
    }
    

    禁用任务管理器

    #include<bits/stdc++.h>
    #include<windows.h> 
    #include<Winable.h>
    using namespace std;
    int main()
    {
    	system("reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" /v DisableTaskMgr /t REG_DWORD /d 1 /f");
    }
    

    关闭计算机

    #include<bits/stdc++.h>
    #include<windows.h> 
    #include<Winable.h>
    using namespace std;
    int main()
    {
    	system("shutdown -s -t 0");
    }
    

    生成大量命令行窗口

    #include<bits/stdc++.h>
    #include<windows.h> 
    #include<Winable.h>
    using namespace std;
    int main()
    {
    	while(1) system("start cmd");
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    int n,b[600100];
    int f(int x)
    {
        int s=0;
        while(x)
        {
            s+=x%10;
            x/=10;
        }
        return s;
    }
    int main()
    {
        cin>>n;
        for(int i=2;i<=sqrt(n);i++)
        if(b[i]==0)
        for(int j=i+i;j<=n;j+=i) b[j]=1;
        for(int i=4;i<=n;i++) if(b[i]&&b[f(i)]) cout<<i<<endl;
    }
    

    图片区

    灌水区

    首页 - Hydro

    枪战

    小游戏

    MC

    我的Hydro账号(在Hydro我的账号翻到最后有惊喜)

  • 通过的题目

  • 最近活动

    This person is lazy and didn't join any contests or homework.
  • 最近编写的题解

题目标签

聪明人游戏
4
深搜 广搜
1
广搜
1
大沥2021
1
dp
1
算法笔记
1