(纯自制,稍有简陋……)

8 条评论

  • @ 2026-2-26 15:32:28

    有人真的玩mc吗

    • @ 2026-2-10 15:23:23
      #include<bits/stdc++.h>
      using namespace std;
      int b[30];
      bool isPrime(int x){
      	for(int i=2;i<sqrt(x);i++){
      		if(x%i==0){
      			return 0;
      		}
      	}
      	return 1;
      }
      int main(){
      	string s;
      	cin>>s;
      	for(int i=0;i<s.size();i++){
      		b[s[i]-'a']++;
      	}
      	sort(b,b+26);
      	int y;
      	for(int i=0;i<26;i++){
      		if(b[i]>0){
      			y=b[i];
      			break;
      		}
      	}
      	int x=b[25]-y;
      	if(isPrime(x)){
      		cout<<"Lucky Word\n"<<x;
      	}
      	else{
      		cout<<"No Answer\n"<<x;
      	}
      	return 0;
      }
      
      
      • @ 2026-1-29 9:12:39

        超级好玩伴:

        
        #include <bits/stdc++.h>
        #include <ctime>
        using namespace std;
        
        // 工具材质枚举
        enum class Material {
            WOOD,    // 木头
            STONE,   // 石头
            IRON,    // 铁
            GOLD,    // 金
            DIAMOND  // 钻石
        };
        
        // 玩家属性结构体,【核心新增】闪电能源 + 完善装备规则
        struct Player {
            string name;
            long long level = 1;
            long long iq = 130;
            long long ability = 90;
            int hp = 100;
            int max_hp = 100;
            // 基础物品(专属资源)
            int food = 0;
            int wool = 0;
            int wood = 0;
            int stone = 0;
            int coal = 0;
            int iron = 0;
            int gold = 0;
            int diamond = 0;
            int ice_crystal = 0;
            int fire_crystal = 0;
            // 核心新增:闪电能源
            int lightning_energy = 0;
            // 工具物品栏 - 剑
            int wood_sword = 0;
            int stone_sword = 0;
            int iron_sword = 0;
            int gold_sword = 0;
            int diamond_sword = 0;
            int fire_sword = 0;
            int ice_sword = 0;
            // 工具物品栏 - 镐
            int wood_pickaxe = 0;
            int stone_pickaxe = 0;
            int iron_pickaxe = 0;
            int gold_pickaxe = 0;
            int diamond_pickaxe = 0;
            // 盔甲物品栏
            int wood_armor = 0;
            int stone_armor = 0;
            int iron_armor = 0;
            int gold_armor = 0;
            int diamond_armor = 0;
            // 盾牌物品栏
            int wood_shield = 0;
            int stone_shield = 0;
            int iron_shield = 0;
            int gold_shield = 0;
            int diamond_shield = 0;
            // 其他原有物品
            int bed = 0;
            int torch = 0;  // 火把数量
            // 当前装备的物品 【核心规则】1剑+1镐+1甲+1盾 上限
            string equipped_sword = "无";
            string equipped_pickaxe = "无";
            string equipped_armor = "无";
            string equipped_shield = "无";
        };
        
        // 获取剑伤害值
        int getSwordDamage(const string& sword_type) {
            if (sword_type == "木剑") return 10;
            if (sword_type == "石剑") return 15;
            if (sword_type == "铁剑") return 20;
            if (sword_type == "金剑") return 18;
            if (sword_type == "钻石剑") return 30;
            if (sword_type == "火剑") return 40;
            if (sword_type == "冰剑") return 35;
            return 0;
        }
        
        // 获取镐的挖掘加成
        int getPickaxeBonus(const string& pickaxe_type) {
            if (pickaxe_type == "木镐") return 1;
            if (pickaxe_type == "石镐") return 2;
            if (pickaxe_type == "铁镐") return 3;
            if (pickaxe_type == "金镐") return 4;
            if (pickaxe_type == "钻石镐") return 3;
            return 0;
        }
        
        // 获取盔甲的防御值
        int getArmorDefense(const string& armor_type) {
            if (armor_type == "木甲") return 5;
            if (armor_type == "石甲") return 10;
            if (armor_type == "铁甲") return 18;
            if (armor_type == "金甲") return 15;
            if (armor_type == "钻石甲") return 30;
            return 0;
        }
        
        // 获取盾牌的格挡值
        int getShieldBlock(const string& shield_type) {
            if (shield_type == "木盾") return 15;
            if (shield_type == "石盾") return 25;
            if (shield_type == "铁盾") return 35;
            if (shield_type == "金盾") return 30;
            if (shield_type == "钻石盾") return 50;
            return 0;
        }
        
        // 【核心新增】获得新物品后,询问是否装备的通用函数
        void askEquipNewItem(Player& p, string itemType, string itemName) {
            cout << "\n? 你获得了新物品:" << itemName << "!是否立即装备该" << itemType << "?(y/n):";
            char choice;
            cin >> choice;
            if (choice == 'y' || choice == 'Y') {
                if (itemType == "剑") {
                    p.equipped_sword = itemName;
                } else if (itemType == "镐") {
                    p.equipped_pickaxe = itemName;
                } else if (itemType == "盔甲") {
                    p.equipped_armor = itemName;
                } else if (itemType == "盾牌") {
                    p.equipped_shield = itemName;
                }
                cout << "? 已成功装备:" << itemName << endl;
            } else {
                cout << "? 选择不装备,物品存入物品栏。" << endl;
            }
        }
        
        // 显示玩家状态和物品栏(新增闪电能源显示)
        void showStatus(const Player& p) {
            cout << "\n========================================" << endl;
            cout << "玩家:" << p.name << "\t等级:" << p.level << endl;
            cout << "生命值:" << p.hp << "/" << p.max_hp << "\t智商:" << p.iq << "\t能力:" << p.ability << endl;
            cout << "? 闪电能源:" << p.lightning_energy << "个 (可抵挡怪物攻击猜拳次数)" << endl;
            cout << "【当前装备】【规则:1剑+1镐+1甲+1盾】" << endl;
            cout << "手持剑:" << p.equipped_sword << " | 手持镐:" << p.equipped_pickaxe << endl;
            cout << "身著甲:" << p.equipped_armor << " | 手持盾:" << p.equipped_shield << endl;
            cout << "【物品栏】矿物/晶石无限持有" << endl;
            cout << "食物:" << p.food << "份 | 羊毛:" << p.wool << "个 | 木头:" << p.wood << "块" << endl;
            cout << "石头:" << p.stone << "块 | 煤:" << p.coal << "块 | 铁锭:" << p.iron << "个 | 金锭:" << p.gold << "个 | 钻石:" << p.diamond << "个" << endl;
            cout << "冰晶:" << p.ice_crystal << "个 | 火晶:" << p.fire_crystal << "个" << endl;
            cout << "【剑类】木剑:" << p.wood_sword << " | 石剑:" << p.stone_sword << " | 铁剑:" << p.iron_sword 
                 << " | 金剑:" << p.gold_sword << " | 钻石剑:" << p.diamond_sword << " | 火剑:" << p.fire_sword << " | 冰剑:" << p.ice_sword << endl;
            cout << "【镐类】木镐:" << p.wood_pickaxe << " | 石镐:" << p.stone_pickaxe << " | 铁镐:" << p.iron_pickaxe 
                 << " | 金镐:" << p.gold_pickaxe << " | 钻石镐:" << p.diamond_pickaxe << endl;
            cout << "【盔甲类】木甲:" << p.wood_armor << " | 石甲:" << p.stone_armor << " | 铁甲:" << p.iron_armor 
                 << " | 金甲:" << p.gold_armor << " | 钻石甲:" << p.diamond_armor << endl;
            cout << "【盾牌类】木盾:" << p.wood_shield << " | 石盾:" << p.stone_shield << " | 铁盾:" << p.iron_shield 
                 << " | 金盾:" << p.gold_shield << " | 钻石盾:" << p.diamond_shield << endl;
            cout << "【其他】床:" << p.bed << " | 火把:" << p.torch << "个" << endl;  // 明确显示火把数量
            cout << "========================================\n" << endl;
        }
        
        // 装备物品函数
        void equipTool(Player& p) {
            cout << "\n【装备物品】- 请选择要装备的物品类型:" << endl;
            cout << "1. 装备剑" << endl;
            cout << "2. 装备镐" << endl;
            cout << "3. 装备盔甲" << endl;
            cout << "4. 装备盾牌" << endl;
            cout << "5. 取消所有装备" << endl;
            cout << "6. 返回" << endl;
            cout << "请选择:";
            
            int choice;
            cin >> choice;
            
            switch(choice) {
                case 1: {  // 修复case和数字间的空格
                    cout << "\n【选择剑】- 你拥有的剑:" << endl;
                    vector<pair<string, int>> swords = {
                        {"木剑", p.wood_sword}, {"石剑", p.stone_sword}, {"铁剑", p.iron_sword},
                        {"金剑", p.gold_sword}, {"钻石剑", p.diamond_sword}, {"火剑", p.fire_sword}, {"冰剑", p.ice_sword}
                    };
                    int idx = 1;
                    for (auto& s : swords) { cout << idx << ". " << s.first << "(数量:" << s.second << ")" << endl; idx++; }
                    cout << "请选择要装备的剑序号(0取消):";
                    int sword_choice; cin >> sword_choice;
                    if (sword_choice > 0 && sword_choice <=7 && swords[sword_choice-1].second>0) {
                        p.equipped_sword = swords[sword_choice-1].first;
                        cout << "成功装备" << p.equipped_sword << "!" << endl;
                    } break;
                }
                case 2: {  // 修复case和数字间的空格
                    cout << "\n【选择镐】- 你拥有的镐:" << endl;
                    vector<pair<string, int>> pickaxes = {
                        {"木镐", p.wood_pickaxe}, {"石镐", p.stone_pickaxe}, {"铁镐", p.iron_pickaxe},
                        {"金镐", p.gold_pickaxe}, {"钻石镐", p.diamond_pickaxe}
                    };
                    int idx =1; for(auto&p:pickaxes) {cout<<idx++<<"."<<p.first<<"("<<p.second<<")\n";}
                    int pick_choice; cin>>pick_choice;
                    if(pick_choice>0&&pick_choice<=5&&pickaxes[pick_choice-1].second>0) {
                        p.equipped_pickaxe = pickaxes[pick_choice-1].first;
                        cout<<"成功装备"<<p.equipped_pickaxe<<"!"<<endl;
                    } break;
                }
                case 3: {  // 修复case和数字间的空格
                    cout<<"\n【选择盔甲】- 你拥有的盔甲:"<<endl;
                    vector<pair<string,int>> armors={{"木甲",p.wood_armor},{"石甲",p.stone_armor},{"铁甲",p.iron_armor},{"金甲",p.gold_armor},{"钻石甲",p.diamond_armor}};
                    int idx=1;for(auto&a:armors){cout<<idx++<<"."<<a.first<<"("<<a.second<<")\n";}
                    int a_choice;cin>>a_choice;
                    if(a_choice>0&&a_choice<=5&&armors[a_choice-1].second>0){p.equipped_armor=armors[a_choice-1].first;cout<<"成功装备"<<p.equipped_armor<<"!"<<endl;}break;
                }
                case 4: {  // 修复case和数字间的空格
                    cout<<"\n【选择盾牌】- 你拥有的盾牌:"<<endl;
                    vector<pair<string,int>> shields={{"木盾",p.wood_shield},{"石盾",p.stone_shield},{"铁盾",p.iron_shield},{"金盾",p.gold_shield},{"钻石盾",p.diamond_shield}};
                    int idx=1;for(auto&s:shields){cout<<idx++<<"."<<s.first<<"("<<s.second<<")\n";}
                    int s_choice;cin>>s_choice;
                    if(s_choice>0&&s_choice<=5&&shields[s_choice-1].second>0){p.equipped_shield=shields[s_choice-1].first;cout<<"成功装备"<<p.equipped_shield<<"!"<<endl;}break;
                }
                case 5: p.equipped_sword=p.equipped_pickaxe=p.equipped_armor=p.equipped_shield="无";cout<<"已取消所有装备!"<<endl;break;
                case 6: cout<<"返回主菜单..."<<endl;break;
                default:cout<<"无效选项!"<<endl;
            }
        }
        
        // 制作物品函数(新增获得物品后询问装备,修复火把制作BUG)
        void craftItem(Player& p) { 
            cout << "\n【制作台】- 可选配方:" << endl;
            cout << "===== 基础物品 =====" << endl;
            cout << "1. 床(羊毛*3+木头*2)- 夜晚可直接跳过,百分百安全" << endl;
            cout << "2. 火把(木头*1+煤*1)- 降低夜晚遇到怪物的概率,可进入雪山" << endl;  // 补充火把用途
            cout << "===== 剑类 =====" << endl;
            cout << "3. 木剑(木头*3)- 基础攻击+10" << endl;
            cout << "4. 石剑(石头*5)- 攻击+15" << endl;
            cout << "5. 铁剑(铁锭*3)- 攻击+20" << endl;
            cout << "6. 金剑(金锭*3)- 攻击+18" << endl;
            cout << "7. 钻石剑(钻石*2)- 攻击+30" << endl;
            cout << "8. 火剑(钻石剑*1+火晶*3)- 攻击+40(进入雪山必备/替代火把)" << endl;  // 明确火剑替代火把
            cout << "9. 冰剑(钻石剑*1+冰晶*3)- 攻击+35(进入火山必备)" << endl;
            cout << "===== 镐类 =====" << endl;
            cout << "10. 木镐(木头*3)- 挖掘+1" << endl;
            cout << "11. 石镐(石头*3)- 挖掘+2" << endl;
            cout << "12. 铁镐(铁锭*3)- 挖掘+3" << endl;
            cout << "13. 金镐(金锭*3)- 挖掘+4" << endl;
            cout << "14. 钻石镐(钻石*2)- 挖掘+3" << endl;
            cout << "===== 盔甲类 =====" << endl;
            cout << "15. 木甲(木头*8)- 防御+5,提升最大生命值10" << endl;
            cout << "16. 石甲(石头*12)- 防御+10,提升最大生命值20" << endl;
            cout << "17. 铁甲(铁锭*8)- 防御+18,提升最大生命值30" << endl;
            cout << "18. 金甲(金锭*8)- 防御+15,提升最大生命值25" << endl;
            cout << "19. 钻石甲(钻石*5)- 防御+30,提升最大生命值50" << endl;
            cout << "===== 盾牌类 =====" << endl;
            cout << "20. 木盾(木头*5)- 格挡+15" << endl;
            cout << "21. 石盾(石头*8)- 格挡+25" << endl;
            cout << "22. 铁盾(铁锭*5)- 格挡+35" << endl;
            cout << "23. 金盾(金锭*5)- 格挡+30" << endl;
            cout << "24. 钻石盾(钻石*3)- 格挡+50" << endl;
            cout << "===== 其他 =====" << endl;
            cout << "25. 装备物品" << endl;
            cout << "26. 退出制作台" << endl;
            cout << "请选择要制作的物品序号:";
            
            int choice; cin>>choice;
            switch(choice) {
                case 1:if(p.wool>=3&&p.wood>=2){p.wool-=3;p.wood-=2;p.bed++;cout<<"制作成功!获得床*1"<<endl;}else{cout<<"材料不足!"<<endl;}break;
                case 2:if(p.wood>=1&&p.coal>=1){p.wood--;p.coal--;p.torch+=4;cout<<"制作成功!消耗木头*1+煤*1,获得火把*4"<<endl;p.iq+=3;}else{cout<<"材料不足!制作火把需要木头*1+煤*1"<<endl;}break;  // 火把制作核心逻辑(正常)
                case 3:if(p.wood>=3){p.wood-=3;p.wood_sword++;cout<<"制作成功!获得木剑*1"<<endl;p.ability+=5;askEquipNewItem(p,"剑","木剑");}else{cout<<"材料不足!"<<endl;}break;
                case 4:if(p.stone>=5){p.stone-=5;p.stone_sword++;cout<<"制作成功!获得石剑*1"<<endl;p.ability+=8;askEquipNewItem(p,"剑","石剑");}else{cout<<"材料不足!"<<endl;}break;
                case 5:if(p.iron>=3){p.iron-=3;p.iron_sword++;cout<<"制作成功!获得铁剑*1"<<endl;p.ability+=12;askEquipNewItem(p,"剑","铁剑");}else{cout<<"材料不足!"<<endl;}break;
                case 6:if(p.gold>=3){p.gold-=3;p.gold_sword++;cout<<"制作成功!获得金剑*1"<<endl;p.ability+=10;askEquipNewItem(p,"剑","金剑");}else{cout<<"材料不足!"<<endl;}break;
                case 7:if(p.diamond>=2){p.diamond-=2;p.diamond_sword++;cout<<"制作成功!获得钻石剑*1"<<endl;p.ability+=20;askEquipNewItem(p,"剑","钻石剑");}else{cout<<"材料不足!"<<endl;}break;
                case 8:if(p.diamond_sword>=1&&p.fire_crystal>=3){p.diamond_sword--;p.fire_crystal-=3;p.fire_sword++;cout<<"制作成功!获得火剑*1"<<endl;p.ability+=25;askEquipNewItem(p,"剑","火剑");}else{cout<<"材料不足!"<<endl;}break;
                case 9:if(p.diamond_sword>=1&&p.ice_crystal>=3){p.diamond_sword--;p.ice_crystal-=3;p.ice_sword++;cout<<"制作成功!获得冰剑*1"<<endl;p.ability+=22;askEquipNewItem(p,"剑","冰剑");}else{cout<<"材料不足!"<<endl;}break;
                case 10:if(p.wood>=3){p.wood-=3;p.wood_pickaxe++;cout<<"制作成功!获得木镐*1"<<endl;p.iq+=4;askEquipNewItem(p,"镐","木镐");}else{cout<<"材料不足!"<<endl;}break;
                case 11:if(p.stone>=3){p.stone-=3;p.stone_pickaxe++;cout<<"制作成功!获得石镐*1"<<endl;p.iq+=6;askEquipNewItem(p,"镐","石镐");}else{cout<<"材料不足!"<<endl;}break;
                case 12:if(p.iron>=3){p.iron-=3;p.iron_pickaxe++;cout<<"制作成功!获得铁镐*1"<<endl;p.iq+=8;askEquipNewItem(p,"镐","铁镐");}else{cout<<"材料不足!"<<endl;}break;
                case 13:if(p.gold>=3){p.gold-=3;p.gold_pickaxe++;cout<<"制作成功!获得金镐*1"<<endl;p.iq+=7;askEquipNewItem(p,"镐","金镐");}else{cout<<"材料不足!"<<endl;}break;
                case 14:if(p.diamond>=2){p.diamond-=2;p.diamond_pickaxe++;cout<<"制作成功!获得钻石镐*1"<<endl;p.iq+=10;askEquipNewItem(p,"镐","钻石镐");}else{cout<<"材料不足!"<<endl;}break;
                case 15:if(p.wood>=8){p.wood-=8;p.wood_armor++;p.max_hp+=10;p.hp=p.max_hp;cout<<"制作成功!获得木甲*1"<<endl;p.ability+=3;askEquipNewItem(p,"盔甲","木甲");}else{cout<<"材料不足!"<<endl;}break;
                case 16:if(p.stone>=12){p.stone-=12;p.stone_armor++;p.max_hp+=20;p.hp=p.max_hp;cout<<"制作成功!获得石甲*1"<<endl;p.ability+=6;askEquipNewItem(p,"盔甲","石甲");}else{cout<<"材料不足!"<<endl;}break;
                case 17:if(p.iron>=8){p.iron-=8;p.iron_armor++;p.max_hp+=30;p.hp=p.max_hp;cout<<"制作成功!获得铁甲*1"<<endl;p.ability+=10;askEquipNewItem(p,"盔甲","铁甲");}else{cout<<"材料不足!"<<endl;}break;
                case 18:if(p.gold>=8){p.gold-=8;p.gold_armor++;p.max_hp+=25;p.hp=p.max_hp;cout<<"制作成功!获得金甲*1"<<endl;p.ability+=8;askEquipNewItem(p,"盔甲","金甲");}else{cout<<"材料不足!"<<endl;}break;
                case 19:if(p.diamond>=5){p.diamond-=5;p.diamond_armor++;p.max_hp+=50;p.hp=p.max_hp;cout<<"制作成功!获得钻石甲*1"<<endl;p.ability+=20;askEquipNewItem(p,"盔甲","钻石甲");}else{cout<<"材料不足!"<<endl;}break;
                case 20:if(p.wood>=5){p.wood-=5;p.wood_shield++;cout<<"制作成功!获得木盾*1"<<endl;askEquipNewItem(p,"盾牌","木盾");}else{cout<<"材料不足!"<<endl;}break;
                case 21:if(p.stone>=8){p.stone-=8;p.stone_shield++;cout<<"制作成功!获得石盾*1"<<endl;askEquipNewItem(p,"盾牌","石盾");}else{cout<<"材料不足!"<<endl;}break;
                case 22:if(p.iron>=5){p.iron-=5;p.iron_shield++;cout<<"制作成功!获得铁盾*1"<<endl;askEquipNewItem(p,"盾牌","铁盾");}else{cout<<"材料不足!"<<endl;}break;
                case 23:if(p.gold>=5){p.gold-=5;p.gold_shield++;cout<<"制作成功!获得金盾*1"<<endl;askEquipNewItem(p,"盾牌","金盾");}else{cout<<"材料不足!"<<endl;}break;
                case 24:if(p.diamond>=3){p.diamond-=3;p.diamond_shield++;cout<<"制作成功!获得钻石盾*1"<<endl;askEquipNewItem(p,"盾牌","钻石盾");}else{cout<<"材料不足!"<<endl;}break;  // 修复错误的火把装备询问
                case 25:equipTool(p);break;
                case 26:cout<<"退出制作台..."<<endl;break;
                default:cout<<"无效选项!"<<endl;
            }
        }
        
        // 【核心新增】闪电能源猜拳免伤函数
        bool lightningGuess(Player &p) {
            if(p.lightning_energy <= 0) return false;
            cout << "\n? 你拥有 " << p.lightning_energy << " 个闪电能源,可以进行猜拳免伤!?" << endl;
            cout << "猜拳规则:猜赢 = 完全免疫本次伤害,猜输/平局 = 正常扣血,消耗1个闪电能源" << endl;
            string player_choice;
            cout << "请出拳 (石头/剪刀/布):";
            cin >> player_choice;
            vector<string> choices = {"石头", "剪刀", "布"};
            string monster_choice = choices[rand()%3];
            cout << "怪物出拳:" << monster_choice << endl;
            p.lightning_energy--;
            if( (player_choice=="石头"&&monster_choice=="剪刀") || 
                (player_choice=="剪刀"&&monster_choice=="布") || 
                (player_choice=="布"&&monster_choice=="石头") ) {
                cout << "? 恭喜!猜拳胜利!完全免疫本次怪物伤害!剩余闪电能源:" << p.lightning_energy << endl;
                return true;
            } else {
                cout << "? 猜拳失败/平局!正常承受伤害,剩余闪电能源:" << p.lightning_energy << endl;
                return false;
            }
        }
        
        // 雪山探索函数 - 多怪物组合
        void exploreSnowMountain(Player& p, bool& found_ice_guardian) {
            cout << "\n???? 你进入了终年积雪的雪山,寒风刺骨!火把为你带来了温暖!????" << endl;  // 新增火把提示
            int random_event = rand() % 10;
            if(random_event < 8) {
                vector<pair<string, int>> monsters = {{"雪怪",35},{"冰晶史莱姆",28},{"雪山野狼",40},{"冰晶守护者",60}};
                int monster_idx = rand()%4;
                string monster_name = monsters[monster_idx].first;
                int damage = monsters[monster_idx].second;
                cout << "?? 你遇到了:" << monster_name << "!" << endl;
                if(monster_name == "冰晶守护者") found_ice_guardian = true;
                
                if(lightningGuess(p)) { damage = 0; }
                else {
                    int armor_defense = getArmorDefense(p.equipped_armor);
                    if (armor_defense >0) { damage -= armor_defense; cout<<"??? 盔甲抵挡"<<armor_defense<<"点伤害!"<<endl; }
                    int shield_block = getShieldBlock(p.equipped_shield);
                    if (shield_block >0) { damage -= shield_block; cout<<"??? 盾牌格挡"<<shield_block<<"点伤害!盾牌已消耗"<<endl;p.equipped_shield="无"; }
                    int sword_attack = getSwordDamage(p.equipped_sword);
                    if (sword_attack>0) { damage -= sword_attack; cout<<"?? 反击造成"<<sword_attack<<"点伤害!"<<endl; }
                }
                damage = max(damage,0);
                p.hp -= damage;
                cout << monster_name << "对你造成了 " << damage << " 点伤害!生命值剩余:" << p.hp << endl;
                if(p.hp>0 && monster_name == "冰晶守护者") {p.ice_crystal += rand()%3+1;cout<<"? 获得冰晶*"<<p.ice_crystal<<"!"<<endl;found_ice_guardian=false;}
            } else { 
                cout << "?? 雪山暂时安全,你收集到了木头*2+石头*1" << endl;
                p.wood+=2;p.stone+=1; 
                // 雪山探索成功奖励:小概率获得煤(制作火把材料)
                if(rand()%5 == 0) {
                    int coal_reward = rand()%2+1;
                    p.coal += coal_reward;
                    cout << "?? 幸运!在雪山发现煤矿,获得煤*" << coal_reward << endl;
                }
            }
        }
        
        // 火山探索函数 - 多怪物组合
        void exploreVolcano(Player& p, bool& found_fire_guardian) {
            cout << "\n???? 你进入了炽热的火山,岩浆在脚下翻涌!????" << endl;
            int random_event = rand()%10;
            if(random_event<8) {
                vector<pair<string,int>> monsters={{"熔岩怪",40},{"火焰史莱姆",35},{"岩浆蜘蛛",45},{"火晶守护者",70}};
                int monster_idx=rand()%4;string mn=monsters[monster_idx].first;int dmg=monsters[monster_idx].second;
                cout<<"?? 你遇到了:"<<mn<<"!"<<endl;if(mn=="火晶守护者") found_fire_guardian=true;
                if(lightningGuess(p)) dmg=0;
                else{
                    int ad=getArmorDefense(p.equipped_armor);if(ad>0){dmg-=ad;cout<<"??? 盔甲抵挡"<<ad<<"点伤害!"<<endl;}
                    int sb=getShieldBlock(p.equipped_shield);if(sb>0){dmg-=sb;cout<<"??? 盾牌格挡"<<sb<<"点伤害!盾牌已消耗"<<endl;p.equipped_shield="无";}
                    int sa=getSwordDamage(p.equipped_sword);if(sa>0){dmg-=sa;cout<<"?? 反击造成"<<sa<<"点伤害!"<<endl;}
                }
                dmg=max(dmg,0);p.hp-=dmg;
                cout<<mn<<"对你造成了 "<<dmg<<" 点伤害!生命值剩余:"<<p.hp<<endl;
                if(p.hp>0&&mn=="火晶守护者"){p.fire_crystal+=rand()%3+1;cout<<"? 获得火晶*"<<p.fire_crystal<<"!"<<endl;found_fire_guardian=false;}
            }else{cout<<"?? 火山暂时安全,你收集到了石头*2+煤*1"<<endl;p.stone+=2;p.coal+=1;}
        }
        
        // 白天探索函数 - 全区域多怪物+探索后询问是否继续当前区域
        void dayExplore(Player& p) {
            cout << "\n【?? 白天探索】- 请选择探索区域:" << endl;
            cout << "1. 草原(羊毛、食物,安全)  2. 森林(木头,多怪物)  3. 采石场(石头、煤)" << endl;
            cout << "4. 铁矿洞(铁锭)  5. 金矿脉(金锭)  6. 钻石矿洞(钻石,高危)" << endl;
            cout << "7. 村庄(交易)  8. 雪山(火把>0 或 火剑)  9. 火山(冰剑)  10. 返回营地" << endl;  // 明确雪山进入条件
            cout << "请选择:";
            static bool fig=false,ffg=false;int choice=0;cin>>choice;
            char go_on;cout<<"是否确定前往该区域?(y/n):";cin>>go_on;
            if(go_on!='y'&&go_on!='Y'){cout<<"取消探索,返回原地。"<<endl;return;}
            int re=rand()%10;
            
            // 新增:区域进入规则判断
            bool canEnter = true;
            string enterReason = "";
            if(choice == 8) { // 雪山
                // 雪山规则:火把>0 或 有火剑(装备/物品栏)
                if(p.torch <= 0 && p.equipped_sword != "火剑" && p.fire_sword <= 0) {
                    canEnter = false;
                    enterReason = "雪山太冷!需要火把(数量>0)或火剑(装备/物品栏)才能进入!请先制作火把(木头*1+煤*1=火把*4)";
                }
            } else if(choice == 9) { // 火山
                // 火山规则:有冰剑(装备/物品栏)
                if(p.equipped_sword != "冰剑" && p.ice_sword <= 0) {
                    canEnter = false;
                    enterReason = "火山太热!需要冰剑(装备/物品栏)才能进入!";
                }
            }
            
            // 判断是否能进入
            if(!canEnter) {
                cout << "?? " << enterReason << endl;
                return;
            }
            
            switch(choice) {
                case 1:{cout<<"?? 草原探索!"<<endl;int ac;cout<<"是否攻击羊群?1.是 2.否:";cin>>ac;
                    if(ac==1){int w=rand()%5+2,f=rand()%6+3;p.wool+=w;p.food+=f;cout<<"? 获得羊毛*"<<w<<" 食物*"<<f<<endl;}
                    else{p.hp+=5;p.hp=min(p.hp,p.max_hp);cout<<"?? 和平相处,回血5点!"<<endl;}break;}
                case 2:{cout<<"?? 森林探索!"<<endl;int pb=getPickaxeBonus(p.equipped_pickaxe);int w=rand()%8+5+pb;p.wood+=w;
                    cout<<"?? 获得木头*"<<w<<" (镐加成+"<<pb<<")"<<endl;
                    if(re<7){vector<string> ms={"野狼","黑熊","树人","毒蜘蛛"};string mn=ms[rand()%4];int d=rand()%20+10;
                        cout<<"?? 遇到了:"<<mn<<"!"<<endl;
                        if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}
                    }break;}
                case 3:{cout<<"?? 采石场探索!"<<endl;int pb=getPickaxeBonus(p.equipped_pickaxe);int s=rand()%9+6+pb,c=rand()%5+2;p.stone+=s;p.coal+=c;
                    cout<<"?? 石头*"<<s<<" 煤*"<<c<<" (镐加成+"<<pb<<")"<<endl;
                    if(re<5){vector<string>ms={"岩石傀儡","矿洞老鼠","碎石怪"};string mn=ms[rand()%3];int d=rand()%15+5;
                        cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                case 4:{cout<<"?? 铁矿洞探索!"<<endl;if(p.equipped_pickaxe=="无"||p.equipped_pickaxe=="木镐"){p.stone+=rand()%5+3;cout<<"? 镐等级不足,只获得石头!"<<endl;}
                    else{int i=rand()%7+4+(getPickaxeBonus(p.equipped_pickaxe)/2);p.iron+=i;cout<<"?? 获得铁锭*"<<i<<endl;}
                    if(re<7){vector<string>ms={"洞穴蜘蛛","铁矿傀儡","黑暗蝙蝠"};string mn=ms[rand()%3];int d=rand()%25+15;
                        cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                case 5:{cout<<"?? 金矿脉探索!"<<endl;if(p.equipped_pickaxe!="铁镐"&&p.equipped_pickaxe!="金镐"&&p.equipped_pickaxe!="钻石镐"){cout<<"? 镐等级不足,无法开采!"<<endl;break;}
                    int g=rand()%6+3+(getPickaxeBonus(p.equipped_pickaxe)/3);p.gold+=g;cout<<"?? 获得金锭*"<<g<<endl;
                    if(re<8){vector<string>ms={"黄金守卫","巨型蜘蛛","金矿史莱姆"};string mn=ms[rand()%3];int d=rand()%30+20;
                        cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                case 6:{cout<<"?? 钻石矿洞探索!"<<endl;if(p.equipped_pickaxe!="铁镐"&&p.equipped_pickaxe!="金镐"&&p.equipped_pickaxe!="钻石镐"){cout<<"? 镐等级不足,无法开采!"<<endl;break;}
                    int d=rand()%4+2;p.diamond+=d;cout<<"?? 获得钻石*"<<d<<endl;
                    if(re<9){vector<string>ms={"钻石傀儡","苦力怕","末影蜘蛛","矿洞魔王"};string mn=ms[rand()%4];int dmg=rand()%50+30;
                        cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=dmg;cout<<mn<<"造成"<<dmg<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                case 7:{cout<<"?? 村庄探索!"<<endl;if(p.food>=2){p.food-=2;vector<string>rw={"木头*8","石头*6","羊毛*4","铁锭*3","金锭*2","钻石*1","煤*5","火把*8"};
                        string r=rw[rand()%8];cout<<"?? 用2份食物兑换:"<<r<<endl;
                        if(r.find("木头")!=string::npos)p.wood+=8;else if(r.find("石头")!=string::npos)p.stone+=6;
                        else if(r.find("羊毛")!=string::npos)p.wool+=4;else if(r.find("铁锭")!=string::npos)p.iron+=3;
                        else if(r.find("金锭")!=string::npos)p.gold+=2;else if(r.find("钻石")!=string::npos)p.diamond+=1;
                        else if(r.find("煤")!=string::npos)p.coal+=5;else if(r.find("火把")!=string::npos)p.torch+=8;
                    }else{cout<<"?? 食物不足,无法交易!"<<endl;}break;}
                case 8:{ // 雪山 - 优化火把消耗逻辑
                    if(p.equipped_sword != "火剑") { // 只有没装备火剑时才消耗火把
                        if(p.torch >= 2) {
                            p.torch -= 2;
                            cout << "?? 进入雪山消耗火把*2,剩余火把:" << p.torch << endl;
                        } else {
                            // 火把不足2个时,消耗剩余所有火把
                            cout << "?? 进入雪山消耗剩余火把*" << p.torch << ",剩余火把:0" << endl;
                            p.torch = 0;
                        }
                    } else {
                        cout << "?? 你装备了火剑,无需消耗火把即可在雪山探索!" << endl;
                    }
                    exploreSnowMountain(p,fig);break;}
                case 9:exploreVolcano(p,ffg);break; // 火山
                case 10:cout<<"??? 返回营地,打开制作台!"<<endl;craftItem(p);break;
                default:cout<<"? 无效选项,浪费探索时间!"<<endl;
            }
            // 【核心需求】探索完当前区域后,询问是否继续探索当前区域
        }
        
        // 夜晚生存函数 - 【核心新增】闪电魔法师 + 掉落闪电能源 + 多怪物组合
        bool nightSurvive(Player& p) {
            cout << "\n???? 夜晚降临 ????" << endl;
            cout << "?? 周围漆黑一片,怪物的嘶吼声越来越近..." << endl;
            if(p.bed>0){cout<<"??? 使用床跳过夜晚,安全度过!"<<endl;p.bed--;p.hp+=30;p.hp=min(p.hp,p.max_hp);return true;}
            int mp=90;if(p.torch>0){mp=60;p.torch--;cout<<"??? 点燃火把,怪物概率降低!剩余火把:"<<p.torch<<endl;}
            int rc=rand()%100;
            if(rc<mp){
                // 核心新增:夜晚怪物列表加入【闪电魔法师】
                vector<pair<string, int>> nightMonsters = {
                    {"僵尸",30},{"骷髅射手",40},{"苦力怕",80},{"幻翼",25},{"蜘蛛骑士",50},{"闪电魔法师",65}
                };
                int monsterCount = rand()%3+1;
                int monsterIdx = rand()%6;
                string mn = nightMonsters[monsterIdx].first;
                int dmgPer = nightMonsters[monsterIdx].second;
                int totalDmg = dmgPer * monsterCount;
                cout << "???? 遭遇 " << monsterCount << " 只 " << mn << " 的围攻!????" << endl;
                
                bool noDmg = lightningGuess(p);
                if(!noDmg){
                    int ad=getArmorDefense(p.equipped_armor);if(ad>0){totalDmg -= ad*monsterCount;cout<<"??? 盔甲抵挡 "<<ad*monsterCount<<" 点伤害!"<<endl;}
                    int sb=getShieldBlock(p.equipped_shield);if(sb>0){totalDmg -= sb;cout<<"??? 盾牌格挡 "<<sb<<" 点伤害!盾牌已消耗!"<<endl;p.equipped_shield="无";}
                    int sa=getSwordDamage(p.equipped_sword);if(sa>0){totalDmg -= sa*monsterCount;cout<<"?? 反击造成 "<<sa*monsterCount<<" 点伤害!"<<endl;}
                }else{totalDmg=0;}
                totalDmg = max(totalDmg,0);
                p.hp -= totalDmg;
                cout << mn << "对你造成 " << totalDmg << " 点伤害!生命值剩余:" << p.hp << endl;
                
                // 击败闪电魔法师 必掉落【闪电能源】
                if(p.hp>0 && mn == "闪电魔法师") {
                    int le = rand()%3+1;
                    p.lightning_energy += le;
                    cout << "?? 恭喜!击败闪电魔法师,掉落【闪电能源*" << le << "】!??" << endl;
                    askEquipNewItem(p,"特殊道具","闪电能源");
                }
        
                if(p.hp>0 && p.food>=3){
                    int hc;cout<<"?? 是否使用3份食物恢复30点生命值?1.是 2.否:";cin>>hc;
                    if(hc==1){p.food-=3;p.hp+=30;p.hp=min(p.hp,p.max_hp);cout<<"?? 回血成功!生命值:"<<p.hp<<endl;}
                }
                if(p.hp<=0){cout<<"?? 你被怪物击败了!"<<endl;return false;}
                else{cout<<"? 成功击退怪物,撑过这一波攻击!"<<endl;}
            }else{cout<<"?? 今晚运气爆棚,没有遇到怪物!回血10点!"<<endl;p.hp+=10;p.hp=min(p.hp,p.max_hp);}
            return true;
        }
        
        int main(){
        	system("color 4f"); 
            srand(time(0));
            cout<<"========================================"<<endl;
            cout<<"          《我的世界:无限生存挑战》          "<<endl;
            cout<<"========================================"<<endl;
            cout<<"灵感来自《我的世界》,无限探索直到死亡!\n";
            cout<<"你的名字:";string name;cin>>name;
            cout<<endl<<"你好,"<<name<<"!欢迎来到我的世界无限生存挑战!"<<endl; 
            Player player;player.name = name;
            cout<<"\n你的初始属性:"<<endl;
            cout<<"等级:"<<player.level<<" | 智商:"<<player.iq<<" | 能力:"<<player.ability<<endl;
            cout<<"生命值:"<<player.hp<<" | 物品栏:空"<<endl;
            cout<<"? 核心规则1:每个区域都有多种怪物随机出现,危险升级!"<<endl;
            cout<<"? 核心规则2:探索完区域可选择继续刷本区域,资源拉满!"<<endl;
            cout<<"? 核心规则3:夜晚新增【闪电魔法师】,击败掉落闪电能源!"<<endl;
            cout<<"? 核心规则4:闪电能源 = 被攻击时猜拳次数,猜赢完全免伤!"<<endl;
            cout<<"? 核心规则5:装备上限:1剑+1镐+1甲+1盾,矿物晶石无限存!"<<endl;
            cout<<"? 核心规则6:获得新物品立即询问是否装备,无缝养成!"<<endl;
            cout<<"? 核心规则7:无限探索天数,生存下去就是胜利!"<<endl;
            cout<<"? 核心规则8:火山需要冰剑才能进入,雪山需要火把(木头+煤制作)或火剑才能进入!"<<endl;  // 明确雪山规则
        
            int day_count = 1;
            bool is_alive = true;
            // 【核心修改】无限循环,删除天数限制,直到玩家死亡或主动退出
            while(is_alive) {
                cout << "\n========================================" << endl;
                cout << "                第" << day_count << "天                " << endl;
                cout << "========================================" << endl;
                
                char continue_explore = 'y';
                while( (continue_explore == 'y' || continue_explore == 'Y') && is_alive ) {
                    dayExplore(player);
                    showStatus(player);
                    if(player.hp <= 0) { is_alive = false; break; }
                    cout << "? 是否继续进行白天的探索?(y/n):";
                    cin >> continue_explore;
                    if(continue_explore != 'y' && continue_explore != 'Y') {
                        cout << "?? 结束白天探索,准备度过夜晚。" << endl;
                    }
                }
                if(!is_alive) break;
                
                cout << "\n========================================" << endl;
                cout << "               第" << day_count << "夜               " << endl;
                cout << "========================================" << endl;
                is_alive = nightSurvive(player);
                showStatus(player);
                
                if(is_alive) {
                    player.level +=1;player.iq+=5;player.ability+=8;
                    cout << "\n?? 成功度过一天!等级提升至 " << player.level << " 级!??" << endl;
                    day_count++;
                    char quitGame;
                    cout << "? 是否主动结束本次探索之旅?(y/n):";
                    cin >> quitGame;
                    if(quitGame == 'y' || quitGame == 'Y') {
                        cout << "\n?? 你选择主动结束探索,挑战成功!??" << endl;
                        is_alive = false;
                    }
                }
            }
        
            cout << "\n========================================" << endl;
            cout << "                游戏结局                " << endl;
            cout << "========================================" << endl;
            if(!is_alive && player.hp<=0) {
                cout << "\n?? 游戏结束 ??" << endl;
                cout << "你在第" << day_count << "天/夜不幸遇难了..." << endl;
                cout << "最终等级:" << player.level << " | 剩余生命值:" << player.hp << endl;
                cout << "? 剩余闪电能源:" << player.lightning_energy << " 个" << endl;
            } else {
                cout << "\n?? 恭喜通关 ??" << endl;
                cout << "你成功在我的世界生存了 " << day_count-1 << " 天,达成无限生存成就!" << endl;
                cout << "最终等级:" << player.level << " | 生命值:" << player.hp << "/" << player.max_hp << endl;
                cout << "? 最终闪电能源:" << player.lightning_energy << " 个" << endl;
            }
            cout<<"\n感谢您的游玩!无限生存,勇者无畏!"<<endl; 
            return 0;
        }
        
        • @ 2026-1-15 19:56:41

          这些代码的源头...我觉得是ai生成的,或是一些不正当的方法,绝对不是自己写的!!!

          • @ 2026-1-15 18:19:43
            #include <bits/stdc++.h>
            #include <ctime>
            using namespace std;
            
            // 工具材质枚举
            enum class Material {
                WOOD,    // 木头
                STONE,   // 石头
                IRON,    // 铁
                GOLD,    // 金
                DIAMOND  // 钻石
            };
            
            // 玩家属性结构体,【核心新增】闪电能源 + 完善装备规则
            struct Player {
                string name;
                long long level = 1;
                long long iq = 130;
                long long ability = 90;
                int hp = 100;
                int max_hp = 100;
                // 基础物品(专属资源)
                int food = 0;
                int wool = 0;
                int wood = 0;
                int stone = 0;
                int coal = 0;
                int iron = 0;
                int gold = 0;
                int diamond = 0;
                int ice_crystal = 0;
                int fire_crystal = 0;
                // 核心新增:闪电能源
                int lightning_energy = 0;
                // 工具物品栏 - 剑
                int wood_sword = 0;
                int stone_sword = 0;
                int iron_sword = 0;
                int gold_sword = 0;
                int diamond_sword = 0;
                int fire_sword = 0;
                int ice_sword = 0;
                // 工具物品栏 - 镐
                int wood_pickaxe = 0;
                int stone_pickaxe = 0;
                int iron_pickaxe = 0;
                int gold_pickaxe = 0;
                int diamond_pickaxe = 0;
                // 盔甲物品栏
                int wood_armor = 0;
                int stone_armor = 0;
                int iron_armor = 0;
                int gold_armor = 0;
                int diamond_armor = 0;
                // 盾牌物品栏
                int wood_shield = 0;
                int stone_shield = 0;
                int iron_shield = 0;
                int gold_shield = 0;
                int diamond_shield = 0;
                // 其他原有物品
                int bed = 0;
                int torch = 0;
                // 当前装备的物品 【核心规则】1剑+1镐+1甲+1盾 上限
                string equipped_sword = "无";
                string equipped_pickaxe = "无";
                string equipped_armor = "无";
                string equipped_shield = "无";
            };
            
            // 获取剑伤害值
            int getSwordDamage(const string& sword_type) {
                if (sword_type == "木剑") return 10;
                if (sword_type == "石剑") return 15;
                if (sword_type == "铁剑") return 20;
                if (sword_type == "金剑") return 18;
                if (sword_type == "钻石剑") return 30;
                if (sword_type == "火剑") return 40;
                if (sword_type == "冰剑") return 35;
                return 0;
            }
            
            // 获取镐的挖掘加成
            int getPickaxeBonus(const string& pickaxe_type) {
                if (pickaxe_type == "木镐") return 1;
                if (pickaxe_type == "石镐") return 2;
                if (pickaxe_type == "铁镐") return 3;
                if (pickaxe_type == "金镐") return 4;
                if (pickaxe_type == "钻石镐") return 3;
                return 0;
            }
            
            // 获取盔甲的防御值
            int getArmorDefense(const string& armor_type) {
                if (armor_type == "木甲") return 5;
                if (armor_type == "石甲") return 10;
                if (armor_type == "铁甲") return 18;
                if (armor_type == "金甲") return 15;
                if (armor_type == "钻石甲") return 30;
                return 0;
            }
            
            // 获取盾牌的格挡值
            int getShieldBlock(const string& shield_type) {
                if (shield_type == "木盾") return 15;
                if (shield_type == "石盾") return 25;
                if (shield_type == "铁盾") return 35;
                if (shield_type == "金盾") return 30;
                if (shield_type == "钻石盾") return 50;
                return 0;
            }
            
            // 【核心新增】获得新物品后,询问是否装备的通用函数
            void askEquipNewItem(Player& p, string itemType, string itemName) {
                cout << "\n? 你获得了新物品:" << itemName << "!是否立即装备该" << itemType << "?(y/n):";
                char choice;
                cin >> choice;
                if (choice == 'y' || choice == 'Y') {
                    if (itemType == "剑") {
                        p.equipped_sword = itemName;
                    } else if (itemType == "镐") {
                        p.equipped_pickaxe = itemName;
                    } else if (itemType == "盔甲") {
                        p.equipped_armor = itemName;
                    } else if (itemType == "盾牌") {
                        p.equipped_shield = itemName;
                    }
                    cout << "? 已成功装备:" << itemName << endl;
                } else {
                    cout << "? 选择不装备,物品存入物品栏。" << endl;
                }
            }
            
            // 显示玩家状态和物品栏(新增闪电能源显示)
            void showStatus(const Player& p) {
                cout << "\n========================================" << endl;
                cout << "玩家:" << p.name << "\t等级:" << p.level << endl;
                cout << "生命值:" << p.hp << "/" << p.max_hp << "\t智商:" << p.iq << "\t能力:" << p.ability << endl;
                cout << "? 闪电能源:" << p.lightning_energy << "个 (可抵挡怪物攻击猜拳次数)" << endl;
                cout << "【当前装备】【规则:1剑+1镐+1甲+1盾】" << endl;
                cout << "手持剑:" << p.equipped_sword << " | 手持镐:" << p.equipped_pickaxe << endl;
                cout << "身著甲:" << p.equipped_armor << " | 手持盾:" << p.equipped_shield << endl;
                cout << "【物品栏】矿物/晶石无限持有" << endl;
                cout << "食物:" << p.food << "份 | 羊毛:" << p.wool << "个 | 木头:" << p.wood << "块" << endl;
                cout << "石头:" << p.stone << "块 | 煤:" << p.coal << "块 | 铁锭:" << p.iron << "个 | 金锭:" << p.gold << "个 | 钻石:" << p.diamond << "个" << endl;
                cout << "冰晶:" << p.ice_crystal << "个 | 火晶:" << p.fire_crystal << "个" << endl;
                cout << "【剑类】木剑:" << p.wood_sword << " | 石剑:" << p.stone_sword << " | 铁剑:" << p.iron_sword 
                     << " | 金剑:" << p.gold_sword << " | 钻石剑:" << p.diamond_sword << " | 火剑:" << p.fire_sword << " | 冰剑:" << p.ice_sword << endl;
                cout << "【镐类】木镐:" << p.wood_pickaxe << " | 石镐:" << p.stone_pickaxe << " | 铁镐:" << p.iron_pickaxe 
                     << " | 金镐:" << p.gold_pickaxe << " | 钻石镐:" << p.diamond_pickaxe << endl;
                cout << "【盔甲类】木甲:" << p.wood_armor << " | 石甲:" << p.stone_armor << " | 铁甲:" << p.iron_armor 
                     << " | 金甲:" << p.gold_armor << " | 钻石甲:" << p.diamond_armor << endl;
                cout << "【盾牌类】木盾:" << p.wood_shield << " | 石盾:" << p.stone_shield << " | 铁盾:" << p.iron_shield 
                     << " | 金盾:" << p.gold_shield << " | 钻石盾:" << p.diamond_shield << endl;
                cout << "【其他】床:" << p.bed << " | 火把:" << p.torch << endl;
                cout << "========================================\n" << endl;
            }
            
            // 装备物品函数
            void equipTool(Player& p) {
                cout << "\n【装备物品】- 请选择要装备的物品类型:" << endl;
                cout << "1. 装备剑" << endl;
                cout << "2. 装备镐" << endl;
                cout << "3. 装备盔甲" << endl;
                cout << "4. 装备盾牌" << endl;
                cout << "5. 取消所有装备" << endl;
                cout << "6. 返回" << endl;
                cout << "请选择:";
                
                int choice;
                cin >> choice;
                
                switch(choice) {
                    case 1: {  // 修复case和数字间的空格
                        cout << "\n【选择剑】- 你拥有的剑:" << endl;
                        vector<pair<string, int>> swords = {
                            {"木剑", p.wood_sword}, {"石剑", p.stone_sword}, {"铁剑", p.iron_sword},
                            {"金剑", p.gold_sword}, {"钻石剑", p.diamond_sword}, {"火剑", p.fire_sword}, {"冰剑", p.ice_sword}
                        };
                        int idx = 1;
                        for (auto& s : swords) { cout << idx << ". " << s.first << "(数量:" << s.second << ")" << endl; idx++; }
                        cout << "请选择要装备的剑序号(0取消):";
                        int sword_choice; cin >> sword_choice;
                        if (sword_choice > 0 && sword_choice <=7 && swords[sword_choice-1].second>0) {
                            p.equipped_sword = swords[sword_choice-1].first;
                            cout << "成功装备" << p.equipped_sword << "!" << endl;
                        } break;
                    }
                    case 2: {  // 修复case和数字间的空格
                        cout << "\n【选择镐】- 你拥有的镐:" << endl;
                        vector<pair<string, int>> pickaxes = {
                            {"木镐", p.wood_pickaxe}, {"石镐", p.stone_pickaxe}, {"铁镐", p.iron_pickaxe},
                            {"金镐", p.gold_pickaxe}, {"钻石镐", p.diamond_pickaxe}
                        };
                        int idx =1; for(auto&p:pickaxes) {cout<<idx++<<"."<<p.first<<"("<<p.second<<")\n";}
                        int pick_choice; cin>>pick_choice;
                        if(pick_choice>0&&pick_choice<=5&&pickaxes[pick_choice-1].second>0) {
                            p.equipped_pickaxe = pickaxes[pick_choice-1].first;
                            cout<<"成功装备"<<p.equipped_pickaxe<<"!"<<endl;
                        } break;
                    }
                    case 3: {  // 修复case和数字间的空格
                        cout<<"\n【选择盔甲】- 你拥有的盔甲:"<<endl;
                        vector<pair<string,int>> armors={{"木甲",p.wood_armor},{"石甲",p.stone_armor},{"铁甲",p.iron_armor},{"金甲",p.gold_armor},{"钻石甲",p.diamond_armor}};
                        int idx=1;for(auto&a:armors){cout<<idx++<<"."<<a.first<<"("<<a.second<<")\n";}
                        int a_choice;cin>>a_choice;
                        if(a_choice>0&&a_choice<=5&&armors[a_choice-1].second>0){p.equipped_armor=armors[a_choice-1].first;cout<<"成功装备"<<p.equipped_armor<<"!"<<endl;}break;
                    }
                    case 4: {  // 修复case和数字间的空格
                        cout<<"\n【选择盾牌】- 你拥有的盾牌:"<<endl;
                        vector<pair<string,int>> shields={{"木盾",p.wood_shield},{"石盾",p.stone_shield},{"铁盾",p.iron_shield},{"金盾",p.gold_shield},{"钻石盾",p.diamond_shield}};
                        int idx=1;for(auto&s:shields){cout<<idx++<<"."<<s.first<<"("<<s.second<<")\n";}
                        int s_choice;cin>>s_choice;
                        if(s_choice>0&&s_choice<=5&&shields[s_choice-1].second>0){p.equipped_shield=shields[s_choice-1].first;cout<<"成功装备"<<p.equipped_shield<<"!"<<endl;}break;
                    }
                    case 5: p.equipped_sword=p.equipped_pickaxe=p.equipped_armor=p.equipped_shield="无";cout<<"已取消所有装备!"<<endl;break;
                    case 6: cout<<"返回主菜单..."<<endl;break;
                    default:cout<<"无效选项!"<<endl;
                }
            }
            
            // 制作物品函数(新增获得物品后询问装备)
            void craftItem(Player& p) { 
                cout << "\n【制作台】- 可选配方:" << endl;
                cout << "===== 基础物品 =====" << endl;
                cout << "1. 床(羊毛*3+木头*2)- 夜晚可直接跳过,百分百安全" << endl;
                cout << "2. 火把(木头*1+煤*1)- 降低夜晚遇到怪物的概率" << endl;
                cout << "===== 剑类 =====" << endl;
                cout << "3. 木剑(木头*3)- 基础攻击+10" << endl;
                cout << "4. 石剑(石头*5)- 攻击+15" << endl;
                cout << "5. 铁剑(铁锭*3)- 攻击+20" << endl;
                cout << "6. 金剑(金锭*3)- 攻击+18" << endl;
                cout << "7. 钻石剑(钻石*2)- 攻击+30" << endl;
                cout << "8. 火剑(钻石剑*1+火晶*3)- 攻击+40(进入雪山必备)" << endl;
                cout << "9. 冰剑(钻石剑*1+冰晶*3)- 攻击+35(进入火山必备)" << endl;
                cout << "===== 镐类 =====" << endl;
                cout << "10. 木镐(木头*3)- 挖掘+1" << endl;
                cout << "11. 石镐(石头*3)- 挖掘+2" << endl;
                cout << "12. 铁镐(铁锭*3)- 挖掘+3" << endl;
                cout << "13. 金镐(金锭*3)- 挖掘+4" << endl;
                cout << "14. 钻石镐(钻石*2)- 挖掘+3" << endl;
                cout << "===== 盔甲类 =====" << endl;
                cout << "15. 木甲(木头*8)- 防御+5,提升最大生命值10" << endl;
                cout << "16. 石甲(石头*12)- 防御+10,提升最大生命值20" << endl;
                cout << "17. 铁甲(铁锭*8)- 防御+18,提升最大生命值30" << endl;
                cout << "18. 金甲(金锭*8)- 防御+15,提升最大生命值25" << endl;
                cout << "19. 钻石甲(钻石*5)- 防御+30,提升最大生命值50" << endl;
                cout << "===== 盾牌类 =====" << endl;
                cout << "20. 木盾(木头*5)- 格挡+15" << endl;
                cout << "21. 石盾(石头*8)- 格挡+25" << endl;
                cout << "22. 铁盾(铁锭*5)- 格挡+35" << endl;
                cout << "23. 金盾(金锭*5)- 格挡+30" << endl;
                cout << "24. 钻石盾(钻石*3)- 格挡+50" << endl;
                cout << "===== 其他 =====" << endl;
                cout << "25. 装备物品" << endl;
                cout << "26. 退出制作台" << endl;
                cout << "请选择要制作的物品序号:";
                
                int choice; cin>>choice;
                switch(choice) {
                    case 1:if(p.wool>=3&&p.wood>=2){p.wool-=3;p.wood-=2;p.bed++;cout<<"制作成功!获得床*1"<<endl;}else{cout<<"材料不足!"<<endl;}break;
                    case 2:if(p.wood>=1&&p.coal>=1){p.wood--;p.coal--;p.torch+=4;cout<<"制作成功!获得火把*4"<<endl;p.iq+=3;}else{cout<<"材料不足!"<<endl;}break;
                    case 3:if(p.wood>=3){p.wood-=3;p.wood_sword++;cout<<"制作成功!获得木剑*1"<<endl;p.ability+=5;askEquipNewItem(p,"剑","木剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 4:if(p.stone>=5){p.stone-=5;p.stone_sword++;cout<<"制作成功!获得石剑*1"<<endl;p.ability+=8;askEquipNewItem(p,"剑","石剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 5:if(p.iron>=3){p.iron-=3;p.iron_sword++;cout<<"制作成功!获得铁剑*1"<<endl;p.ability+=12;askEquipNewItem(p,"剑","铁剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 6:if(p.gold>=3){p.gold-=3;p.gold_sword++;cout<<"制作成功!获得金剑*1"<<endl;p.ability+=10;askEquipNewItem(p,"剑","金剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 7:if(p.diamond>=2){p.diamond-=2;p.diamond_sword++;cout<<"制作成功!获得钻石剑*1"<<endl;p.ability+=20;askEquipNewItem(p,"剑","钻石剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 8:if(p.diamond_sword>=1&&p.fire_crystal>=3){p.diamond_sword--;p.fire_crystal-=3;p.fire_sword++;cout<<"制作成功!获得火剑*1"<<endl;p.ability+=25;askEquipNewItem(p,"剑","火剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 9:if(p.diamond_sword>=1&&p.ice_crystal>=3){p.diamond_sword--;p.ice_crystal-=3;p.ice_sword++;cout<<"制作成功!获得冰剑*1"<<endl;p.ability+=22;askEquipNewItem(p,"剑","冰剑");}else{cout<<"材料不足!"<<endl;}break;
                    case 10:if(p.wood>=3){p.wood-=3;p.wood_pickaxe++;cout<<"制作成功!获得木镐*1"<<endl;p.iq+=4;askEquipNewItem(p,"镐","木镐");}else{cout<<"材料不足!"<<endl;}break;
                    case 11:if(p.stone>=3){p.stone-=3;p.stone_pickaxe++;cout<<"制作成功!获得石镐*1"<<endl;p.iq+=6;askEquipNewItem(p,"镐","石镐");}else{cout<<"材料不足!"<<endl;}break;
                    case 12:if(p.iron>=3){p.iron-=3;p.iron_pickaxe++;cout<<"制作成功!获得铁镐*1"<<endl;p.iq+=8;askEquipNewItem(p,"镐","铁镐");}else{cout<<"材料不足!"<<endl;}break;
                    case 13:if(p.gold>=3){p.gold-=3;p.gold_pickaxe++;cout<<"制作成功!获得金镐*1"<<endl;p.iq+=7;askEquipNewItem(p,"镐","金镐");}else{cout<<"材料不足!"<<endl;}break;
                    case 14:if(p.diamond>=2){p.diamond-=2;p.diamond_pickaxe++;cout<<"制作成功!获得钻石镐*1"<<endl;p.iq+=10;askEquipNewItem(p,"镐","钻石镐");}else{cout<<"材料不足!"<<endl;}break;
                    case 15:if(p.wood>=8){p.wood-=8;p.wood_armor++;p.max_hp+=10;p.hp=p.max_hp;cout<<"制作成功!获得木甲*1"<<endl;p.ability+=3;askEquipNewItem(p,"盔甲","木甲");}else{cout<<"材料不足!"<<endl;}break;
                    case 16:if(p.stone>=12){p.stone-=12;p.stone_armor++;p.max_hp+=20;p.hp=p.max_hp;cout<<"制作成功!获得石甲*1"<<endl;p.ability+=6;askEquipNewItem(p,"盔甲","石甲");}else{cout<<"材料不足!"<<endl;}break;
                    case 17:if(p.iron>=8){p.iron-=8;p.iron_armor++;p.max_hp+=30;p.hp=p.max_hp;cout<<"制作成功!获得铁甲*1"<<endl;p.ability+=10;askEquipNewItem(p,"盔甲","铁甲");}else{cout<<"材料不足!"<<endl;}break;
                    case 18:if(p.gold>=8){p.gold-=8;p.gold_armor++;p.max_hp+=25;p.hp=p.max_hp;cout<<"制作成功!获得金甲*1"<<endl;p.ability+=8;askEquipNewItem(p,"盔甲","金甲");}else{cout<<"材料不足!"<<endl;}break;
                    case 19:if(p.diamond>=5){p.diamond-=5;p.diamond_armor++;p.max_hp+=50;p.hp=p.max_hp;cout<<"制作成功!获得钻石甲*1"<<endl;p.ability+=20;askEquipNewItem(p,"盔甲","钻石甲");}else{cout<<"材料不足!"<<endl;}break;
                    case 20:if(p.wood>=5){p.wood-=5;p.wood_shield++;cout<<"制作成功!获得木盾*1"<<endl;askEquipNewItem(p,"盾牌","木盾");}else{cout<<"材料不足!"<<endl;}break;
                    case 21:if(p.stone>=8){p.stone-=8;p.stone_shield++;cout<<"制作成功!获得石盾*1"<<endl;askEquipNewItem(p,"盾牌","石盾");}else{cout<<"材料不足!"<<endl;}break;
                    case 22:if(p.iron>=5){p.iron-=5;p.iron_shield++;cout<<"制作成功!获得铁盾*1"<<endl;askEquipNewItem(p,"盾牌","铁盾");}else{cout<<"材料不足!"<<endl;}break;
                    case 23:if(p.gold>=5){p.gold-=5;p.gold_shield++;cout<<"制作成功!获得金盾*1"<<endl;askEquipNewItem(p,"盾牌","金盾");}else{cout<<"材料不足!"<<endl;}break;
                    case 24:if(p.diamond>=3){p.diamond-=3;p.diamond_shield++;cout<<"制作成功!获得钻石盾*1"<<endl;askEquipNewItem(p,"盾牌","钻石盾");}else{cout<<"材料不足!"<<endl;}break;
                    case 25:equipTool(p);break;
                    case 26:cout<<"退出制作台..."<<endl;break;
                    default:cout<<"无效选项!"<<endl;
                }
            }
            
            // 【核心新增】闪电能源猜拳免伤函数
            bool lightningGuess(Player &p) {
                if(p.lightning_energy <= 0) return false;
                cout << "\n? 你拥有 " << p.lightning_energy << " 个闪电能源,可以进行猜拳免伤!?" << endl;
                cout << "猜拳规则:猜赢 = 完全免疫本次伤害,猜输/平局 = 正常扣血,消耗1个闪电能源" << endl;
                string player_choice;
                cout << "请出拳 (石头/剪刀/布):";
                cin >> player_choice;
                vector<string> choices = {"石头", "剪刀", "布"};
                string monster_choice = choices[rand()%3];
                cout << "怪物出拳:" << monster_choice << endl;
                p.lightning_energy--;
                if( (player_choice=="石头"&&monster_choice=="剪刀") || 
                    (player_choice=="剪刀"&&monster_choice=="布") || 
                    (player_choice=="布"&&monster_choice=="石头") ) {
                    cout << "? 恭喜!猜拳胜利!完全免疫本次怪物伤害!剩余闪电能源:" << p.lightning_energy << endl;
                    return true;
                } else {
                    cout << "? 猜拳失败/平局!正常承受伤害,剩余闪电能源:" << p.lightning_energy << endl;
                    return false;
                }
            }
            
            // 雪山探索函数 - 多怪物组合
            void exploreSnowMountain(Player& p, bool& found_ice_guardian) {
                cout << "\n???? 你进入了终年积雪的雪山,寒风刺骨!????" << endl;
                int random_event = rand() % 10;
                if(random_event < 8) {
                    vector<pair<string, int>> monsters = {{"雪怪",35},{"冰晶史莱姆",28},{"雪山野狼",40},{"冰晶守护者",60}};
                    int monster_idx = rand()%4;
                    string monster_name = monsters[monster_idx].first;
                    int damage = monsters[monster_idx].second;
                    cout << "?? 你遇到了:" << monster_name << "!" << endl;
                    if(monster_name == "冰晶守护者") found_ice_guardian = true;
                    
                    if(lightningGuess(p)) { damage = 0; }
                    else {
                        int armor_defense = getArmorDefense(p.equipped_armor);
                        if (armor_defense >0) { damage -= armor_defense; cout<<"??? 盔甲抵挡"<<armor_defense<<"点伤害!"<<endl; }
                        int shield_block = getShieldBlock(p.equipped_shield);
                        if (shield_block >0) { damage -= shield_block; cout<<"??? 盾牌格挡"<<shield_block<<"点伤害!盾牌已消耗"<<endl;p.equipped_shield="无"; }
                        int sword_attack = getSwordDamage(p.equipped_sword);
                        if (sword_attack>0) { damage -= sword_attack; cout<<"?? 反击造成"<<sword_attack<<"点伤害!"<<endl; }
                    }
                    damage = max(damage,0);
                    p.hp -= damage;
                    cout << monster_name << "对你造成了 " << damage << " 点伤害!生命值剩余:" << p.hp << endl;
                    if(p.hp>0 && monster_name == "冰晶守护者") {p.ice_crystal += rand()%3+1;cout<<"? 获得冰晶*"<<p.ice_crystal<<"!"<<endl;found_ice_guardian=false;}
                } else { cout << "?? 雪山暂时安全,你收集到了木头*2+石头*1" << endl;p.wood+=2;p.stone+=1; }
            }
            
            // 火山探索函数 - 多怪物组合
            void exploreVolcano(Player& p, bool& found_fire_guardian) {
                cout << "\n???? 你进入了炽热的火山,岩浆在脚下翻涌!????" << endl;
                int random_event = rand()%10;
                if(random_event<8) {
                    vector<pair<string,int>> monsters={{"熔岩怪",40},{"火焰史莱姆",35},{"岩浆蜘蛛",45},{"火晶守护者",70}};
                    int monster_idx=rand()%4;string mn=monsters[monster_idx].first;int dmg=monsters[monster_idx].second;
                    cout<<"?? 你遇到了:"<<mn<<"!"<<endl;if(mn=="火晶守护者") found_fire_guardian=true;
                    if(lightningGuess(p)) dmg=0;
                    else{
                        int ad=getArmorDefense(p.equipped_armor);if(ad>0){dmg-=ad;cout<<"??? 盔甲抵挡"<<ad<<"点伤害!"<<endl;}
                        int sb=getShieldBlock(p.equipped_shield);if(sb>0){dmg-=sb;cout<<"??? 盾牌格挡"<<sb<<"点伤害!盾牌已消耗"<<endl;p.equipped_shield="无";}
                        int sa=getSwordDamage(p.equipped_sword);if(sa>0){dmg-=sa;cout<<"?? 反击造成"<<sa<<"点伤害!"<<endl;}
                    }
                    dmg=max(dmg,0);p.hp-=dmg;
                    cout<<mn<<"对你造成了 "<<dmg<<" 点伤害!生命值剩余:"<<p.hp<<endl;
                    if(p.hp>0&&mn=="火晶守护者"){p.fire_crystal+=rand()%3+1;cout<<"? 获得火晶*"<<p.fire_crystal<<"!"<<endl;found_fire_guardian=false;}
                }else{cout<<"?? 火山暂时安全,你收集到了石头*2+煤*1"<<endl;p.stone+=2;p.coal+=1;}
            }
            
            // 白天探索函数 - 全区域多怪物+探索后询问是否继续当前区域
            void dayExplore(Player& p) {
                cout << "\n【?? 白天探索】- 请选择探索区域:" << endl;
                cout << "1. 草原(羊毛、食物,安全)  2. 森林(木头,多怪物)  3. 采石场(石头、煤)" << endl;
                cout << "4. 铁矿洞(铁锭)  5. 金矿脉(金锭)  6. 钻石矿洞(钻石,高危)" << endl;
                cout << "7. 村庄(交易)  8. 雪山(火把/火剑)  9. 火山(冰剑)  10. 返回营地" << endl;
                cout << "请选择:";
                static bool fig=false,ffg=false;int choice=0;cin>>choice;
                char go_on;cout<<"是否确定前往该区域?(y/n):";cin>>go_on;
                if(go_on!='y'&&go_on!='Y'){cout<<"取消探索,返回原地。"<<endl;return;}
                int re=rand()%10;
                
                // 新增:区域进入规则判断
                bool canEnter = true;
                string enterReason = "";
                if(choice == 8) { // 雪山
                    // 雪山规则:火把>0 或 有火剑(装备/物品栏)
                    if(p.torch <= 0 && p.equipped_sword != "火剑" && p.fire_sword <= 0) {
                        canEnter = false;
                        enterReason = "雪山太冷!需要火把(数量>0)或火剑(装备/物品栏)才能进入!";
                    }
                } else if(choice == 9) { // 火山
                    // 火山规则:有冰剑(装备/物品栏)
                    if(p.equipped_sword != "冰剑" && p.ice_sword <= 0) {
                        canEnter = false;
                        enterReason = "火山太热!需要冰剑(装备/物品栏)才能进入!";
                    }
                }
                
                // 判断是否能进入
                if(!canEnter) {
                    cout << "?? " << enterReason << endl;
                    return;
                }
                
                switch(choice) {
                    case 1:{cout<<"?? 草原探索!"<<endl;int ac;cout<<"是否攻击羊群?1.是 2.否:";cin>>ac;
                        if(ac==1){int w=rand()%5+2,f=rand()%6+3;p.wool+=w;p.food+=f;cout<<"? 获得羊毛*"<<w<<" 食物*"<<f<<endl;}
                        else{p.hp+=5;p.hp=min(p.hp,p.max_hp);cout<<"?? 和平相处,回血5点!"<<endl;}break;}
                    case 2:{cout<<"?? 森林探索!"<<endl;int pb=getPickaxeBonus(p.equipped_pickaxe);int w=rand()%8+5+pb;p.wood+=w;
                        cout<<"?? 获得木头*"<<w<<" (镐加成+"<<pb<<")"<<endl;
                        if(re<7){vector<string> ms={"野狼","黑熊","树人","毒蜘蛛"};string mn=ms[rand()%4];int d=rand()%20+10;
                            cout<<"?? 遇到了:"<<mn<<"!"<<endl;
                            if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}
                        }break;}
                    case 3:{cout<<"?? 采石场探索!"<<endl;int pb=getPickaxeBonus(p.equipped_pickaxe);int s=rand()%9+6+pb,c=rand()%5+2;p.stone+=s;p.coal+=c;
                        cout<<"?? 石头*"<<s<<" 煤*"<<c<<" (镐加成+"<<pb<<")"<<endl;
                        if(re<5){vector<string>ms={"岩石傀儡","矿洞老鼠","碎石怪"};string mn=ms[rand()%3];int d=rand()%15+5;
                            cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                    case 4:{cout<<"?? 铁矿洞探索!"<<endl;if(p.equipped_pickaxe=="无"||p.equipped_pickaxe=="木镐"){p.stone+=rand()%5+3;cout<<"? 镐等级不足,只获得石头!"<<endl;}
                        else{int i=rand()%7+4+(getPickaxeBonus(p.equipped_pickaxe)/2);p.iron+=i;cout<<"?? 获得铁锭*"<<i<<endl;}
                        if(re<7){vector<string>ms={"洞穴蜘蛛","铁矿傀儡","黑暗蝙蝠"};string mn=ms[rand()%3];int d=rand()%25+15;
                            cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                    case 5:{cout<<"?? 金矿脉探索!"<<endl;if(p.equipped_pickaxe!="铁镐"&&p.equipped_pickaxe!="金镐"&&p.equipped_pickaxe!="钻石镐"){cout<<"? 镐等级不足,无法开采!"<<endl;break;}
                        int g=rand()%6+3+(getPickaxeBonus(p.equipped_pickaxe)/3);p.gold+=g;cout<<"?? 获得金锭*"<<g<<endl;
                        if(re<8){vector<string>ms={"黄金守卫","巨型蜘蛛","金矿史莱姆"};string mn=ms[rand()%3];int d=rand()%30+20;
                            cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=d;cout<<mn<<"造成"<<d<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                    case 6:{cout<<"?? 钻石矿洞探索!"<<endl;if(p.equipped_pickaxe!="铁镐"&&p.equipped_pickaxe!="金镐"&&p.equipped_pickaxe!="钻石镐"){cout<<"? 镐等级不足,无法开采!"<<endl;break;}
                        int d=rand()%4+2;p.diamond+=d;cout<<"?? 获得钻石*"<<d<<endl;
                        if(re<9){vector<string>ms={"钻石傀儡","苦力怕","末影蜘蛛","矿洞魔王"};string mn=ms[rand()%4];int dmg=rand()%50+30;
                            cout<<"?? 遇到了:"<<mn<<"!"<<endl;if(!lightningGuess(p)){p.hp-=dmg;cout<<mn<<"造成"<<dmg<<"点伤害!生命值:"<<p.hp<<endl;}}break;}
                    case 7:{cout<<"?? 村庄探索!"<<endl;if(p.food>=2){p.food-=2;vector<string>rw={"木头*8","石头*6","羊毛*4","铁锭*3","金锭*2","钻石*1","煤*5","火把*8"};
                            string r=rw[rand()%8];cout<<"?? 用2份食物兑换:"<<r<<endl;
                            if(r.find("木头")!=string::npos)p.wood+=8;else if(r.find("石头")!=string::npos)p.stone+=6;
                            else if(r.find("羊毛")!=string::npos)p.wool+=4;else if(r.find("铁锭")!=string::npos)p.iron+=3;
                            else if(r.find("金锭")!=string::npos)p.gold+=2;else if(r.find("钻石")!=string::npos)p.diamond+=1;
                            else if(r.find("煤")!=string::npos)p.coal+=5;else if(r.find("火把")!=string::npos)p.torch+=8;
                        }else{cout<<"?? 食物不足,无法交易!"<<endl;}break;}
                    case 8:{ // 雪山 - 移除原有进入限制,只保留火把消耗逻辑
                        if(p.equipped_sword != "火剑") { // 只有没装备火剑时才消耗火把
                            p.torch -= 2;
                            if(p.torch < 0) p.torch = 0; // 防止火把数量为负
                            cout << "?? 进入雪山消耗火把*2,剩余火把:" << p.torch << endl;
                        }
                        exploreSnowMountain(p,fig);break;}
                    case 9:exploreVolcano(p,ffg);break; // 火山 - 移除原有进入限制
                    case 10:cout<<"??? 返回营地,打开制作台!"<<endl;craftItem(p);break;
                    default:cout<<"? 无效选项,浪费探索时间!"<<endl;
                }
                // 【核心需求】探索完当前区域后,询问是否继续探索当前区域
            }
            
            // 夜晚生存函数 - 【核心新增】闪电魔法师 + 掉落闪电能源 + 多怪物组合
            bool nightSurvive(Player& p) {
                cout << "\n???? 夜晚降临 ????" << endl;
                cout << "?? 周围漆黑一片,怪物的嘶吼声越来越近..." << endl;
                if(p.bed>0){cout<<"??? 使用床跳过夜晚,安全度过!"<<endl;p.bed--;p.hp+=30;p.hp=min(p.hp,p.max_hp);return true;}
                int mp=90;if(p.torch>0){mp=60;p.torch--;cout<<"??? 点燃火把,怪物概率降低!剩余火把:"<<p.torch<<endl;}
                int rc=rand()%100;
                if(rc<mp){
                    // 核心新增:夜晚怪物列表加入【闪电魔法师】
                    vector<pair<string, int>> nightMonsters = {
                        {"僵尸",30},{"骷髅射手",40},{"苦力怕",80},{"幻翼",25},{"蜘蛛骑士",50},{"闪电魔法师",65}
                    };
                    int monsterCount = rand()%3+1;
                    int monsterIdx = rand()%6;
                    string mn = nightMonsters[monsterIdx].first;
                    int dmgPer = nightMonsters[monsterIdx].second;
                    int totalDmg = dmgPer * monsterCount;
                    cout << "???? 遭遇 " << monsterCount << " 只 " << mn << " 的围攻!????" << endl;
                    
                    bool noDmg = lightningGuess(p);
                    if(!noDmg){
                        int ad=getArmorDefense(p.equipped_armor);if(ad>0){totalDmg -= ad*monsterCount;cout<<"??? 盔甲抵挡 "<<ad*monsterCount<<" 点伤害!"<<endl;}
                        int sb=getShieldBlock(p.equipped_shield);if(sb>0){totalDmg -= sb;cout<<"??? 盾牌格挡 "<<sb<<" 点伤害!盾牌已消耗!"<<endl;p.equipped_shield="无";}
                        int sa=getSwordDamage(p.equipped_sword);if(sa>0){totalDmg -= sa*monsterCount;cout<<"?? 反击造成 "<<sa*monsterCount<<" 点伤害!"<<endl;}
                    }else{totalDmg=0;}
                    totalDmg = max(totalDmg,0);
                    p.hp -= totalDmg;
                    cout << mn << "对你造成 " << totalDmg << " 点伤害!生命值剩余:" << p.hp << endl;
                    
                    // 击败闪电魔法师 必掉落【闪电能源】
                    if(p.hp>0 && mn == "闪电魔法师") {
                        int le = rand()%3+1;
                        p.lightning_energy += le;
                        cout << "?? 恭喜!击败闪电魔法师,掉落【闪电能源*" << le << "】!??" << endl;
                        askEquipNewItem(p,"特殊道具","闪电能源");
                    }
            
                    if(p.hp>0 && p.food>=3){
                        int hc;cout<<"?? 是否使用3份食物恢复30点生命值?1.是 2.否:";cin>>hc;
                        if(hc==1){p.food-=3;p.hp+=30;p.hp=min(p.hp,p.max_hp);cout<<"?? 回血成功!生命值:"<<p.hp<<endl;}
                    }
                    if(p.hp<=0){cout<<"?? 你被怪物击败了!"<<endl;return false;}
                    else{cout<<"? 成功击退怪物,撑过这一波攻击!"<<endl;}
                }else{cout<<"?? 今晚运气爆棚,没有遇到怪物!回血10点!"<<endl;p.hp+=10;p.hp=min(p.hp,p.max_hp);}
                return true;
            }
            
            int main(){
            	system("color 4f"); 
                srand(time(0));
                cout<<"========================================"<<endl;
                cout<<"          《我的世界:无限生存挑战》          "<<endl;
                cout<<"========================================"<<endl;
                cout<<"灵感来自《我的世界》,无限探索直到死亡!\n";
                cout<<"你的名字:";string name;cin>>name;
                cout<<endl<<"你好,"<<name<<"!欢迎来到我的世界无限生存挑战!"<<endl; 
                Player player;player.name = name;
                cout<<"\n你的初始属性:"<<endl;
                cout<<"等级:"<<player.level<<" | 智商:"<<player.iq<<" | 能力:"<<player.ability<<endl;
                cout<<"生命值:"<<player.hp<<" | 物品栏:空"<<endl;
                cout<<"? 核心规则1:每个区域都有多种怪物随机出现,危险升级!"<<endl;
                cout<<"? 核心规则2:探索完区域可选择继续刷本区域,资源拉满!"<<endl;
                cout<<"? 核心规则3:夜晚新增【闪电魔法师】,击败掉落闪电能源!"<<endl;
                cout<<"? 核心规则4:闪电能源 = 被攻击时猜拳次数,猜赢完全免伤!"<<endl;
                cout<<"? 核心规则5:装备上限:1剑+1镐+1甲+1盾,矿物晶石无限存!"<<endl;
                cout<<"? 核心规则6:获得新物品立即询问是否装备,无缝养成!"<<endl;
                cout<<"? 核心规则7:无限探索天数,生存下去就是胜利!"<<endl;
                cout<<"? 核心规则8:火山需要冰剑才能进入,雪山需要火把或火剑才能进入!"<<endl;
            
                int day_count = 1;
                bool is_alive = true;
                // 【核心修改】无限循环,删除天数限制,直到玩家死亡或主动退出
                while(is_alive) {
                    cout << "\n========================================" << endl;
                    cout << "                第" << day_count << "天                " << endl;
                    cout << "========================================" << endl;
                    
                    char continue_explore = 'y';
                    while( (continue_explore == 'y' || continue_explore == 'Y') && is_alive ) {
                        dayExplore(player);
                        showStatus(player);
                        if(player.hp <= 0) { is_alive = false; break; }
                        cout << "? 是否继续进行白天的探索?(y/n):";
                        cin >> continue_explore;
                        if(continue_explore != 'y' && continue_explore != 'Y') {
                            cout << "?? 结束白天探索,准备度过夜晚。" << endl;
                        }
                    }
                    if(!is_alive) break;
                    
                    cout << "\n========================================" << endl;
                    cout << "               第" << day_count << "夜               " << endl;
                    cout << "========================================" << endl;
                    is_alive = nightSurvive(player);
                    showStatus(player);
                    
                    if(is_alive) {
                        player.level +=1;player.iq+=5;player.ability+=8;
                        cout << "\n?? 成功度过一天!等级提升至 " << player.level << " 级!??" << endl;
                        day_count++;
                        char quitGame;
                        cout << "? 是否主动结束本次探索之旅?(y/n):";
                        cin >> quitGame;
                        if(quitGame == 'y' || quitGame == 'Y') {
                            cout << "\n?? 你选择主动结束探索,挑战成功!??" << endl;
                            is_alive = false;
                        }
                    }
                }
            
                cout << "\n========================================" << endl;
                cout << "                游戏结局                " << endl;
                cout << "========================================" << endl;
                if(!is_alive && player.hp<=0) {
                    cout << "\n?? 游戏结束 ??" << endl;
                    cout << "你在第" << day_count << "天/夜不幸遇难了..." << endl;
                    cout << "最终等级:" << player.level << " | 剩余生命值:" << player.hp << endl;
                    cout << "? 剩余闪电能源:" << player.lightning_energy << " 个" << endl;
                } else {
                    cout << "\n?? 恭喜通关 ??" << endl;
                    cout << "你成功在我的世界生存了 " << day_count-1 << " 天,达成无限生存成就!" << endl;
                    cout << "最终等级:" << player.level << " | 生命值:" << player.hp << "/" << player.max_hp << endl;
                    cout << "? 最终闪电能源:" << player.lightning_energy << " 个" << endl;
                }
                cout<<"\n感谢您的游玩!无限生存,勇者无畏!"<<endl; 
                return 0;
            }
            
            • @ 2026-1-15 16:20:42

              升级版:

              #include <bits/stdc++.h>
              #include <ctime>
              using namespace std;
              
              // 玩家属性结构体,方便管理
              struct Player {
                  string name;
                  long long level = 1;
                  long long iq = 130;
                  long long ability = 90;
                  int hp = 100;
                  int max_hp = 100;
                  // 物品栏
                  int food = 0;
                  int wool = 0;
                  int wood = 0;
                  int stone = 0;
                  int sword = 0;    // 木剑数量
                  int shield = 0;   // 木盾数量
                  int bed = 0;      // 床数量
                  int torch = 0;    // 火把数量
              };
              
              // 显示玩家状态和物品栏
              void showStatus(const Player& p) {
                  cout << "\n========================================" << endl;
                  cout << "玩家:" << p.name << "\t等级:" << p.level << endl;
                  cout << "生命值:" << p.hp << "/" << p.max_hp << "\t智商:" << p.iq << "\t能力:" << p.ability << endl;
                  cout << "【物品栏】" << endl;
                  cout << "食物:" << p.food << "份 | 羊毛:" << p.wool << "个 | 木头:" << p.wood << "块" << endl;
                  cout << "石头:" << p.stone << "块 | 木剑:" << p.sword << "把 | 木盾:" << p.shield << "个" << endl;
                  cout << "床:" << p.bed << "张 | 火把:" << p.torch << "个" << endl;
                  cout << "========================================\n" << endl;
              }
              
              // 制作物品函数
              void craftItem(Player& p) {
                  cout << "\n【制作台】- 可选配方:" << endl;
                  cout << "1. 木剑(木头*3)- 增加夜晚打怪伤害减免" << endl;
                  cout << "2. 木盾(木头*5)- 减少怪物攻击伤害" << endl;
                  cout << "3. 床(羊毛*3+木头*2)- 夜晚可直接跳过,百分百安全" << endl;
                  cout << "4. 火把(木头*1+石头*1)- 降低夜晚遇到怪物的概率" << endl;
                  cout << "5. 退出制作台" << endl;
                  cout << "请选择要制作的物品序号:";
                  
                  int choice;
                  cin >> choice;
                  switch(choice) {
                      case 1:
                          if(p.wood >= 3) {
                              p.wood -= 3;
                              p.sword += 1;
                              cout << "? 制作成功!获得木剑*1" << endl;
                              p.ability += 5; // 能力值提升
                          } else {
                              cout << "? 材料不足!制作木剑需要木头*3" << endl;
                          }
                          break;
                      case 2:
                          if(p.wood >= 5) {
                              p.wood -= 5;
                              p.shield += 1;
                              cout << "? 制作成功!获得木盾*1" << endl;
                              p.max_hp += 10; // 生命值上限提升
                              p.hp = p.max_hp; // 满血
                          } else {
                              cout << "? 材料不足!制作木盾需要木头*5" << endl;
                          }
                          break;
                      case 3:
                          if(p.wool >= 3 && p.wood >= 2) {
                              p.wool -= 3;
                              p.wood -= 2;
                              p.bed += 1;
                              cout << "? 制作成功!获得床*1" << endl;
                          } else {
                              cout << "? 材料不足!制作床需要羊毛*3+木头*2" << endl;
                          }
                          break;
                      case 4:
                          if(p.wood >= 1 && p.stone >= 1) {
                              p.wood -= 1;
                              p.stone -= 1;
                              p.torch += 2; // 一次做2个火把
                              cout << "? 制作成功!获得火把*2" << endl;
                              p.iq += 3; // 智商提升
                          } else {
                              cout << "? 材料不足!制作火把需要木头*1+石头*1" << endl;
                          }
                          break;
                      case 5:
                          cout << "退出制作台..." << endl;
                          break;
                      default:
                          cout << "无效选项!" << endl;
                  }
              }
              
              // 白天探索函数
              void dayExplore(Player& p) {
                  cout << "\n【白天探索】- 请选择探索区域:" << endl;
                  cout << "1. 草原(收集羊毛、食物,安全)" << endl;
                  cout << "2. 森林(收集木头,可能遇到狼)" << endl;
                  cout << "3. 矿山(收集石头,可能遇到洞穴蜘蛛)" << endl;
                  cout << "4. 村庄(与NPC交易,消耗食物)" << endl;
                  cout << "5. 返回营地(制作物品/休息)" << endl;
                  cout << "请选择:";
                  
                  int choice = 0;
                  cin >> choice;
                  int random_event = rand() % 10; // 0-9随机事件
                  
                  switch(choice) {
                      case 1: { // 草原 - 增加花括号限制变量作用域
                          cout << "\n你来到了广阔的草原,看到了成群的牛羊..." << endl;
                          int attack_choice;
                          cout << "是否攻击羊群?1.是 2.否:";
                          cin >> attack_choice;
                          if(attack_choice == 1) {
                              int wool_add = rand() % 3 + 1; // 1-3个羊毛
                              int food_add = rand() % 4 + 2; // 2-5份食物
                              p.wool += wool_add;
                              p.food += food_add;
                              cout << "获得羊毛*" << wool_add << ",食物*" << food_add << endl;
                          } else {
                              cout << "你选择和平相处,没有获得任何物品,但恢复了5点生命值" << endl;
                              p.hp += 5;
                              if(p.hp > p.max_hp) p.hp = p.max_hp;
                          }
                          break;
                      }
                      case 2: { // 森林 - 增加花括号限制变量作用域
                          cout << "\n你进入了茂密的森林,到处都是高大的树木..." << endl;
                          int wood_add = rand() % 5 + 3; // 3-7块木头
                          p.wood += wood_add;
                          cout << "你砍倒了几棵树,获得木头*" << wood_add << endl;
                          if(random_event < 3) { // 30%概率遇到狼
                              cout << "??  突然跳出一只狼!" << endl;
                              int damage = 15;
                              p.hp -= damage;
                              cout << "狼对你造成了" << damage << "点伤害!生命值剩余:" << p.hp << endl;
                          }
                          break;
                      }
                      case 3: { // 矿山 - 增加花括号限制变量作用域
                          cout << "\n你进入了黑暗的矿山,周围都是矿石..." << endl;
                          int stone_add = rand() % 4 + 2; // 2-5块石头
                          p.stone += stone_add;
                          cout << "你挖掘了石头,获得石头*" << stone_add << endl;
                          if(random_event < 2) { // 20%概率遇到洞穴蜘蛛
                              cout << "??  洞穴蜘蛛出现了!" << endl;
                              int damage = 20;
                              p.hp -= damage;
                              cout << "洞穴蜘蛛对你造成了" << damage << "点伤害!生命值剩余:" << p.hp << endl;
                          }
                          break;
                      }
                      case 4: { // 村庄 - 增加花括号限制变量作用域
                          cout << "\n你来到了村庄,村民们很友好..." << endl;
                          if(p.food >= 2) {
                              p.food -= 2;
                              int reward_choice = rand() % 3;
                              if(reward_choice == 0) {
                                  p.wood += 5;
                                  cout << "你用2份食物和村民交换了5块木头" << endl;
                              } else if(reward_choice == 1) {
                                  p.stone += 3;
                                  cout << "你用2份食物和村民交换了3块石头" << endl;
                              } else {
                                  p.wool += 2;
                                  cout << "你用2份食物和村民交换了2个羊毛" << endl;
                              }
                          } else {
                              cout << "? 食物不足,无法和村民交易!" << endl;
                          }
                          break;
                      }
                      case 5: { // 返回营地 - 增加花括号限制变量作用域
                          cout << "你回到了营地,可以开始制作物品了..." << endl;
                          craftItem(p);
                          break;
                      }
                      default:
                          cout << "无效选项!你在原地浪费了时间..." << endl;
                  }
              }
              
              // 夜晚生存函数
              bool nightSurvive(Player& p) {
                  cout << "\n?? 夜晚降临 ??" << endl;
                  cout << "周围变得漆黑,能听到怪物的嘶吼声..." << endl;
                  
                  // 有床直接跳过夜晚
                  if(p.bed > 0) {
                      cout << "你使用床跳过了夜晚,安全度过!" << endl;
                      p.bed -= 1;
                      p.hp += 30;
                      if(p.hp > p.max_hp) p.hp = p.max_hp;
                      return true;
                  }
                  
                  // 有火把降低怪物概率
                  int monster_prob = 80; // 80%概率遇到怪物
                  if(p.torch > 0) {
                      monster_prob = 40; // 火把降低到40%
                      p.torch -= 1;
                      cout << "你点燃了火把,周围变得明亮,怪物出现概率降低!" << endl;
                  }
                  
                  int random_chance = rand() % 100; // 0-99
                  if(random_chance < monster_prob) {
                      // 遇到怪物
                      int monster_type = rand() % 4; // 0-3 四种怪物
                      string monster_name;
                      int damage;
                      
                      switch(monster_type) {
                          case 0: monster_name = "僵尸"; damage = 30; break;
                          case 1: monster_name = "骷髅射手"; damage = 40; break;
                          case 2: monster_name = "苦力怕"; damage = 80; break;
                          case 3: monster_name = "幻翼"; damage = 25; break;
                      }
                      
                      cout << "??  你遇到了" << monster_name << "!" << endl;
                      // 有木盾减少伤害
                      if(p.shield > 0) {
                          damage -= 15;
                          p.shield -= 1;
                          cout << "你举起木盾,抵挡了部分伤害!" << endl;
                      }
                      // 有木剑反击
                      if(p.sword > 0) {
                          cout << "你挥舞木剑反击,对" << monster_name << "造成了伤害!" << endl;
                          damage -= 10;
                      }
                      
                      if(damage < 0) damage = 0;
                      p.hp -= damage;
                      cout << monster_name << "对你造成了" << damage << "点伤害!生命值剩余:" << p.hp << endl;
                      
                      // 可以吃食物回血
                      if(p.hp > 0 && p.food >= 2) {
                          int heal_choice;
                          cout << "是否使用2份食物恢复20点生命值?1.是 2.否:";
                          cin >> heal_choice;
                          if(heal_choice == 1) {
                              p.food -= 2;
                              p.hp += 20;
                              if(p.hp > p.max_hp) p.hp = p.max_hp;
                              cout << "你吃下食物,生命值恢复至:" << p.hp << endl;
                          }
                      }
                      
                      if(p.hp <= 0) {
                          cout << "你被" << monster_name << "击败了!" << endl;
                          return false; // 生存失败
                      } else {
                          cout << "你成功击退了" << monster_name << ",撑过了这一波攻击!" << endl;
                      }
                  } else {
                      cout << "今晚运气不错,没有遇到怪物,安全度过!" << endl;
                      p.hp += 10;
                      if(p.hp > p.max_hp) p.hp = p.max_hp;
                  }
                  
                  return true; // 生存成功
              }
              
              int main(){
                  srand(time(0)); // 初始化随机数
                  
                  // 游戏开场
                  cout<<"========================================"<<endl;
                  cout<<"          《我的世界:生存挑战》          "<<endl;
                  cout<<"========================================"<<endl;
                  cout<<"灵感来自《我的世界》,生存下去就是胜利!\n";
                  cout<<"你的名字:";
                  string name;
                  cin>>name;
                  cout<<endl<<"你好,"<<name<<"!欢迎来到我的世界生存挑战!"<<endl; 
                  
                  Player player;
                  player.name = name;
                  
                  cout<<"\n你的初始属性:"<<endl;
                  cout<<"等级:"<<player.level<<" | 智商:"<<player.iq<<" | 能力:"<<player.ability<<endl;
                  cout<<"生命值:"<<player.hp<<" | 物品栏:空"<<endl;
                  cout<<"◇□○:欢迎来到这个世界,生存是你的唯一目标!白天收集资源,夜晚躲避怪物!"<<endl;
                  
                  // 游戏主循环(3天2夜)
                  int day_count = 1;
                  bool is_alive = true;
                  
                  while(day_count <= 3 && is_alive) {
                      cout << "\n========================================" << endl;
                      cout << "                第" << day_count << "天                " << endl;
                      cout << "========================================" << endl;
                      
                      // 白天探索阶段(可以多次探索)
                      char continue_explore = 'y';
                      while(continue_explore == 'y' || continue_explore == 'Y') {
                          dayExplore(player);
                          showStatus(player);
                          
                          // 生命值为0直接结束
                          if(player.hp <= 0) {
                              is_alive = false;
                              break;
                          }
                          
                          cout << "是否继续探索?y/n:";
                          cin >> continue_explore;
                      }
                      
                      if(!is_alive) break;
                      
                      // 夜晚生存阶段
                      cout << "\n========================================" << endl;
                      cout << "               第" << day_count << "夜               " << endl;
                      cout << "========================================" << endl;
                      is_alive = nightSurvive(player);
                      showStatus(player);
                      
                      // 每日奖励
                      if(is_alive) {
                          player.level += 1;
                          player.iq += 5;
                          player.ability += 8;
                          cout << "\n?? 你成功度过了一天!等级提升至" << player.level << "级!" << endl;
                          day_count++;
                      }
                  }
                  
                  // 游戏结局
                  cout << "\n========================================" << endl;
                  cout << "                游戏结局                " << endl;
                  cout << "========================================" << endl;
                  
                  if(!is_alive) {
                      // 失败结局
                      cout << "\n? 游戏结束 ?" << endl;
                      cout << "你在第" << day_count << "天/夜不幸遇难了..." << endl;
                      cout << "最终等级:" << player.level << " | 剩余生命值:" << player.hp << endl;
                      cout << "◇□○:别灰心,这个世界本就残酷,下次准备更充分再来吧!" << endl;
                  } else {
                      // 胜利结局
                      cout << "\n? 恭喜通关 ?" << endl;
                      cout << "你成功在这个世界生存了3天2夜,完成了生存挑战!" << endl;
                      cout << "最终等级:" << player.level << " | 生命值:" << player.hp << "/" << player.max_hp << endl;
                      cout << "最终物品:食物*" << player.food << " 羊毛*" << player.wool << " 木头*" << player.wood << endl;
                      cout << "◇□○:太棒了!你已经成为了这个世界的生存大师,新的冒险在等着你!" << endl;
                  }
                  
                  cout<<"\n┈┈┈┈┈┈┈┈┈┈┉┉┉┉┉┉┉┉┉┉┉┉┉┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"<<endl;
                  cout<<"感谢您的游玩!如有意见请及时反馈,请勿抄袭,谢谢!(已完结)"<<endl; 
                  
                  return 0;
              }
              
              • @ 2026-1-15 16:17:49

                完结:

                #include <bits/stdc++.h>
                #include <ctime> // 用于生成随机数
                using namespace std;
                
                // 显示游戏状态栏的函数
                void showStatus(const string& name, long long level, long long iq, long long ability, int hp, int food) {
                    cout << "\n========================================" << endl;
                    cout << "玩家:" << name << "\t等级:" << level << endl;
                    cout << "智商:" << iq << "\t能力:" << ability << endl;
                    cout << "生命值:" << hp << "\t食物储备:" << food << endl;
                    cout << "========================================\n" << endl;
                }
                
                int main(){
                    // 设置随机数种子,确保每次运行随机结果不同
                    srand(time(0));
                    
                    cout<<"灵感来自《我的世界》...\n";
                    cout<<"你的名字:";
                    string j;
                    cin>>j;
                    cout<<endl<<"你好,"<<j<<endl; 
                    
                    // 玩家基础属性
                    long long level=1, iq=130, ability=90;
                    // 新增生命值和食物属性
                    int hp = 100;
                    int food = 0;
                    int total_wool = 0; // 收集的羊毛总数
                    
                    cout<<"你的等级是:"<<level<<endl<<"你的智商是:"<<iq<<endl<<"你的能力是:"<<ability<<endl;
                    cout<<"期待你在本游戏中的表现......."<<endl;
                    cout<<j<<":em......这是哪?你又是谁?"<<endl;
                    cout<<"◇□○:你没有必要知道me是谁。但是,me很有必要告诉你一件事,这个世界很阴险。你不用过于担心,me会暗中帮助你的。"<<endl; 
                    cout<<"┌┬┬┬┬┐\n├┼┼┼┼┤\n├┼┼┼┼┤\n├┼┼┼┼┤\n└┴┴┴┴┘"<<endl;
                    cout<<"◇□○:你收集的东西会存放在里面。满了之后会自动丢弃。"<<endl;
                    
                    // 白天收集资源阶段
                    int choice;
                    cout<<"是:1     否:2(不建议您用“否”)\n";
                    
                    // 第一只羊
                    cout<<"你的前方有一只羊,是否攻击?\n1.是      2.否\n";
                    cin>>choice;
                    if(choice==1)
                    {
                        cout<<"羊肉+3   白羊毛+1     黑羊毛+1\n";
                        food += 3;
                        total_wool += 2;
                    }
                    
                    // 第二只羊
                    cout<<"你的前方有一只羊,是否攻击?\n1.是      2.否\n";
                    cin>>choice;
                    if(choice==1)
                    {
                        cout<<"羊肉+3   白羊毛+1     黑羊毛+1\n";
                        food += 3;
                        total_wool += 2;
                    }
                    
                    // 猪
                    cout<<"你的前方有一只猪,是否攻击?\n1.是      2.否\n";
                    cin>>choice;
                    if(choice==1)
                    {
                        cout<<"猪肉+3\n";
                        food += 3;
                    }
                    
                    // 兔子
                    cout<<"你的前方有一只兔子,是否攻击?\n1.是      2.否\n";
                    cin>>choice;
                    if(choice==1)
                    {
                        cout<<"兔子肉+3\n";
                        food += 3;
                    }
                    
                    // 显示收集结果和当前状态
                    cout<<"\n【白天收集总结】"<<endl;
                    cout<<"你获得了羊毛*"<<total_wool<<"、肉类食物*"<<food<<endl;
                    showStatus(j, level, iq, ability, hp, food);
                    
                    // 夜晚来临
                    cout<<"\n(太阳逐渐落下,夜晚降临了……)"<<endl;
                    cout<<"这里的夜晚会有很多恐怖的怪物,请小心!"<<endl;
                    cout<<"僵尸、骷髅、苦力怕会随时出现,碰到它们你就会受伤甚至死亡……\n"<<endl;
                    
                    // 随机生成夜晚遭遇的怪物(1-4分别对应不同怪物,0代表安全)
                    int monster_event = rand() % 5; // 0-4的随机数
                    string monster_name;
                    int damage = 0;
                    
                    switch(monster_event) {
                        case 0:
                            cout<<"◇□○:今晚运气不错,附近没有怪物出没!"<<endl;
                            cout<<"你赶紧用收集的羊毛制作了简易床,度过了安全的一夜。"<<endl;
                            hp += 20; // 休息恢复生命值
                            if(hp > 100) hp = 100; // 生命值不超过上限
                            break;
                        case 1:
                            monster_name = "僵尸";
                            damage = 30;
                            break;
                        case 2:
                            monster_name = "骷髅射手";
                            damage = 40;
                            break;
                        case 3:
                            monster_name = "苦力怕";
                            damage = 80;
                            break;
                        case 4:
                            monster_name = "蜘蛛";
                            damage = 20;
                            break;
                    }
                    
                    // 遭遇怪物的处理逻辑
                    if(monster_event != 0) {
                        cout<<"⚠️  警告!你遇到了"<<monster_name<<"!"<<endl;
                        hp -= damage;
                        cout<<monster_name<<"对你造成了"<<damage<<"点伤害!你的生命值剩余:"<<hp<<endl;
                        
                        // 判断是否可以用食物恢复生命值
                        if(food >= 2 && hp > 0) {
                            cout<<"\n你是否使用2份食物恢复20点生命值?\n1.是      2.否\n";
                            cin>>choice;
                            if(choice == 1) {
                                food -= 2;
                                hp += 20;
                                if(hp > 100) hp = 100;
                                cout<<"你食用了食物,生命值恢复至:"<<hp<<endl;
                            }
                        }
                    }
                    
                    // 游戏结局判定
                    cout<<"\n========================================"<<endl;
                    cout<<"                游戏结局                "<<endl;
                    cout<<"========================================"<<endl;
                    
                    if(hp <= 0) {
                        // 失败结局
                        cout<<"\n❌ 游戏结束 ❌"<<endl;
                        cout<<"你被"<<monster_name<<"击败了,倒在了冰冷的夜晚中……"<<endl;
                        cout<<"你收集的食物:"<<food<<"份,羊毛:"<<total_wool<<"个"<<endl;
                        cout<<"◇□○:真可惜,看来你还不够强大,下次再来试试吧!"<<endl;
                    } else {
                        // 胜利结局
                        cout<<"\n✅ 恭喜通关 ✅"<<endl;
                        cout<<"你成功熬过了危险的夜晚,迎来了新的黎明!"<<endl;
                        cout<<"剩余生命值:"<<hp<<",剩余食物:"<<food<<"份,羊毛:"<<total_wool<<"个"<<endl;
                        cout<<"◇□○:干得不错!你已经适应了这个世界的规则,接下来的冒险会更精彩!"<<endl;
                        
                        // 等级提升奖励
                        level += 1;
                        iq += 10;
                        ability += 15;
                        cout<<"\n🎉 你的等级提升至"<<level<<"级!"<<endl;
                        cout<<"智商提升至"<<iq<<",能力提升至"<<ability<<"!"<<endl;
                    }
                    
                    cout<<"\n┈┈┈┈┈┈┈┈┈┈┉┉┉┉┉┉┉┉┉┉┉┉┉┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"<<endl;
                    cout<<"感谢您的游玩!如有意见请及时反馈,请勿抄袭,谢谢!(已完结)"<<endl; 
                    
                    return 0;
                }
                
                • @ 2026-1-2 10:01:18
                  #include <bits/stdc++.h>
                  using namespace std;
                  int main(){
                  	cout<<"灵感来自《我的世界》...\n";
                  	cout<<"你的名字:";
                  	string j;
                  	cin>>j;
                  	cout<<endl<<"你好,"<<j<<endl; 
                  	long long b=1,c=130,d=90;
                  	cout<<"你的等级是:"<<b<<endl<<"你的智商是:"<<c<<endl<<"你的能力是:"<<d<<endl;
                  	cout<<"期待你在本游戏中的表现......."<<endl;
                  	cout<<j<<":em......这是哪?你又是谁?"<<endl;
                  	cout<<"◇□○:你没有必要知道me是谁。但是,me很有必要告诉你一件事,这个世界很阴险。你不用过于担心,me会暗中帮助你的。"<<endl; 
                  	cout<<"┌┬┬┬┬┐\n├┼┼┼┼┤\n├┼┼┼┼┤\n├┼┼┼┼┤\n└┴┴┴┴┘"<<endl;
                  	cout<<"◇□○:你收集的东西会存放在里面。满了之后会自动丢弃。"<<endl;
                  	cout<<"是:1     否:2(不建议您用“否”)\n";
                  	cout<<"你的前方有一只羊,是否攻击?\n是      否\n";
                  	int aa,a=0,t=0;
                  	cin>>aa;
                  	if(aa==1)
                  	{
                  		cout<<"羊肉+3   白羊毛+1     黑羊毛+1\n";
                  		a+=3;
                  		t+=2;
                  	} 
                  	cout<<"你的前方有一只羊,是否攻击?\n是      否\n";
                  	cin>>aa;
                  	if(aa==1)
                  	{
                  		cout<<"羊肉+3   白羊毛+1     黑羊毛+1\n";
                  		a+=3;
                  		t+=2;
                  	} 
                  	cout<<"你的前方有一只猪,是否攻击?\n是      否\n";
                  	cin>>aa;
                  	if(aa==1)
                  	{
                  		cout<<"猪肉+3\n";
                  		a+=3;
                  	} 
                  	cout<<"你的前方有一只兔子,是否攻击?\n是      否\n";
                  	cin>>aa;
                  	if(aa==1)
                  	{
                  		cout<<"兔子肉+3\n";
                  		a+=3;
                  	} 
                  	cout<<"你获得了肉*"<<t<<"、羽毛*"<<b<<endl;
                  	cout<<"(夜晚了……这里的夜晚会有很多恐怖的怪物,请小心,你无法攻击它们……僵尸或尸体来到你面前,你就s了……碰到其他的怪物,也会s……)\n";
                  	cout<<"┈┈┈┈┈┈┈┈┈┈┉┉┉┉┉┉┉┉┉┉┉┉┉┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈\n感谢您的试玩,如有意见请及时反馈,请勿抄袭,谢谢!(未完结)"; 
                  	return 0;
                  }
                  
                  • 1

                  信息

                  ID
                  940
                  时间
                  ms
                  内存
                  MiB
                  难度
                  8
                  标签
                  递交数
                  135
                  已通过
                  25
                  上传者