• 个人简介

    #include <iostream>
    #include <vector>
    #include <string>
    #include <iomanip>
    #include <ctime>
    #include <cstdlib>
    #include <algorithm>
    using namespace std;
    
    // 武器配件结构体
    struct Part {
    	string name;
    	string type;
    	int price;
    	string desc;
    };
    
    // 武器结构体
    struct Weapon {
    	string name;
    	int price;
    	string type;
    	string desc;
    	int skinId;
    	string skinName;
    	
    	Part muzzle;
    	Part mag;
    	Part sight;
    	Part stock;
    	bool hasModify;
    };
    
    // 任务结构体
    struct Task {
    	string taskName;
    	string content;
    	int rewardMoney;
    	bool isFinish;
    };
    
    // 账号结构体
    struct Account {
    	string username;
    	string password;
    	int money;
    	vector<Weapon> ownWeapons;
    	vector<Weapon> warehouse;
    	vector<Task> taskList;
    };
    
    // 全局变量:记录当前选择的地图和难度
    int currentMap = 1;
    int currentDifficulty = 2;
    
    // 函数声明
    void registerAccount(vector<Account>& accounts);
    Account* loginAccount(vector<Account>& accounts);
    void showMainMenu();
    void chooseMap();
    void chooseDifficulty();
    void buyWeapon(Account& player);
    void showOwnWeapons(const Account& player);
    void showWeaponShop();
    void openWarehouse(Account& player);
    void taskSystem(Account& player);
    void skinSystem(Account& player);
    void modifyWeapon(Account& player);
    void startBattle(Account& player);
    
    int main() {
    	srand((unsigned int)time(NULL));
    	vector<Account> accounts;
    	int choice;
    	
    	cout << "=========================================" << endl;
    	cout << "       三角洲行动 【1.2测试版】" << endl;
    	cout << "=========================================" << endl;
    	
    	while (true) {
    		cout << "\n1. 注册新账号" << endl;
    		cout << "2. 登录游戏" << endl;
    		cout << "0. 退出游戏" << endl;
    		cout << "请选择操作:";
    		cin >> choice;
    		
    		if (choice == 1) {
    			registerAccount(accounts);
    		}
    		else if (choice == 2) {
    			Account* player = loginAccount(accounts);
    			if (player != nullptr) {
    				cout << "\n登录成功!欢迎你," << player->username << endl;
    				cout << "当前金币:" << player->money << endl;
    				system("pause");
    				
    				while (true) {
    					system("cls");
    					showMainMenu();
    					cin >> choice;
    					if (choice == 0) break;
    					
    					switch (choice) {
    						case 1: chooseMap(); break;
    						case 2: chooseDifficulty(); break;
    						case 3: buyWeapon(*player); break;
    						case 4: showOwnWeapons(*player); break;
    						case 5: openWarehouse(*player); break;
    						case 6: taskSystem(*player); break;
    						case 7: skinSystem(*player); break;
    						case 8: modifyWeapon(*player); break;
    						case 9: startBattle(*player); break;
    						default: cout << "输入有误,请重新选择!" << endl;
    					}
    					cout << "\n按回车继续...";
    					cin.ignore();
    					cin.get();
    				}
    			}
    		}
    		else if (choice == 0) {
    			cout << "游戏结束,再见!" << endl;
    			break;
    		}
    		else {
    			cout << "无效选项!" << endl;
    		}
    	}
    	return 0;
    }
    
    // 注册账号
    void registerAccount(vector<Account>& accounts) {
    	string user, pwd;
    	cout << "\n===== 账号注册 =====" << endl;
    	cout << "用户名:";
    	cin >> user;
    	cout << "密码:";
    	cin >> pwd;
    	
    	for (auto& acc : accounts) {
    		if (acc.username == user) {
    			cout << "该用户名已存在,注册失败!" << endl;
    			return;
    		}
    	}
    	
    	Account newAcc;
    	newAcc.username = user;
    	newAcc.password = pwd;
    	newAcc.money = 15000;
    	
    	newAcc.taskList = {
    		{"新手出击", "完成一次地图选择", 2000, false},
    		{"武装自己", "购买任意一把武器", 3000, false},
    		{"挑战难度", "选择困难及以上难度", 2500, false},
    		{"成功撤离", "完成一局对局并成功撤离", 5000, false}
    	};
    	
    	accounts.push_back(newAcc);
    	cout << "注册成功!赠送15000金币 + 新手任务!" << endl;
    }
    
    // 登录账号
    Account* loginAccount(vector<Account>& accounts) {
    	string user, pwd;
    	cout << "\n===== 账号登录 =====" << endl;
    	cout << "用户名:";
    	cin >> user;
    	cout << "密码:";
    	cin >> pwd;
    	
    	for (int i = 0; i < accounts.size(); i++) {
    		if (accounts[i].username == user && accounts[i].password == pwd) {
    			return &accounts[i];
    		}
    	}
    	cout << "用户名或密码错误!" << endl;
    	return nullptr;
    }
    
    // 主菜单
    void showMainMenu() {
    	cout << "\n========== 游戏主菜单 ==========" << endl;
    	cout << "1. 选择地图        2. 选择难度" << endl;
    	cout << "3. 武器商店        4. 我的装备" << endl;
    	cout << "5. 个人仓库        6. 每日任务" << endl;
    	cout << "7. 更换皮肤        8. 武器改装" << endl;
    	cout << "9. 开始对局        0. 返回登录" << endl;
    	cout << "================================" << endl;
    	cout << "请输入选项:";
    }
    
    // 选择地图
    void chooseMap() {
    	system("cls");
    	int c;
    	cout << "\n===== 地图列表 =====" << endl;
    	cout << "1. 零号大坝   (普通奖励)" << endl;
    	cout << "2. 长弓溪谷   (普通奖励)" << endl;
    	cout << "3. 巴克什     (中高奖励)" << endl;
    	cout << "4. 航天基地   (高风险高奖励)" << endl;
    	cout << "5. 灰色荒漠   (高风险高奖励)" << endl;
    	cout << "6. 码头危机   (中等奖励)" << endl;
    	cout << "请选择地图编号:";
    	cin >> c;
    	if (c >= 1 && c <= 6) {
    		currentMap = c;
    		cout << "已成功选定地图!" << endl;
    	} else {
    		cout << "输入错误,使用默认地图!" << endl;
    	}
    }
    
    // 选择难度
    void chooseDifficulty() {
    	system("cls");
    	int c;
    	cout << "\n===== 难度选择 =====" << endl;
    	cout << "1. 简单   (敌人很弱,奖励低)" << endl;
    	cout << "2. 普通   (标准强度,奖励中)" << endl;
    	cout << "3. 困难   (敌人强化,奖励高)" << endl;
    	cout << "4. 机密   (敌人高强,奖励很高)" << endl;
    	cout << "5. 梦魇   (敌人极强,奖励极高)" << endl;
    	cout << "请选择难度:";
    	cin >> c;
    	if (c >= 1 && c <= 5) {
    		currentDifficulty = c;
    		cout << "难度已设置!" << endl;
    	} else {
    		cout << "输入错误,使用默认难度(普通)!" << endl;
    	}
    }
    
    // 武器商店展示
    void showWeaponShop() {
    	cout << "\n================================= 武器商店 =================================" << endl;
    	cout << left << setw(6) << "编号" << setw(18) << "武器" << setw(10) << "类型" << setw(8) << "价格" << "描述" << endl;
    	cout << "1    M4A1              步枪      3000    稳定通用" << endl;
    	cout << "2    AKM               步枪      2800    高伤害" << endl;
    	cout << "3    M16A4             步枪      3200    三连发精准" << endl;
    	cout << "4    SCAR-L            步枪      3500    全能型" << endl;
    	cout << "5    AUG               步枪      3800    无托稳定" << endl;
    	cout << "6    AWM               狙击      8500    一击秒杀" << endl;
    	cout << "7    M24               狙击      7000    轻量化狙击" << endl;
    	cout << "8    Kar98k            狙击      6000    经典栓狙" << endl;
    	cout << "9    MP5               冲锋枪    2200    近距离王者" << endl;
    	cout << "10   UZI               冲锋枪    1800    超高射速" << endl;
    	cout << "11   Vector            冲锋枪    2500    稳定爆发" << endl;
    	cout << "12   M870              霰弹枪    2000    贴脸秒杀" << endl;
    	cout << "13   S12K              霰弹枪    2400    连喷压制" << endl;
    	cout << "14   Desert Eagle      手枪      1800    高伤手枪" << endl;
    	cout << "15   G17               手枪      1200    稳定通用" << endl;
    	cout << "16   P92               手枪      1000    新手标配" << endl;
    	cout << "17   M249              机枪      9000    火力压制" << endl;
    	cout << "18   DP28              机枪      7500    稳定扫射" << endl;
    	cout << "19   Crossbow          冷兵器    5000    静音杀敌" << endl;
    	cout << "20   Knife             近战      0       免费匕首" << endl;
    	cout << "0    返回菜单" << endl;
    	cout << "===========================================================================" << endl;
    }
    
    // 购买武器
    void buyWeapon(Account& player) {
    	vector<Weapon> shop = {
    		{"M4A1",3000,"步枪","稳定通用",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"AKM",2800,"步枪","高伤害",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"M16A4",3200,"步枪","三连发精准",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"SCAR-L",3500,"步枪","全能型",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"AUG",3800,"步枪","无托稳定",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"AWM",8500,"狙击","一击秒杀",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"M24",7000,"狙击","轻量化狙击",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"Kar98k",6000,"狙击","经典栓狙",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"MP5",2200,"冲锋枪","近距离王者",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"UZI",1800,"冲锋枪","超高射速",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"Vector",2500,"冲锋枪","稳定爆发",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"M870",2000,"霰弹枪","贴脸秒杀",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"S12K",2400,"霰弹枪","连喷压制",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"Desert Eagle",1800,"手枪","高伤手枪",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"G17",1200,"手枪","稳定通用",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"P92",1000,"手枪","新手标配",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"M249",9000,"机枪","火力压制",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"DP28",7500,"机枪","稳定扫射",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"Crossbow",5000,"冷兵器","静音杀敌",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false},
    		{"Knife",0,"近战","免费匕首",0,"原版",{"无","枪口",0,"无"},{"无","弹匣",0,"无"},{"无","瞄准镜",0,"无"},{"无","枪托",0,"无"},false}
    	};
    	
    	int c;
    	while (1) {
    		system("cls");
    		showWeaponShop();
    		cout << "当前金币:" << player.money << endl;
    		cout << "选择武器购买(0返回):";
    		cin >> c;
    		if (c == 0) break;
    		if (c < 1 || c > shop.size()) {
    			cout << "编号错误!" << endl;
    			system("pause");
    			continue;
    		}
    		Weapon w = shop[c-1];
    		if (player.money < w.price) {
    			cout << "金币不足,无法购买!" << endl;
    			system("pause");
    			continue;
    		}
    		player.money -= w.price;
    		player.ownWeapons.push_back(w);
    		cout << "购买成功!【武装自己】任务可前往领取奖励" << endl;
    		system("pause");
    	}
    }
    
    // 查看已装备武器
    void showOwnWeapons(const Account& player) {
    	cout << "\n========== 已装备武器 ==========" << endl;
    	if (player.ownWeapons.empty()) {
    		cout << "暂无装备,快去商店购买吧!" << endl;
    		return;
    	}
    	for (int i = 0; i < player.ownWeapons.size(); i++) {
    		auto& w = player.ownWeapons[i];
    		cout << i+1 << ". " << w.name << " [" << w.type << "] 皮肤:" << w.skinName << endl;
    		if (w.hasModify) {
    			cout << "   【改装配件】" << endl;
    			cout << "   枪口:" << w.muzzle.name << " | 弹匣:" << w.mag.name << endl;
    			cout << "   瞄准镜:" << w.sight.name << " | 枪托:" << w.stock.name << "\n" << endl;
    		}
    	}
    }
    
    // 仓库系统
    void openWarehouse(Account& player) {
    	int op, idx;
    	while(true) {
    		system("cls");
    		cout << "\n========== 个人仓库 ==========" << endl;
    		cout << "1. 将装备移入仓库" << endl;
    		cout << "2. 将仓库武器取出装备" << endl;
    		cout << "0. 退出仓库" << endl;
    		cout << "请选择:";
    		cin >> op;
    		if (op == 0) break;
    		
    		if (op == 1) {
    			showOwnWeapons(player);
    			if (player.ownWeapons.empty()) {
    				cout << "没有可转移的装备!" << endl;
    				system("pause");
    				continue;
    			}
    			cout << "输入要移入仓库的武器编号:";
    			cin >> idx;
    			if (idx < 1 || idx > player.ownWeapons.size()) {
    				cout << "编号错误!" << endl;
    				system("pause");
    				continue;
    			}
    			player.warehouse.push_back(player.ownWeapons[idx-1]);
    			player.ownWeapons.erase(player.ownWeapons.begin() + idx - 1);
    			cout << "转移成功!" << endl;
    		}
    		else if (op == 2) {
    			cout << "\n仓库内武器:" << endl;
    			if (player.warehouse.empty()) {
    				cout << "仓库为空!" << endl;
    				system("pause");
    				continue;
    			}
    			for (int i = 0; i < player.warehouse.size(); i++) {
    				cout << i+1 << ". " << player.warehouse[i].name << endl;
    			}
    			cout << "输入取出编号:";
    			cin >> idx;
    			if (idx < 1 || idx > player.warehouse.size()) {
    				cout << "编号错误!" << endl;
    				system("pause");
    				continue;
    			}
    			player.ownWeapons.push_back(player.warehouse[idx-1]);
    			player.warehouse.erase(player.warehouse.begin() + idx - 1);
    			cout << "取出并装备成功!" << endl;
    		}
    		system("pause");
    	}
    }
    
    // 任务系统
    void taskSystem(Account& player) {
    	int idx;
    	cout << "\n========== 个人任务 ==========" << endl;
    	for (int i = 0; i < player.taskList.size(); i++) {
    		auto& t = player.taskList[i];
    		string state = t.isFinish ? "已完成" : "未完成";
    		cout << i+1 << ". " << t.taskName << " | " << state
    		<< " | 奖励金币:" << t.rewardMoney << endl;
    		cout << "   任务内容:" << t.content << endl;
    	}
    	cout << "\n输入任务编号领取奖励(0返回):";
    	cin >> idx;
    	if (idx == 0) return;
    	if (idx < 1 || idx > player.taskList.size()) {
    		cout << "编号错误!" << endl;
    		return;
    	}
    	Task& t = player.taskList[idx-1];
    	if (t.isFinish) {
    		cout << "该任务已领取过奖励!" << endl;
    		return;
    	}
    	t.isFinish = true;
    	player.money += t.rewardMoney;
    	cout << "任务完成!获得 " << t.rewardMoney << " 金币,当前总金币:" << player.money << endl;
    }
    
    // 皮肤更换系统
    void skinSystem(Account& player) {
    	if (player.ownWeapons.empty()) {
    		cout << "当前无装备武器,无法更换皮肤!" << endl;
    		return;
    	}
    	int wIdx, sIdx;
    	cout << "\n========== 皮肤更换 ==========" << endl;
    	showOwnWeapons(player);
    	cout << "选择要换皮肤的武器编号:";
    	cin >> wIdx;
    	if (wIdx < 1 || wIdx > player.ownWeapons.size()) {
    		cout << "编号错误!" << endl;
    		return;
    	}
    	cout << "\n可选皮肤:" << endl;
    	cout << "1. 原版     2. 丛林迷彩     3. 烈焰涂装     4. 暗银金属" << endl;
    	cout << "选择皮肤编号:";
    	cin >> sIdx;
    	switch(sIdx) {
    		case 1: player.ownWeapons[wIdx-1].skinName = "原版"; break;
    		case 2: player.ownWeapons[wIdx-1].skinName = "丛林迷彩"; break;
    		case 3: player.ownWeapons[wIdx-1].skinName = "烈焰涂装"; break;
    		case 4: player.ownWeapons[wIdx-1].skinName = "暗银金属"; break;
    		default: cout << "皮肤编号无效!"; return;
    	}
    	cout << "皮肤更换成功!" << endl;
    }
    
    // 武器改装系统
    void modifyWeapon(Account& player) {
    	if (player.ownWeapons.empty()) {
    		cout << "\n你还没有装备任何武器,无法改枪!" << endl;
    		return;
    	}
    	
    	vector<Part> muzzles = {{"补偿器", "枪口", 800, "减少后坐力"}, {"消音器", "枪口", 1200, "静音射击"}, {"消焰器", "枪口", 600, "消除枪口火焰"}};
    	vector<Part> mags = {{"快速弹匣", "弹匣", 700, "换弹加快"}, {"扩容弹匣", "弹匣", 1000, "子弹增加"}, {"快速扩容", "弹匣", 1500, "换弹快+子弹多"}};
    	vector<Part> sights = {{"红点瞄准", "瞄准镜", 500, "近距离精准"}, {"全息瞄准", "瞄准镜", 800, "视野清晰"}, {"6倍镜", "瞄准镜", 1500, "远距离狙击"}};
    	vector<Part> stocks = {{"轻型枪托", "枪托", 600, "提升便携"}, {"重型枪托", "枪托", 900, "稳定射击"}, {"战术枪托", "枪托", 1200, "全能稳定"}};
    	
    	int wIdx;
    	system("cls");
    	cout << "========== 武器改装工厂 ==========" << endl;
    	showOwnWeapons(player);
    	cout << "\n请选择要改装的武器编号:";
    	cin >> wIdx;
    	
    	if (wIdx < 1 || wIdx > player.ownWeapons.size()) {
    		cout << "编号错误!" << endl;
    		return;
    	}
    	
    	Weapon& w = player.ownWeapons[wIdx - 1];
    	int op, pIdx;
    	
    	while (true) {
    		system("cls");
    		cout << "========== 改装:" << w.name << " ==========" << endl;
    		cout << "当前金币:" << player.money << endl;
    		cout << "1. 改装枪口   目前:" << w.muzzle.name << endl;
    		cout << "2. 改装弹匣   目前:" << w.mag.name << endl;
    		cout << "3. 改装瞄准镜 目前:" << w.sight.name << endl;
    		cout << "4. 改装枪托   目前:" << w.stock.name << endl;
    		cout << "0. 退出改装" << endl;
    		cout << "请选择改装部位:";
    		cin >> op;
    		
    		if (op == 0) break;
    		
    		if (op == 1) {
    			cout << "\n===== 枪口配件 =====" << endl;
    			for (int i = 0; i < muzzles.size(); i++)
    				cout << i+1 << ". " << muzzles[i].name << " 价格:" << muzzles[i].price << " | " << muzzles[i].desc << endl;
    			cout << "选择配件编号:";
    			cin >> pIdx;
    			if (pIdx < 1 || pIdx > muzzles.size()) { cout << "无效选择!\n"; system("pause"); continue; }
    			Part p = muzzles[pIdx-1];
    			if (player.money < p.price) { cout << "金币不足!\n"; system("pause"); continue; }
    			player.money -= p.price;
    			w.muzzle = p;
    		}
    		else if (op == 2) {
    			cout << "\n===== 弹匣配件 =====" << endl;
    			for (int i = 0; i < mags.size(); i++)
    				cout << i+1 << ". " << mags[i].name << " 价格:" << mags[i].price << " | " << mags[i].desc << endl;
    			cout << "选择配件编号:";
    			cin >> pIdx;
    			if (pIdx < 1 || pIdx > mags.size()) { cout << "无效选择!\n"; system("pause"); continue; }
    			Part p = mags[pIdx-1];
    			if (player.money < p.price) { cout << "金币不足!\n"; system("pause"); continue; }
    			player.money -= p.price;
    			w.mag = p;
    		}
    		else if (op == 3) {
    			cout << "\n===== 瞄准镜 =====" << endl;
    			for (int i = 0; i < sights.size(); i++)
    				cout << i+1 << ". " << sights[i].name << " 价格:" << sights[i].price << " | " << sights[i].desc << endl;
    			cout << "选择配件编号:";
    			cin >> pIdx;
    			if (pIdx < 1 || pIdx > sights.size()) { cout << "无效选择!\n"; system("pause"); continue; }
    			Part p = sights[pIdx-1];
    			if (player.money < p.price) { cout << "金币不足!\n"; system("pause"); continue; }
    			player.money -= p.price;
    			w.sight = p;
    		}
    		else if (op == 4) {
    			cout << "\n===== 枪托 =====" << endl;
    			for (int i = 0; i < stocks.size(); i++)
    				cout << i+1 << ". " << stocks[i].name << " 价格:" << stocks[i].price << " | " << stocks[i].desc << endl;
    			cout << "选择配件编号:";
    			cin >> pIdx;
    			if (pIdx < 1 || pIdx > stocks.size()) { cout << "无效选择!\n"; system("pause"); continue; }
    			Part p = stocks[pIdx-1];
    			if (player.money < p.price) { cout << "金币不足!\n"; system("pause"); continue; }
    			player.money -= p.price;
    			w.stock = p;
    		}
    		else {
    			cout << "输入错误!\n";
    			system("pause");
    			continue;
    		}
    		
    		w.hasModify = true;
    		cout << "\n配件安装成功!" << endl;
    		system("pause");
    	}
    }
    
    // 对局系统:新增回血功能
    void startBattle(Account& player) {
    	system("cls");
    	cout << "===================================" << endl;
    	cout << "           对局开始!" << endl;
    	cout << "===================================" << endl;
    	
    	string mapName;
    	int mapRewardRate = 100;
    	switch (currentMap) {
    		case 1: mapName = "零号大坝"; mapRewardRate = 100; break;
    		case 2: mapName = "长弓溪谷"; mapRewardRate = 105; break;
    		case 3: mapName = "巴克什";   mapRewardRate = 130; break;
    		case 4: mapName = "航天基地"; mapRewardRate = 160; break;
    		case 5: mapName = "灰色荒漠"; mapRewardRate = 150; break;
    		case 6: mapName = "码头危机"; mapRewardRate = 115; break;
    		default: mapName = "未知区域"; mapRewardRate = 100;
    	}
    	
    	string diffName;
    	int enemyHp = 100;
    	int enemyDmgMin = 10, enemyDmgMax = 20;
    	int rewardBase = 3000;
    	
    	switch (currentDifficulty) {
    	case 1:
    		diffName = "简单";
    		enemyHp = 70;
    		enemyDmgMin = 8; enemyDmgMax = 15;
    		rewardBase = 2000;
    		break;
    	case 2:
    		diffName = "普通";
    		enemyHp = 100;
    		enemyDmgMin = 15; enemyDmgMax = 25;
    		rewardBase = 3500;
    		break;
    	case 3:
    		diffName = "困难";
    		enemyHp = 150;
    		enemyDmgMin = 20; enemyDmgMax = 35;
    		rewardBase = 5000;
    		break;
    	case 4:
    		diffName = "机密";
    		enemyHp = 220;
    		enemyDmgMin = 30; enemyDmgMax = 50;
    		rewardBase = 7500;
    		break;
    	case 5:
    		diffName = "梦魇";
    		enemyHp = 300;
    		enemyDmgMin = 40; enemyDmgMax = 70;
    		rewardBase = 12000;
    		break;
    	default:
    		diffName = "普通";
    		enemyHp = 100;
    		enemyDmgMin = 15; enemyDmgMax = 25;
    		rewardBase = 3500;
    	}
    	
    	cout << "地图:" << mapName << endl;
    	cout << "难度:" << diffName << endl;
    	cout << "敌人初始血量:" << enemyHp << endl;
    	system("pause");
    	
    	int hp = 100;
    	int eHp = enemyHp;
    	bool win = false;
    	
    	while (true) {
    		system("cls");
    		cout << "========== 【" << mapName << "】对局中 ==========" << endl;
    		cout << "难度:" << diffName << endl;
    		cout << "你的血量:" << hp << "/100" << endl;
    		cout << "敌人血量:" << eHp << endl;
    		// 新增选项:4. 使用药品回血
    		cout << "1. 搜索物资   2. 主动交火   3. 立即撤离   4. 使用药品回血" << endl;
    		cout << "请选择行动:";
    		int op;
    		cin >> op;
    		
    		if (op == 1) {
    			int getMoney = rand() % 4000 + 1500;
    			getMoney = getMoney * mapRewardRate / 100;
    			player.money += getMoney;
    			cout << "\n搜索成功!获得 " << getMoney << " 金币!" << endl;
    		}
    		else if (op == 2) {
    			cout << "\n交火开始!" << endl;
    			int myDmg = rand() % 35 + 25;
    			int eDmg = rand() % (enemyDmgMax - enemyDmgMin + 1) + enemyDmgMin;
    			
    			hp -= eDmg;
    			eHp -= myDmg;
    			
    			cout << "你造成伤害:" << myDmg << endl;
    			cout << "敌人造成伤害:" << eDmg << endl;
    			
    			if (hp <= 0) {
    				cout << "\n你被击败!对局失败!" << endl;
    				break;
    			}
    			if (eHp <= 0) {
    				cout << "\n成功淘汰敌人!" << endl;
    				win = true;
    				break;
    			}
    		}
    		else if (op == 3) {
    			cout << "\n安全撤离!" << endl;
    			win = true;
    			break;
    		}
    		else if (op == 4) {
    			// 回血逻辑,血量上限100
    			int heal = rand() % 25 + 15;
    			hp += heal;
    			hp = min(hp, 100); // 血量不超过100
    			cout << "\n使用急救包,恢复 " << heal << " 点血量!当前血量:" << hp << endl;
    		}
    		else {
    			cout << "\n无效操作!" << endl;
    		}
    		system("pause");
    	}
    	
    	// 对局结算
    	cout << "\n===================================" << endl;
    	if (win) {
    		cout << "对局胜利!成功撤离!" << endl;
    		int reward = (rand() % rewardBase + rewardBase) * mapRewardRate / 100;
    		player.money += reward;
    		cout << "获得结算奖励:" << reward << " 金币" << endl;
    		cout << "任务【成功撤离】已完成!" << endl;
    	} else {
    		int lose = min(player.money, mapRewardRate * 25);
    		player.money -= lose;
    		cout << "对局失败!损失 " << lose << " 金币" << endl;
    	}
    	cout << "当前金币:" << player.money << endl;
    	cout << "===================================" << endl;
    	system("pause");
    }
    
    
  • 最近活动