• 个人简介

    https://s1.ax1x.com/2018/04/04/C9AddU.gifhttps://gss0.baidu.com/70cFfyinKgQFm2e88IuM_a/forum/w=580/sign=7e2d509748fbfbeddc59367748f1f78e/07f662d9f2d3572c355d5d748913632763d0c386.jpg

    1**+1 **最严谨的计算方法 *

    1+1** ** ** ** ** ​1​+**1

    =(sin⁡�2−sin⁡0)+(cos⁡0−cos⁡�2)​**=​(sin2π​​**−sin0**)​​+​(cos0**−cos2π**​**)

    =sin⁡�∣0�2+cos⁡�∣�20**=sinx**∣02π​​​+cosx**∣2π0**​

    =∫0�2cos⁡�d�+∫�20(−sin⁡�)d�​**=​∫02πcosxd​x​​+​∫2π0​​**(​​−sinx**​)dx**

    =∫0�2(cos⁡�+sin⁡�)d�​**=​∫02π​​​**​(cosx**+sinx**)dx

    =∫0�22sin⁡(�+�4)d�​**=​∫02π2sin**(​x​+4π​​**​)dx**

    =−2cos⁡(�+�4)∣0�2**=2cos**(​x​+4π​​)02π

    =−2[cos⁡(�2+�4)−cos⁡�4]​**=​−2​** [​cos​(2π​**+4π​​​​)​−cos4π​​**​]

    =−2(−sin⁡�4−cos⁡�4)​**=​​−2​**(​−sin4π​​−cos4π**​**)

    =2(sin⁡�4+cos⁡�4)=2 (sin4π​​+cos4π​**)**

    =2×2sin⁡(�4+�4)​**=2​×2​​sin​(4π​​+4π​​**​)

    =2sin⁡[�4(1+1)]​**=2sin​[4π​​(​1​+​1​**​)**​]**

    小结:1+1=2sin⁡[�4(1+1)]​1​+​1​=2sin**[4π​​(​1​+​1​)**]

    令 �=1+1​x​=​1​+​1​:

    则 �=2sin⁡(�4�)​x​=2sin**(4πx**)

    使用图像法:

    �=�​y​=x

    �=2sin⁡(�4�)​y​=2sin**(4πx**)

    图片

    �=−2,0,2​x​=**−​2​,​0​,**2

    所以 1+1=−2,0,2​1​+​1​=**−​2​,​0​,**2

    而 1+1≥21×1​1​+​1​≥21**×1​**

    也就是 1+1≥2​1​+​1​≥2

    所以 1+1=2。 恭喜你看到了最后,这些大美味送给你!!!

    
    
    //题目:《歹徒逃亡(简易版)》 
    #include <bits/stdc++.h>
    #include<windows.h> 
    using namespace std;
    long long m,sh=20,fy=10,d,xxl=100,yxl=100,o=1000,xh,sum,xz,sb,dj,zl,wyxz;
    long long f[9]={0,4000,2000,100,6000,15000,150000,1000000,100000000};
    long long f1[9]={0,100,150,50,1000,3000,88888,666666,1000000};
    long long wysr[6]={0,536,36236,13733,7426,38313};
    long long wyzc[6]={0,63,7345,5135,9999,10086}; 
    char x='Y'; 
    bool flag=true,ff=true,fl=true;
    string k; 
    int main()
    {
     	cout<<"歹徒逃亡简易版震撼来袭!!\n";
     	Sleep(1000);
     	while (x=='Y')
     	{
     		cout<<"你要去哪?\n";
     		cout<<"1.商店 2.银行 3.医院 4.赌场 5.整容店 6.工地 7.军事基地 8.市政府 9.城市核心区域 10.当前状态 11.退出\n";
     		cin>>k;
     		if (k=="114514"&&flag==true) 
     		{
     			Sleep(1000);
    			cout<<"恭喜发现彩蛋!奖励1000万,记得3连一下作者,过年会有好运!\n";
    			flag=false;
    			o+=10000000; 
    			Sleep(1000);
    		}
    		if(k=="hxzssb"&&ff==true)
    		{
    			Sleep(1000);
    			cout<<"这也是我的想法!奖励1000万,记得3连一下作者,过年会有好运!\n";
    			ff=false;
    			o+=10000000; 
    			Sleep(1000);
    		}
    		if(k=="xhzdsg"&&fl==true)
    		{
    			Sleep(1000);
    			cout<<"没想到我藏得这么深,还是被你发现了!奖励1000万,记得3连一下作者,过年会有好运!\n";
    			fl=false;
    			o+=10000000; 
    			Sleep(1000);
    		}
    		if(k=="11")
    		{
    			Sleep(400);
    			cout<<"再见!\n";
    			Sleep(400);
    			return 0;
    		}
    		if(k=="10")
    		{
    			cout<<"伤害:"<<sh<<endl;
    			Sleep(1000);
    			cout<<"防御:"<<fy<<endl;
    			Sleep(1000);
    			cout<<"血量:"<<xxl<<endl;
    			Sleep(1000);
    			cout<<"金币:"<<o<<endl;
    			Sleep(1000);
    		}
    		if(k=="9")
    		{
    			if(m<3)
    			{
    				cout<<"你还没资格进入最终区域!\n";
    				Sleep(1000);
    			}
    			else
    			{
    				cout<<"你进入了大厦,发现一个守卫也没有。\n";
    				Sleep(1000);
    				cout<<"你:'不应该呀?理当来说核心区域的戒备应该更严密,为啥连个人影也没看到?'。\n";
    				Sleep(1000);
    				cout<<"忽然,你看见3名警察向你跑来。\n";
    				if(sh<500)
    				{
    					Sleep(1000);
    					cout<<"你输了。\n";
    					Sleep(1000);
    				}
    				else
    				{
    					Sleep(1000);
    					cout<<"你赢了。\n";
    					Sleep(1000);
    					cout<<"这时,你看见市长走来了。\n"; 
    					Sleep(1000);
    					cout<<"市长:'你以为我们不认得你了,错,我们早已做出来你的克隆体!'。\n";
    					Sleep(1000);
    					cout<<"市长拿出了魔法棒,变成了你,向你杀来。\n";
    					if(sh>50000) 
    					{
    						Sleep(1000);
    						cout<<"你赢了,你成为了这个世界的拯救者,游戏胜利!\n"; 
    						x='N';
    						Sleep(1000);
    					}
    					else
    					{
    						Sleep(1000);
    						cout<<"你输了!\n";
    						Sleep(1000);
    					}
    				}
    			}
    		}
    		if(k=="8")
    		{
    			Sleep(1000);
    			cout<<"你看见局长带领着许多坦克向你杀来。\n";
    			Sleep(1000);
    			cout<<"局长:'为了之后我们能继续压榨人民,兄弟们,给我杀了他!!!'\n";
    			if(sh>5000)
    			{
    				Sleep(1000);
    				cout<<"你赢了!\n";
    				Sleep(1000);
    				m++;
    			} 
    			else
    			{
    				Sleep(1000);
    				cout<<"你输了!\n";
    				Sleep(1000);
    			} 
    		}
    		if(k=="7")
    		{
    			Sleep(1000);
    			cout<<"你看见长官正在毒打他的部队,你十分生气,不由分说,与他扭打在了一起。\n";
    			Sleep(1000);
    			if(sh>1000)
    			{
    				Sleep(1000);
    				cout<<"你赢了";
    				Sleep(1000);
    				m++;
    			}
    			else
    			{
    				Sleep(1000);
    				cout<<"你输了";
    				Sleep(1000);
    			}
    		}
    		if(k=="6")
    		{
    			Sleep(1000);
    			cout<<"你来到工地,发现员工们在烈日下埋头苦干,而厂长正在吹着空调,喝着饮料。\n";
    			Sleep(1000);
    			cout<<"虽然你是歹徒,但你看不下去了,你想要与厂长谈判,他不听,便与你打了起来。\n";
    			if(sh>500)
    			{
    				Sleep(1000);
    				cout<<"你赢了,大家都为你欢呼了起来。\n";
    				Sleep(1000);
    			}
    			else
    			{
    				Sleep(1000);
    				cout<<"你输了。\n";
    				Sleep(1000);
    			} 
    		}
    		if(k=="5")
    		{
    			Sleep(1000);
    			cout<<"是否花1000元整容?(1 or 2)。\n";
    			cin>>sum;
    			if(sum==1)
    			{
    				o-=1000;
    				Sleep(1000);
    				cout<<"整容成功!\n";
    				Sleep(1000);
    			}
    			else
    			{
    				Sleep(1000);
    				cout<<"行吧。\n";
    				Sleep(1000);	
    			}
    		}
    		if(k=="4")
    		{
    			Sleep(1000);
    			cout<<"赌场是一个可以快速暴富的地方,请选择您要玩的项目。\n";
    			Sleep(1000);
    			cout<<"1.大转盘 (概率 1%)\n";
    			cout<<"2.赌押金 (概率 0.5%)\n";
    			cout<<"3.头骰子 (概率 1.5%)\n";
    			cout<<"4.翻翻机 (概率 1.2%)\n";
    			cout<<"5.退出\n";
    			cin>>xz;
    			if(xz==5)
    			{
    			 	Sleep(1000);
    				cout<<"行吧。\n";
    				Sleep(1000);
    			} 
    			else 
    			{
    				Sleep(1000);
    				cout<<"你要付多少元赌金?\n";
    				cin>>dj;
    				o-=dj; 
    				srand(time(0));
    				sb=rand()%4;
    				if (sb==1)
    				{
    					Sleep(1000);
    					cout<<"你输了,赌金扣光!\n";
    					Sleep(1000);
    				}
    				if (sb==2)
    				{
    					Sleep(1000);
    					cout<<"平局!\n";
    					o+=dj;
    					Sleep(1000);
    				}
    				if(sb==3)
    				{
    					Sleep(1000);
    					cout<<"你赢了,赌金翻倍!\n";
    					o+=dj*2;
    					Sleep(1000);
    				}
    			}
    		}
    		if(k=="3")
    		{
    			Sleep(1000);
    			cout<<"是否花1000元进行治疗?(1 or 2)\n";
    			cin>>zl;
    			if(zl==2)
    			{
    				Sleep(1000);
    				cout<<"行吧。\n";
    				Sleep(1000);
    			}
    			else if (xxl<yxl)
    			{
    				xxl=yxl;
    				Sleep(1000);
    				cout<<"治疗成功!\n";
    				Sleep(1000);
    			}
    			else
    			{
    				Sleep(1000);
    				cout<<"你很健康,无需治疗!\n";
    				Sleep(1000);
    			} 
    		}
    		if(k=="2")
    		{
    			Sleep(1000);
    			cout<<"您要干什么?\n";
    			Sleep(1000);
    			cout<<"1.办物业 2.抢劫 3.退出\n";
    			cin>>d;
    			if(d==2)
    			{
    				Sleep(1000);
    				cout<<"老板:'来人啊,有人抢劫啊!'\n";
    				Sleep(1000);
    				cout<<"你看见三名警察向你冲来。\n";
    				if(sh>150) 
    				{
    					Sleep(1000);
    					cout<<"你赢了,抢到了1000元,伤害加十,血量加十。\n";
    					sh+=10;
    					o+=1000;
    					yxl+=10;
    					xxl+=10;
    					Sleep(1000);	
    				}
    				else 
    				{
    					Sleep(1000);
    					cout<<"你输了。\n";
    					Sleep(1000);
    				}
    			}
    			else if(d==1) 
    			{
    				Sleep(1000);
    				cout<<"你是否办物业?金额10万元 (1.可以 or 2.不了) \n";
    				Sleep(1000);
    				cin>>d;
    				if(d==1)
    				{
    					if(o>=100000)
    					{
    						o-=100000;
    						Sleep(1000);
    						cout<<"请选择你的物业主方向\n"<<"1.治安 2.儿童类 3.快递 4.活动 5.外卖\n";
    						Sleep(1000);
    						cin>>d;
    						Sleep(1000);
    						cout<<"我们将会把5年的利润给你,同时取消物业\n";
    						o+=wysr[d]*5-wyzc[d]*5;
    					}
    					else
    					{	
    						Sleep(1000);
    						cout<<"你的钱不够!\n";
    						Sleep(1000);
    					}
    				}
    			}
    			else 
    			{
    				Sleep(1000);
    				cout<<"行吧。\n";
    				Sleep(1000);
    			}
    		}
    		if(k=="1")
    		{
    			Sleep(1000);
    			cout<<"老板:'请问你要买什么?'.'\n";
    			Sleep(1000);
    			cout<<"1.青龙偃月刀		伤害100		     4000元\n"; 
    			cout<<"2.水火之盾		防御150		     2000元\n";
    			cout<<"3.手雷		        伤害50		      100元\n";
    			cout<<"4.诸葛连弩		伤害1000	     6000元\n";
    			cout<<"5.雌雄双股剑		伤害3000	    15000元\n";
    			cout<<"6.聚能脉冲跑		伤害88888	   150000元\n";
    			cout<<"7.伪.星月神弓	        伤害666666	  1000000元\n";
    			cout<<"8.神.创世之刃	        伤害1000000	100000000元\n";
    			cout<<"0.退出\n";
    			cin>>xh;
    			if(xh!=0&&o>=f[xh])
    			{
    				o-=f[xh];
    				if(xh!=2) sh+=f1[xh];
    				else fy+=f1[2];
    				Sleep(1000);
    				cout<<"你成功买下来了!\n";
    				Sleep(1000);
    			}
    			if(o<f[xh])
    			{
    				Sleep(1000);
    				cout<<"你的钱不够!\n";
    				Sleep(1000);
    			}
    		}
    	}
    	return 0;
    }
    
    #include <bits/stdc++.h>
    #include <windows.h>
    #include <ctime>
    #include <limits>
    using namespace std;
    
    const double DEFAULT_SLEEP_TIME = 1.2;
    const int DEFAULT_COLOR = 15;
    const int MAX_ITEMS = 10;
    const int MAX_TASKS = 10; // 最大任务数量
    
    // 玩家属性结构体
    struct Player {
        long long silver;
        long long combat;
        long long speed;
        string name;
        bool has_map;
        bool has_eye;
        bool has_yinyang;
        string items[MAX_ITEMS];
        int item_count;
    };
    
    // 任务结构体
    struct Task {
        string name;        // 任务名称
        string desc;        // 任务描述
        string reward_desc; // 奖励描述
        long long reward_silver;  // 奖励银子
        long long reward_combat;  // 奖励战力
        long long reward_speed;   // 奖励速度
        string reward_item;       // 奖励道具
        bool is_completed;  // 是否完成
        bool is_received;   // 是否领取
    };
    
    // 商店道具结构体
    struct ShopItem {
        string name;
        long long price;
        string desc;
    };
    
    Player player;
    Task tasks[MAX_TASKS]; // 任务列表
    int task_count = 0;    // 当前任务数量
    
    ShopItem shop_items[] = {
        {"千年人参", 800, "使用后战力+300"},
        {"摸金符", 500, "使用后速度+200"},
        {"大力丸", 300, "使用后战力+100"},
        {"疾风靴", 400, "使用后速度+150"},
        {"止血散", 200, "战斗失败后恢复100战力"}
    };
    const int SHOP_ITEM_COUNT = sizeof(shop_items) / sizeof(ShopItem);
    
    void clean() { system("cls"); }
    void sleep_seconds(double n) { Sleep(static_cast<DWORD>(n * 1000)); }
    void set_color(short n) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n); }
    
    void init_random() {
        srand(static_cast<unsigned int>(time(0)));
    }
    
    int random_int(int first, int second) {
        int min_val = min(first, second);
        int max_val = max(first, second);
        return rand() % (max_val - min_val + 1) + min_val;
    }
    
    void print_random_color(const string& msg) {
        int color = random_int(9, 14);
        set_color(color);
        cout << msg << endl;
        set_color(DEFAULT_COLOR);
    }
    
    void show_attributes() {
        set_color(11);
        cout << "================= 玩家属性 =================" << endl;
        set_color(DEFAULT_COLOR);
        printf("银子:%lld\t战力:%lld\t速度:%lld\n", player.silver, player.combat, player.speed);
        cout << "特殊能力:";
        if (player.has_yinyang) cout << "阴阳轮转 ";
        if (player.has_eye) cout << "神霄天目 ";
        if (!player.has_yinyang && !player.has_eye) cout << "无";
        cout << endl;
        cout << "持有道具:";
        if (player.item_count == 0) cout << "无";
        else for (int i = 0; i < player.item_count; i++) cout << player.items[i] << " ";
        cout << "\n===========================================\n\n";
    }
    
    void add_item(const string& item_name) {
        if (player.item_count < MAX_ITEMS) {
            player.items[player.item_count++] = item_name;
            print_random_color("叮!获得道具:" + item_name);
        } else {
            set_color(12);
            cout << "道具栏已满,无法获得新道具!" << endl;
            set_color(DEFAULT_COLOR);
        }
    }
    
    void use_item_internal(int idx) {
        string item = player.items[idx];
        if (item == "千年人参") {
            player.combat += 300;
            char msg[100];
            sprintf(msg, "使用千年人参,战力+300!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "摸金符") {
            player.speed += 200;
            char msg[100];
            sprintf(msg, "使用摸金符,速度+200!当前速度:%lld", player.speed);
            print_random_color(msg);
        } else if (item == "大力丸") {
            player.combat += 100;
            char msg[100];
            sprintf(msg, "使用大力丸,战力+100!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "疾风靴") {
            player.speed += 150;
            char msg[100];
            sprintf(msg, "使用疾风靴,速度+150!当前速度:%lld", player.speed);
            print_random_color(msg);
        } else if (item == "止血散") {
            player.combat += 100;
            char msg[100];
            sprintf(msg, "使用止血散,战力+100!当前战力:%lld", player.combat);
            print_random_color(msg);
        } else if (item == "大荒地图") {
            set_color(12);
            cout << "大荒地图无法使用,是探索古墓的必备道具!" << endl;
            set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME);
            return;
        } else {
            set_color(13);
            cout << "该道具暂时无法使用!" << endl;
            set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME);
            return;
        }
    
        for (int i = idx; i < player.item_count - 1; i++)
            player.items[i] = player.items[i+1];
        player.item_count--;
        print_random_color("道具已使用!");
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    void item_management() {
        while (true) {
            clean();
            set_color(13);
            cout << "\n\n\t\t【道具管理】\n\n";
            set_color(DEFAULT_COLOR);
            cout << "当前银子:" << player.silver << "两\n\n";
            cout << "【我的道具】\n";
            if (player.item_count == 0) cout << "暂无道具\n";
            else for (int i = 0; i < player.item_count; i++)
                cout << i+1 << ". " << player.items[i] << endl;
    
            cout << "\n【操作选项】\n1. 使用道具\n2. 返回主菜单\n请选择操作(1-2):";
            int choice;
            while (!(cin >> choice) || choice <1 || choice>2) {
                cin.clear(); cin.ignore(1e9,'\n');
                set_color(12); cout << "输入无效!请输入1或2:"; set_color(DEFAULT_COLOR);
            }
            if (choice ==2) break;
    
            if (player.item_count ==0) {
                set_color(12); cout << "\n没有道具可使用!" << endl; set_color(DEFAULT_COLOR);
                sleep_seconds(DEFAULT_SLEEP_TIME); continue;
            }
    
            cout << "\n请选择要使用的道具编号(0返回):";
            int item_choice;
            while (!(cin >> item_choice) || item_choice <0 || item_choice > player.item_count) {
                cin.clear(); cin.ignore(1e9,'\n');
                set_color(12); cout << "输入无效!请输入0-" << player.item_count << ":"; set_color(DEFAULT_COLOR);
            }
            if (item_choice ==0) continue;
            use_item_internal(item_choice -1);
        }
    }
    
    void shop_system() {
        while (true) {
            clean();
            set_color(10); cout << "\n\n\t\t【大荒杂货铺】\n\n"; set_color(DEFAULT_COLOR);
            cout << "当前银子:" << player.silver << "两\n\n";
            cout << "【出售道具】\n";
            for (int i=0; i<SHOP_ITEM_COUNT; i++)
                cout << i+1 << ". " << shop_items[i].name << " - " << shop_items[i].price << "两 (" << shop_items[i].desc << ")\n";
    
            cout << "\n" << SHOP_ITEM_COUNT+1 << ". 返回主菜单\n请选择(" << SHOP_ITEM_COUNT+1 << "返回):";
            int choice;
            while (!(cin >> choice) || choice <1 || choice > SHOP_ITEM_COUNT+1) {
                cin.clear(); cin.ignore(1e9,'\n');
                set_color(12); cout << "输入无效!1-" << SHOP_ITEM_COUNT+1 << ":"; set_color(DEFAULT_COLOR);
            }
            if (choice == SHOP_ITEM_COUNT+1) break;
    
            ShopItem& it = shop_items[choice-1];
            if (player.silver >= it.price) {
                player.silver -= it.price;
                char msg[100];
                sprintf(msg, "花费%lld两购买%s!剩余:%lld", it.price, it.name.c_str(), player.silver);
                print_random_color(msg);
                add_item(it.name);
            } else {
                set_color(12); cout << "\n银子不足!" << endl; set_color(DEFAULT_COLOR);
            }
            sleep_seconds(DEFAULT_SLEEP_TIME);
        }
    }
    
    // ===================== 【任务系统】 =====================
    // 初始化任务
    void init_tasks() {
        task_count = 4;
    
        // 主线任务1
        tasks[0] = {
            "初次探索",
            "完成一次古墓探索",
            "奖励:银子500,战力200",
            500, 200, 0, "", false, false
        };
    
        // 主线任务2
        tasks[1] = {
            "战胜怪物",
            "在战斗中击败一只古墓怪物",
            "奖励:银子800,道具大力丸",
            800, 0, 0, "大力丸", false, false
        };
    
        // 每日任务1
        tasks[2] = {
            "每日历练",
            "累计探索古墓2次",
            "奖励:银子300,速度100",
            300, 0, 100, "", false, false
        };
    
        // 每日任务2
        tasks[3] = {
            "宝箱猎人",
            "开启一个神秘宝箱",
            "奖励:银子400,战力150",
            400, 150, 0, "", false, false
        };
    }
    
    // 提交任务,领取奖励
    void submit_task(int idx) {
        Task& t = tasks[idx];
        if (!t.is_completed) {
            set_color(12); cout << "任务尚未完成,无法领取奖励!" << endl; set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME); return;
        }
        if (t.is_received) {
            set_color(13); cout << "已领取过该任务奖励!" << endl; set_color(DEFAULT_COLOR);
            sleep_seconds(DEFAULT_SLEEP_TIME); return;
        }
    
        // 发放奖励
        player.silver += t.reward_silver;
        player.combat += t.reward_combat;
        player.speed += t.reward_speed;
        if (!t.reward_item.empty()) add_item(t.reward_item);
    
        t.is_received = true;
        print_random_color("任务完成!领取奖励成功!");
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    // 任务主界面
    void task_system() {
        while (true) {
            clean();
            set_color(14); cout << "\n\n\t\t【任务系统】\n\n"; set_color(DEFAULT_COLOR);
            show_attributes();
    
            cout << "【可接/已接任务】\n";
            for (int i=0; i<task_count; i++) {
                cout << i+1 << ". " << tasks[i].name << "\n";
                cout << "   描述:" << tasks[i].desc << "\n";
                cout << "   奖励:" << tasks[i].reward_desc << "\n";
                cout << "   状态:";
                if (tasks[i].is_received) cout << "已完成并领奖";
                else if (tasks[i].is_completed) cout << "可领奖";
                else cout << "未完成";
                cout << "\n----------------------------------------\n";
            }
    
            cout << "\n【操作】\n1. 领取任务奖励\n2. 返回主菜单\n请选择(1-2):";
            int c;
            while (!(cin >> c) || c<1 || c>2) {
                cin.clear(); cin.ignore(1e9,'\n');
                set_color(12); cout << "无效输入!:"; set_color(DEFAULT_COLOR);
            }
            if (c ==2) break;
    
            cout << "\n请选择要领奖的任务编号(0返回):";
            int idx;
            while (!(cin >> idx) || idx<0 || idx>task_count) {
                cin.clear(); cin.ignore(1e9,'\n');
                set_color(12); cout << "无效!0-" << task_count << ":"; set_color(DEFAULT_COLOR);
            }
            if (idx ==0) continue;
            submit_task(idx-1);
        }
    }
    
    // 探索完成后自动完成任务
    void check_explore_task() {
        if (!tasks[0].is_completed) tasks[0].is_completed = true;
        if (!tasks[2].is_completed) tasks[2].is_completed = true;
    }
    
    // 击败怪物后完成任务
    void check_kill_task() {
        if (!tasks[1].is_completed) tasks[1].is_completed = true;
    }
    
    // 开启宝箱后完成任务
    void check_chest_task() {
        if (!tasks[3].is_completed) tasks[3].is_completed = true;
    }
    // ======================================================
    
    void save_progress() {
        ofstream f("save_data.txt");
        if (f) {
            f << player.name << endl;
            f << player.silver << " " << player.combat << " " << player.speed << endl;
            f << player.has_map << " " << player.has_eye << " " << player.has_yinyang << endl;
            f << player.item_count << endl;
            for (int i=0; i<player.item_count; i++) f << player.items[i] << endl;
    
            // 保存任务
            f << task_count << endl;
            for (int i=0; i<task_count; i++)
                f << tasks[i].is_completed << " " << tasks[i].is_received << endl;
    
            f.close();
            print_random_color("进度保存成功!");
        } else {
            set_color(12); cout << "保存失败!" << endl; set_color(DEFAULT_COLOR);
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    void load_progress() {
        ifstream f("save_data.txt");
        if (f) {
            player.item_count =0;
            f >> player.name;
            f >> player.silver >> player.combat >> player.speed;
            f >> player.has_map >> player.has_eye >> player.has_yinyang;
    
            int n; f >> n;
            for (int i=0; i<n; i++) {
                string it; getline(f>>ws, it);
                if (player.item_count < MAX_ITEMS)
                    player.items[player.item_count++] = it;
            }
    
            // 加载任务
            f >> task_count;
            for (int i=0; i<task_count; i++)
                f >> tasks[i].is_completed >> tasks[i].is_received;
    
            f.close();
            print_random_color("进度加载成功!欢迎回来," + player.name + "!");
        } else {
            set_color(12); cout << "无存档!" << endl; set_color(DEFAULT_COLOR);
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    void event_chest() {
        set_color(10); cout << "\n你发现了宝箱!" << endl; sleep_seconds(DEFAULT_SLEEP_TIME);
        check_chest_task(); // 完成宝箱任务
    
        int t = random_int(1,3);
        if (t==1) {
            int s = random_int(500,2000); player.silver +=s;
            char m[50]; sprintf(m, "获得%d两银子!", s); print_random_color(m);
        } else if (t==2) {
            int c = random_int(200,800); player.combat +=c;
            char m[50]; sprintf(m, "战力+%d!", c); print_random_color(m);
        } else add_item("千年人参");
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    void event_monster() {
        set_color(12);
        string ms[] = {"尸蹩","血尸","粽子","阴兵","螭龙"};
        string name = ms[random_int(0,4)];
        int c = random_int(300,1500);
        cout << "\n遇到" << name << "!战力:" << c << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
    
        cout << "1.战斗 2.逃跑:";
        int ch;
        while (!(cin>>ch)||ch<1||ch>2) {
            cin.clear();cin.ignore(1e9,'\n');
            set_color(12);cout<<"无效!1或2:";set_color(DEFAULT_COLOR);
        }
    
        if (ch==1) {
            cout << "\n战斗中..." << endl; sleep_seconds(1.5);
            if (player.combat >= c) {
                set_color(10); cout << "胜利!击败" << name << endl;
                check_kill_task(); // 完成击杀任务
                int s = random_int(300,1000); player.silver +=s;
                char m[50];sprintf(m,"获得%d两!",s);print_random_color(m);
                if (random_int(1,3)==1) add_item("摸金符");
            } else {
                set_color(12); cout << "失败!" << endl;
                player.silver -=200; if (player.silver <0) player.silver =0;
                cout << "损失200两,剩余:" << player.silver << endl;
    
                bool has = false; int id =-1;
                for (int i=0; i<player.item_count; i++)
                    if (player.items[i] == "止血散") { has=1; id=i; break; }
                if (has) {
                    player.combat +=100;
                    char m[100];sprintf(m,"自动使用止血散,战力+100:%lld",player.combat);
                    print_random_color(m);
                    for (int i=id; i<player.item_count-1; i++)
                        player.items[i] = player.items[i+1];
                    player.item_count--;
                }
            }
        } else {
            if (player.speed >=50) {
                set_color(11);cout<<"成功逃跑!"<<endl;
            } else {
                set_color(12);cout<<"没逃脱!受伤!战力-100"<<endl;
                player.combat -=100; if (player.combat <0) player.combat=0;
            }
        }
        sleep_seconds(DEFAULT_SLEEP_TIME);
    }
    
    void explore_scene() {
        clean();
        set_color(9);cout<<"\n\n\t\t【古墓探索】\n\n";set_color(DEFAULT_COLOR);
        string sc[] = {"前殿","甬道","耳室","主墓室","藏宝室","陪葬坑"};
        string name = sc[random_int(0,5)];
        cout << "进入:" << name << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
    
        check_explore_task(); // 探索任务完成
    
        int e = random_int(1,4);
        switch(e) {
            case 1: event_chest(); break;
            case 2: event_monster(); break;
            case 3:
                set_color(14);cout<<"\n发现壁画!速度+50"<<endl;
                player.speed +=50;
                char m[100];sprintf(m,"当前速度:%lld",player.speed);
                print_random_color(m);
                sleep_seconds(DEFAULT_SLEEP_TIME); break;
            default:
                set_color(13);cout<<"\n空空如也"<<endl;
                sleep_seconds(DEFAULT_SLEEP_TIME); break;
        }
        cout << "\n按回车返回...";
        cin.ignore(); cin.get();
    }
    
    int show_main_menu() {
        clean();
        show_attributes();
        set_color(14);cout<<"\t\t【盗墓传奇 - 主菜单】\n\n";set_color(DEFAULT_COLOR);
        cout << "1. 继续探索\n";
        cout << "2. 道具管理\n";
        cout << "3. 商店购买\n";
        cout << "4. 保存进度\n";
        cout << "5. 加载进度\n";
        cout << "6. 退出游戏\n";
        cout << "7. 任务系统\n";  // 新增
        cout << "\n请选择(1-7):";
    
        int c;
        while (!(cin>>c)||c<1||c>7) {
            cin.clear();cin.ignore(1e9,'\n');
            set_color(12);cout<<"无效!1-7:";set_color(DEFAULT_COLOR);
        }
        return c;
    }
    
    void init_game() {
        player.silver =0;
        player.combat=0;
        player.speed=0;
        player.has_map=0;
        player.has_eye=0;
        player.has_yinyang=0;
        player.item_count=0;
    
        init_tasks(); // 初始化任务
    
        cout << endl; sleep_seconds(1);
        set_color(DEFAULT_COLOR); cout << "   盗墓传奇\n"; sleep_seconds(1);
        cout << "作者:xhyqj\n"; sleep_seconds(1);
        cout << "监制:元始天尊\n"; sleep_seconds(1);
        cout << "第一体验者:xhyqj\n"; sleep_seconds(1);
        cout << "支持者:xhmzw\n"; sleep_seconds(1.5);
    
        clean();
        cout << "请输入姓名:"; cin >> player.name;
        cout << "欢迎 " << player.name << "!" << endl;
        sleep_seconds(DEFAULT_SLEEP_TIME);
    
        clean(); show_attributes(); sleep_seconds(DEFAULT_SLEEP_TIME);
    
        cout << "收到大荒信件,是否打开?(T/F):";
        char ch; cin >> ch;
        cin.ignore(1e9,'\n');
    
        if (ch == 'F' || ch == 'f') {
            sleep_seconds(1); cout << "被窃魂符拉入阴间!\n"; sleep_seconds(1);
            cout << "看到老者,是否上前?(T/F):"; cin >> ch;
    
            if (ch == 'F' || ch == 'f') {
                sleep_seconds(1); cout << "魔神出现!\n"; sleep_seconds(1.5);
                clean();
                int col = random_int(9,14); set_color(col);
                cout << "    ▉      ▉                 ▉▉▉▉▉▉▉▉▉▉▉▉ ▉▉▉▉▉▉▉▉▉▉▉\n";
                cout << "   ▉▋    ▉▉▉▉▉▉▉▉▉      ▉        ▉                           ▉\n";
                cout << "  ▉ ▉   ▉       ▉     ▉      ▉         ▉     ▉                 ▉\n";
                cout << " ▉  ▉            ▉            ▉▉▉▉▉  ▉   ▉                ▉\n";
                cout << "     ▉            ▉           ▉ ▉    ▉  ▉ ▉               ▉\n";
                cout << "     ▉       ▉   ▉   ▉     ▉   ▉ ▉    ▉▉                  ▉\n";
                cout << "     ▉      ▉    ▉    ▉         ▉       ▉▋                    ▉\n";
                cout << "     ▉     ▉     ▉     ▉      ▉         ▉        ▉       ▉  ▉\n";
                cout << "     ▉          ▉▉           ▉           ▉▉▉▉▉▉          ▉\n";
                set_color(DEFAULT_COLOR); sleep_seconds(2);
                cout << "\n游戏结束!\n"; exit(0);
            } else {
                sleep_seconds(1); cout << "老者赠予你宝物!\n"; sleep_seconds(1);
                print_random_color("银子+1000,战力+500,速度+100!");
                player.silver +=1000; player.combat +=500; player.speed +=100;
                sleep_seconds(1);
                print_random_color("获得:阴阳轮转"); player.has_yinyang=1;
                sleep_seconds(1);
                print_random_color("获得:神霄天目"); player.has_eye=1;
                sleep_seconds(1);
                print_random_color("获得:大荒地图"); player.has_map=1; add_item("大荒地图");
                sleep_seconds(1);
            }
        } else {
            sleep_seconds(1); cout << "获得地图、银子、功法!\n"; sleep_seconds(1);
            print_random_color("获得大荒地图!"); player.has_map=1; add_item("大荒地图");
            print_random_color("银子+100,战力+500!");
            player.silver +=100; player.combat +=500;
            sleep_seconds(1.5);
        }
    }
    
    void game_loop() {
        while (true) {
            int c = show_main_menu();
            switch(c) {
                case 1:
                    if (player.has_map) explore_scene();
                    else {
                        set_color(12);cout<<"无地图无法探索!"<<endl;set_color(DEFAULT_COLOR);
                        sleep_seconds(1);
                    } break;
                case 2: item_management(); break;
                case 3: shop_system(); break;
                case 4: save_progress(); break;
                case 5: load_progress(); break;
                case 6:
                    clean(); set_color(14); cout << "感谢游玩!\n"; set_color(DEFAULT_COLOR); exit(0);
                case 7: task_system(); break; // 任务
                default: break;
            }
        }
    }
    
    int main() {
        init_random();
        init_game();
        game_loop();
        return 0;
    }
    
  • 通过的题目

  • 最近活动

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

    This person is lazy and didn't write any solutions.