-
Bio
凌霄威龙
游戏:
#include <bits/stdc++.h> #include <windows.h> #include <conio.h> #define For(i, x, y) for (ll i = x; i <= y; ++ i) #define Dor(i, x, y) for (ll i = x; i >= y; -- i) #define ll long long using namespace std; ll qian, p, rlsx = 9 * 8 * 64, ys, jsq, r, x, ifx, gdj = 1, kdj; ll lhy, gs, syk, xnk, cyk, gk, xszd = 1, rl, xts, zys, smbz, wk; ll yqmz, zuobim, nnk, tk1, tk2, lk, tk3, sc, yj, yjnj, k, myxsk; ll gz[9] = {0, 3000, 6000, 12000, 30000, 60000, 150000, 600000, 1000000}; double star; string s, kg23 = " ", kg9 = " "; char zf, zf666; void saveGame() { ofstream out("save.dat", ios::binary); out.write((char*)&qian, sizeof(qian)); out.write((char*)&yjnj, sizeof(yjnj)); out.write((char*)&xszd, sizeof(xszd)); out.write((char*)&r, sizeof(r)); out.write((char*)&ifx, sizeof(ifx)); out.write((char*)&gdj, sizeof(gdj)); out.write((char*)&yqmz, sizeof(yqmz)); out.write((char*)&zuobim, sizeof(zuobim)); out.write((char*)&star, sizeof(star)); out.close(); } void loadGame() { ifstream in("save.dat", ios::binary); in.read((char*)&qian, sizeof(qian)); in.read((char*)&yjnj, sizeof(yjnj)); in.read((char*)&xszd, sizeof(xszd)); in.read((char*)&r, sizeof(r)); in.read((char*)&ifx, sizeof(ifx)); in.read((char*)&gdj,sizeof(gdj)); in.read((char*)&yqmz, sizeof(yqmz)); in.read((char*)&zuobim, sizeof(zuobim)); in.read((char*)&star, sizeof(star)); in.close(); } void slow(string x) { ll len = x.size() - 1; for (int i = 0; i <= len; i++) { cout << x[i]; Sleep(30); } } void kcb() { slow("游戏名:挖矿大亨\n"); Sleep(50); slow("作者:Jim\n"); Sleep(50); slow("作者专属,禁止转载,否则后果自负\n"); Sleep(50); slow("制游不易,不喜勿喷\n"); Sleep(50); slow("准备好了吗?"); Sleep(1000); system ("cls"); } void cs() { slow("已出售!"); Sleep(1000); qian = qian + ys * 2 + nnk * 3 + tk1 * 5 + tk2 * 10 + lk * 15 + tk3 * 20; qian = qian + lhy * 5 + gs * 7 + syk * 15 + xnk * 25 + cyk * 30 + gk * 40; qian = qian + myxsk * 10 + lk * 15 + xts * 30 + zys * 35 + smbz * 50 + wk * 60; rl = ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; system("cls"); } void yxjs() { system("cls"); slow("挖掘矿物时,如果矿镐能挖当前矿物,会获得该矿石,否则无法获得该矿石。"); Sleep(1000); system ("cls"); slow("您可以去不同星球挖矿,分别是迷拉星、烈焰星和萌眼星。"); Sleep(1000); system("cls"); slow("但注意,烈焰星遍布岩浆,萌眼星缺氧,请装备对应的星球装备。"); Sleep(1000); system("cls"); slow("按t跳过当前矿石,按h字符回到主页。"); Sleep(1000); system ("cls"); slow("矿石可以去市场卖钱也可以开启自动出售模式。"); Sleep(1000); system ("cls"); slow("开始挖吧,祝您游戏愉快!"); Sleep(1000); system ("cls"); } void mlx() { while (1) { x = yj = 0; s = ""; x = rand() % 1000 + 1; if (x <= 450) s = "岩石", kdj = 1; else if (x <= 750) s = "凝能矿", kdj = 1; else if (x <= 900) s = "铜矿", kdj = 1; else if (x <= 960) s = "铁矿", kdj = 2; else if (x <= 985) s = "铝矿", kdj = 3; else if (x <= 995) s = "钛矿", kdj = 4; else s = "岩浆", yj = 1; cout << "背包:" << rl << "/" << rlsx << endl; cout << "按w字符挖掘,按t字符跳过,按h字符回到主页。\n"; cout << "矿镐等级:" << gdj <<"\t\t当前矿石:" << s << "\n"; cout << "岩浆背包耐久:" << yjnj << "\n"; if (yj) { Sleep(1000); if (yjnj > 0) { slow("岩浆背包耐久-1"); Sleep(1000); -- yjnj; system("cls"); continue; } else { Sleep(1000); if (xszd) { slow("由于你处于新手保护期,免疫岩浆伤害!"); Sleep(500); system("cls"); } else { system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具,回到初始点"); slow(kg9 + "不掉落身上道具,继续探险\n"); cin >> p; system("cls"); if (p == 1) { system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else { if (star < 1) { while (p != 1) { slow("星星不够!"); Sleep(1000); system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具"); slow(kg9 + "不掉落身上道具,继续探险\n"); } system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else -- star; } system("cls"); continue; } } } zf = _getch(); Sleep(200); if (zf == 'w') { if (gdj >= kdj) { ll ppp = 0; system("cls"); For (i, 1, 4 - gdj + kdj) { cout << "正在挖掘(" << i << "/" << 4 - gdj + kdj << ")"; Sleep(1000); system("cls"); } ++ rl; if (s == "岩石") ++ ys; if (s == "凝能矿") ++ nnk, ppp = 1; if (s == "铜矿") ++ tk1; if (s == "铁矿") ++ tk2; if (s == "铝矿") ++ lk; if (s == "钛矿") ++ tk3; if (ppp) { star += 0.3; slow("爆出星星0.3"); Sleep(1000); } } else { slow("无法挖掘!"); Sleep(1000); system("cls"); continue; } } else if (zf == 'h') { if (xszd && ys * 2 + nnk * 3 + tk1 * 5 >= 10 || !xszd) { Sleep(500); system("cls"); break; } else { slow("你挖的矿石太少了,再挖一点吧!"); Sleep(500); system("cls"); } } else if (zf == 't') { slow("已跳过!"); system("cls"); continue; } if (rl == rlsx) { system("cls"); slow("背包已满!"), Sleep(1000); system("cls"); break; } system("cls"); } } void lyx() { while (1) { x = yj = 0; s = ""; x = rand() % 1000 + 1; if (x <= 500) s = "硫磺岩", kdj = 1; else if (x <= 700) s = "岩浆", yj = 1; else if (x <= 850) s = "硅石", kdj = 1; else if (x <= 975) s = "石油矿", kdj = 1; else if (x <= 987) s = "星能矿", kdj = 3; else if (x <= 995) s = "炽焰矿", kdj = 1; else s = "钴矿", kdj = 4; cout << "背包:" << rl << "/" << rlsx << endl; cout << "按w字符挖掘,按t字符跳过,按h字符回到主页。"; cout << "\t\t矿镐等级:" << gdj <<"\t\t当前矿石:" << s << "\n"; cout << "岩浆背包耐久:" << yjnj << "\n"; if (yj) { Sleep(1000); if (yjnj) { slow("岩浆背包耐久-1"); Sleep(1000); yjnj--; system("cls"); continue; } else { system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具,回到初始点"); slow(kg9 + "不掉落身上道具,继续探险\n"); cin >> p; system("cls"); if (p == 1) { system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else { if (star < 1) { while (p != 1) { slow("星星不够!"); Sleep(1000); system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具,回到初始点"); slow(kg9 + "不掉落身上道具,继续探险\n"); } system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else -- star; } system("cls"); continue; } } zf = _getch(); Sleep(200); if (zf == 'w') { if (gdj >= kdj) { ll ppp = 0; system("cls"); For (i, 1, 4 - gdj + kdj) { cout << "正在挖掘(" << i << "/" << 4 - gdj + kdj << ")"; Sleep(1000); system("cls"); } ++ rl; if (s == "硫磺岩") ++ lhy; if (s == "硅石") ++ gs, ppp = 1; if (s == "石油矿") ++ syk; if (s == "星能矿") ++ xnk; if (s == "炽焰矿") ++ cyk, ppp = 1; if (s == "钴矿") ++ gk; if (ppp) { star += 0.3; slow("爆出星星0.3"); Sleep(1000); } } else { slow("无法挖掘!"); Sleep(1000); system("cls"); continue; } } else if (zf == 'h') { system ("cls"); break; } else if (zf == 't') { slow("已跳过!"); system("cls"); continue; } if (rl == rlsx) { system("cls"); slow("背包已满!"), Sleep(1000); system("cls"); break; } system("cls"); } } void myx() { while (1) { x = yj = 0; s = ""; if (yqmz == 0) p = 2; else p = 1; x = rand() % 1000 + 1; if (x <= 500) s = "萌眼星石块", kdj = 3; else if (x <= 750) s = "铝矿", kdj = 3; else if (x <= 850) s = "星瞳石", kdj = 4; else if (x <= 950) s = "紫荧石", kdj = 4; else if (x <= 987) s = "神秘宝藏", kdj = 5; else if (x <= 995) s = "钨矿", kdj = 6; else s = "岩浆", yj = 1; cout << "背包:" << rl << "/" << rlsx << endl; cout << "按w字符挖掘,按t字符跳过,按h字符回到主页。"; cout << "\t\t矿镐等级:" << gdj <<"\t\t当前矿石:" << s << "\n"; cout << "岩浆背包耐久:" << yjnj << "\n"; cout << "氧气面罩耐久:" << yqmz << "\n"; if (yj) { Sleep(1000); if (yjnj) { slow("岩浆背包耐久-1"); Sleep(1000); -- yjnj; system("cls"); continue; } else { system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具,回到初始点"); slow(kg9 + "不掉落身上道具,继续探险\n"); cin >> p; system("cls"); if (p == 1) { system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else { if (star < 1) { while (p != 1) { slow("星星不够!"); Sleep(1000); system("cls"); slow("你死了!\n"); slow("1.重新开始" + kg23 + "2.继续探险(1星)\n"); slow("掉落身上道具,回到初始点"); slow(kg9 + "不掉落身上道具,继续探险\n"); } system("cls"); ys = nnk = tk1 = tk2 = lk = tk3 = 0; lhy = gs = syk = xnk = cyk = gk = 0; myxsk = lk = xts = zys = smbz = wk = 0; yqmz = 0; break; } else -- star; } system("cls"); continue; } } zf = _getch(); Sleep(200); if (zf == 'w') { if (gdj >= kdj) { ll ppp = 0; system("cls"); For (i, 1, 4 * p - gdj + kdj) { cout << "正在挖掘(" << i << "/" << 4 * p - gdj + kdj << ")"; Sleep(1000); system("cls"); } ++ rl; if (s == "萌眼星石块") ++ myxsk; if (s == "铝矿") ++ lk; if (s == "星瞳石") ++ xts, ppp = 1; if (s == "紫荧石") ++ zys, ppp = 1; if (s == "神秘宝藏") ++ smbz; if (s == "钨矿") ++ wk; if (ppp) { star += 0.3; slow("爆出星星0.3"); Sleep(1000); } if (yqmz > 0) { system("cls"); slow("氧气面罩耐久-1"); Sleep(500); -- yqmz; } } else { slow("无法挖掘!"); Sleep(1000); system("cls"); continue; } } else if (zf == 'h') { system ("cls"); break; } else if (zf == 't') { slow("已跳过!"); system("cls"); continue; } if (rl == rlsx) { system("cls"); slow("背包已满!"); Sleep(1000); system("cls"); break; } system("cls"); } } void qx() { system("cls"); slow("已取消。"); Sleep(1000); system("cls"); } void ggz() { system("cls"); slow("1.石镐\t\t\t等级:1\t\t价格:3000$\n"); slow("2.黄铜镐\t\t等级:2\t\t价格:6000$\n"); slow("3.铸铁镐\t\t等级:3\t\t价格:12000$\n"); slow("4.铝合金镐\t\t等级:4\t\t价格:30000$\n"); slow("5.钛合金镐\t\t等级:5\t\t价格:60000$\n"); slow("6.钴合金镐\t\t等级:6\t\t价格:150000$\n"); slow("7.电钻\t\t\t等级:7\t\t价格:600000$\n"); slow("8.星瞳电钻\t\t等级:8\t\t价格:1000000$\n"); slow("您要买什么镐子(0表示不买)?\n"); } void ggzc() { slow("购买成功!"); if (p == 1) gdj = 1; if (p == 2) gdj = 2; if (p == 3) gdj = 3; if (p == 4) gdj = 4; if (p == 5) gdj = 5; if (p == 6) gdj = 6; if (p == 7) gdj = 7; if (p == 8) gdj = 8; qian -= gz[p]; } void qd() { int x = rand() % 5 + 1; switch(x) { case 1: system("color 06"); slow("恭喜你抽到了10$"); qian += 10; Sleep(1000); system("cls"); r = 1; system("color 07"); break; case 2: system("color 0B"); slow("恭喜你抽到了30$"); qian += 30; Sleep(1000); system("cls"); r = 1; system("color 07"); break; case 3: system("color 0A"); slow("恭喜你抽到了60$"); qian += 60; Sleep(1000); system("cls"); r = 1; system("color 07"); break; case 4: system("color 03"); slow("恭喜你抽到了100$"); qian += 100; Sleep(1000); system("cls"); r = 1; system("color 07"); break; case 5: system("color 02"); slow("恭喜你抽到了150$"); qian += 150; Sleep(1000); system("cls"); r = 1; system("color 07"); break; } } void gj() { while (1) { system("cls"); cout << "钱:" << qian << "$\n"; Sleep(5000); switch(gdj) { case 1: slow("+500$"); qian = qian + 500; Sleep(100); system("cls"); break; case 2: slow("+1500$"); qian = qian + 1500; Sleep(100); system("cls"); break; case 3: slow("+2500$"); qian = qian + 2500; Sleep(100); system("cls"); break; case 4: slow("+5000$"); qian = qian + 5000; Sleep(100); system("cls"); break; case 5: slow("+15000$"); qian = qian + 15000; Sleep(100); system("cls"); break; case 6: slow("+250000$"); qian = qian + 250000; Sleep(100); system("cls"); break; case 7: slow("+500000$"); qian = qian + 500000; Sleep(100); system("cls"); break; case 8: slow("+10000000000$"); qian = qian + 10000000000; Sleep(100); system("cls"); break; } if (sc == p) break; ++ sc; } cout << "钱:" << qian << "$\n"; Sleep(500); } void qk() { system("color 04"); slow("你确定要清空存档吗?\n"); cin >> p; if (p) { gdj = xszd = 1; qian = p = yjnj = ifx = r = yqmz = zuobim = 0; saveGame(); system("cls"); For (i, 1, 6) { if (i % 3 == 1) cout << "清空存档中."; if (i % 3 == 2) cout << "清空存档中.."; if (i % 3 == 0) cout << "清空存档中..."; Sleep(750); system("cls"); } system("cls"); slow("已清除存档!"); Sleep(750); system("cls"); system("color 07"); return; } else { system("cls"); system("color 07"); qx(); return; } } void zuobi() { if (zuobim) { slow("你已领过!"); Sleep(1000); system("cls"); return; } slow("请输入指令(5位)。\n"); cin >> s; while (s.size() != 5) { system("cls"); slow("请按要求输入!"); Sleep(500); slow("请输入指令(5位)。\n"); cin >> s; } system("cls"); For (i, 1, 6) { if (i % 3 == 1) cout << "验证中."; if (i % 3 == 2) cout << "验证中.."; if (i % 3 == 0) cout << "验证中..."; Sleep(750); system("cls"); } system("cls"); if (s[0] == 119 && s[1] == 106 && s[2] == 99 && s[3] == 110 && s[4] == 98) { slow("兑换成功!已获得100000000000$!"); qian += 100000000000; zuobim = 1; } else slow("兑换失败!"); Sleep(1000); system("cls"); } void qkc() { if (xszd) yxjs(); slow("您要去哪个星球?\n1.迷拉星 2.烈焰星 3.萌眼星\n"); if (xszd) { slow("先去迷拉星吧!\n"); Sleep(500); p = 1; } else cin >> p; system("cls"); if (p == 1) mlx(); else if (p == 2) lyx(); else if (p == 3) myx(); system("cls"); while(_kbhit()) _getch(); } void qscmcks() { system("cls"); slow("您要售出矿石吗?\n"); if (xszd) { slow("确定售出。\n"); Sleep(500); p = 1; } else cin >> p; system("cls"); if (p) cs(); else qx(); system("cls"); if (xszd == 1) { slow("你赚到了第一笔钱!接下来,就由你自己探索了!\n"); Sleep(500); xszd = 0; } system("cls"); } void qscgmkg() { ggz(); if (xszd) { slow("买一把石镐吧!\n"); Sleep(500); p = 1; } else cin >> p; if (!p) { qx(); return; } system("cls"); if (qian >= gz[p]) ggzc(); else slow("购买失败!"); Sleep(1000); system("cls"); } void qscgmxqzb() { system("cls"); slow("您要买什么?\n1.岩浆背包 2.氧气面罩\n"); cin >> p; if (p == 1) { system("cls"); slow("属性:能抵御岩浆,但-1耐久,共2000耐久。"); slow("\n价格:20000$\n是否购买?\n"); cin >> p; if (p) { system("cls"); if (qian >= 20000) { qian -= 20000; yjnj = 2000; slow("购买成功!"); } else slow("购买失败!"); Sleep(1000); system("cls"); } else qx(); system("cls"); } else if (p == 2) { system("cls"); slow("属性:能抵御缺氧的恶劣环境但-1耐久,共5000耐久。"); slow("\n价格:50000$\n是否购买?\n"); cin >> p; if (p) { system("cls"); if (qian >= 50000) { qian -= 50000; yqmz = 5000; slow("购买成功!"); } else slow("购买失败!"); Sleep(1000); system("cls"); } else qx(); } else qx(); } void qsc() { system("cls"); slow("您要干什么?\n1.卖出矿石 2.购买矿镐 3.购买星球装备\n"); if (xszd && !jsq) { slow("去购买矿镐吧!\n"); Sleep(500); p = 2; } else if (xszd && jsq) { slow("去卖掉矿石吧!\n"); Sleep(500); p = 1; } else cin >> p; if (p == 1) qscmcks(); if (p == 2) qscgmkg(); if (p == 3) qscgmxqzb(); ++ jsq; } void qdqd() { if (r == 1) { system("cls"); slow("您已经领过了。"); Sleep(1000); system("cls"); return; } For (i, 1, 6) { if (i % 3 == 1) cout << "正在抽取今日运势."; if (i % 3 == 2) cout << "正在抽取今日运势.."; if (i % 3 == 0) cout << "正在抽取今日运势..."; Sleep(750); system("cls"); } x = rand() % 5 + 1; system("cls"); qd(); } void zdcs() { system("cls"); if (!ifx) slow("已开启自动出售模式!"), ifx = 1; else slow("已关闭自动出售模式!"), ifx = 0; Sleep(1000); system("cls"); } void gjgj() { slow("请输入挂机时长(单位:5秒,0取消)。\n"); cin >> p; sc = 0; if (!p) { qx(); return; } -- p; gj(); system("cls"); } void bccd() { For (i, 1, 6) { if (i % 3 == 1) cout << "正在保存中."; if (i % 3 == 2) cout << "正在保存中.."; if (i % 3 == 0) cout << "正在保存中..."; Sleep(750); system("cls"); } saveGame(); system("cls"); slow("已保存!"); Sleep(1000); system("cls"); } void tcyx() { slow("您确定要退出吗?\n"); cin >> p; system("cls"); if (p) { slow("已退出游戏!"); exit(0); } else qx(); } void ggl() { slow("1.4.4版本公告:\n"); Sleep(1000); slow("1.【系统】修复了无法正常领取签到奖励的问题。\n"); Sleep(1000); slow("2.【系统】对各个系统进行整改。\n"); Sleep(1000); slow("3.【规则】可用星星复活。\n"); Sleep(1000); slow("4.【规则】挖矿时间减半。\n"); Sleep(1000); system("pause"); system("cls"); } int main() { loadGame(); kcb(); ggl(); srand(time(0)); if (xszd) { slow("欢迎来到挖矿大亨!这是你的初始资金。"); Sleep(500); system("cls"); slow("+3000$"); qian += 3000; Sleep(500); system("cls"); } k = 1; while (1) { if (ifx && rl != 0) cs(); slow("钱:"), cout << qian; slow("$\t星星:"), cout << star; slow("\n您要干什么?\n"); slow("1.去矿场 2.去市场 3.签到 4.自动出售 5.挂机 "); slow("6.保存存档 7.清空存档 8.指令 9.退游\n"); if (xszd && k == 1) { slow("现在,用你这3000$去买一把石镐吧!\n"); Sleep(500); zf666 = '2'; } else if (xszd && k == 2) { slow("感觉新工具怎么样呀?快去矿场挖一些矿吧!\n"); Sleep(500); zf666 = '1'; } else if (xszd && k == 3) { slow("你很棒!快去市场卖掉这些矿石吧!\n"); Sleep(500); zf666 = '2'; } else cin >> zf666; system("cls"); while (!(zf666 >= '1' && zf666 <= '9')) { slow("请按要求输入!"); Sleep(500); system("cls"); slow("钱:"), cout << qian; slow("$\t星星:"), cout << star << "\n"; slow("您要干什么?\n1.去矿场 2.去市场 3.签到 4.自动出售 5.挂机 "); slow("6.保存存档 7.清空存档 8.指令 9.退游\n"); cin >> zf666; } p = zf666 - 48; system("cls"); if (p == 1) qkc(); if (p == 2) qsc(); if (p == 3) qdqd(); if (p == 4) zdcs(); if (p == 5) gjgj(); if (p == 6) bccd(); if (p == 7) qk(); if (p == 8) zuobi(); if (p == 9) tcyx(); if (k < 100) ++ k; } return 0; }#include <iostream> #include <cstdlib> #include <ctime> #include <string> #include <windows.h> using namespace std; struct Hero { string name; int hp; int maxHp; int atk; int def; int potion; }; struct Monster { string name; int hp; int maxHp; int atk; int def; }; int calcDamage(int atk, int def) { int dmg = atk - def; if(dmg < 1) dmg = 1; return dmg; } int main() { srand((unsigned)time(NULL)); Hero player; player.name = "勇者"; player.maxHp = 140; player.hp = player.maxHp; player.atk = 19; player.def = 6; player.potion = 6; Monster monList[3]; monList[0].name = "野狼"; monList[0].maxHp = 80; monList[0].hp = 80; monList[0].atk = 14; monList[0].def = 3; monList[1].name = "哥布林"; monList[1].maxHp = 100; monList[1].hp = 100; monList[1].atk = 18; monList[1].def = 5; monList[2].name = "石像鬼"; monList[2].maxHp = 140; monList[2].hp = 140; monList[2].atk = 21; monList[2].def = 8; int monsterIndex = 0; Monster curMonster = monList[monsterIndex]; while(true) { system("cls"); cout << "======== 回合RPG冒险 ========\n"; cout << "勇者 HP:" << player.hp << "/" << player.maxHp << " 药水:" << player.potion << "\n"; cout << curMonster.name << " HP:" << curMonster.hp << "/" << curMonster.maxHp << "\n"; cout << "----------------------------\n"; cout << "[1攻击] [2药水] [3防御] [4逃跑] 选择:"; int op; cin >> op; bool playerDefend = false; if(op == 1) { int dmg = calcDamage(player.atk, curMonster.def); bool crit = false; if(rand() % 4 == 0){ dmg *= 2; crit = true; } if(crit) cout << "暴击!"; cout << "造成" << dmg << "伤害\n"; curMonster.hp -= dmg; } else if(op == 2) { if(player.potion > 0) { player.potion--; int heal = 30; player.hp += heal; if(player.hp > player.maxHp) player.hp = player.maxHp; cout << "恢复" << heal << "血量\n"; } else { cout << "无药水\n"; Sleep(600); continue; } } else if(op == 3) { playerDefend = true; cout << "进入防御\n"; } else if(op == 4) { if(rand()%3 == 0) { cout << "逃跑成功\n"; break; } else { cout << "逃跑失败\n"; } } else { cout << "无效输入\n"; Sleep(600); continue; } if(curMonster.hp <= 0) { cout << curMonster.name << "已击败\n"; monsterIndex++; if(monsterIndex >= 3) { cout << "======== 通关! ========\n"; break; } curMonster = monList[monsterIndex]; cout << "出现:" << curMonster.name << "\n"; Sleep(800); continue; } int mDmg = calcDamage(curMonster.atk, player.def); if(rand()%8 ==0) { cout << "闪避成功!\n"; Sleep(600); continue; } if(playerDefend) { mDmg = mDmg / 2; if(mDmg <1) mDmg=1; } player.hp -= mDmg; cout << "受到" << mDmg << "伤害\n"; if(player.hp <=0) { cout << "======= 游戏结束 =======\n"; break; } Sleep(800); } system("pause"); return 0; } -
Stat
-
Rating
This person is lazy and didn't write anything.