打僵尸小游戏
原题链接:60966.WA聊天室2025-07-29 14:00:43
发布于:河北
#include<bits/stdc++.h>
#include <windows.h>
using namespace std;
float qiangpu = 0, shengsi = 0;
int zhifa = 0, zhiwu = 0, lingshi = 40, duan = 0, zi = 1;
float sheng = 455, fen2 = 150, zengshang = 1, fagong = 64, cdd = 0, cd1 = 0, cd2 = 0, shengda = 0, o[36] = { }, lu, luojin = 1, xing = 7, oi = 0, oj = 0, ri = 5, rj = 5, pu = 0, wugong = 64, chi = 2, hui = 0, xul = 0, cdp = 0, wei = 0, weis = 0, pujia = 0, fabao = 0, fabaos = 50, wubao = 0, wubaos = 50, wubaoss = 0, pue = 0;
int i = 3, jiandian = 0, tongli = 0, neng = 0, zhi = 0, shengmax = 455, b = 0, jian = 0, yong = 2, ji = 1, da = 150;
int ge = 10;
float dishengmax = 220, ju = 50, disu = 2.5, digong = 50, disheng = 220, jumax = 42;
bool l = false, qiang = false, nengn = false;
void j() {
if (nengn == true) {
fagong = fagong + shengmax / 20 - zhi;
zhi = shengmax / 20;
}
}
void suiji() {
int a = rand() % 22 + 1;
o[i] = a;
if (a == 1) {
cout << "金刚不坏:加300最大生命值,但攻击减少%8";
} else if (a == 2) {
cout << "蓄力重击:你的普攻伤害提高%140,但有冷却一回合";
} else if (a == 3) {
cout << "盛大开场(蓝):每回合第一次攻击增加%80";
} else if (a == 4) {
cout << "盛大开场(紫):每回合第一次攻击增加%100";
} else if (a == 5) {
cout << "盛大开场(彩):每回合第一次攻击增加%150";
} else if (a == 6) {
cout << "物化双修:使物理攻击和法术攻击中最大值获得物理攻击和法术攻击中最大值%40";
} else if (a == 7) {
cout << "全能伤害+35";
} else if (a == 8) {
cout << "痛痛痛(紫):当普攻命中时,使对方减少%3最大生命值,最多叠加1层";
} else if (a == 9) {
cout << "痛痛痛痛(彩):当普攻命中时,使对方减少%4最大生命值,最多叠加1层";
} else if (a == 10) {
cout << "哦啦啦啦:禁用你的大招,但技能冷却减少%50";
} else if (a == 11) {
cout << "降温斗篷:加320最大生命值";
} else if (a == 12) {
cout << "金刚不坏(紫):加400最大生命值,但攻击减少%8";
} else if (a == 13) {
cout << "法术枪:法术攻击力+45,加80最大生命值";
} else if (a == 14) {
cout << "毒药:法术攻击力+35,加150最大生命值";
} else if (a == 15) {
cout << "威力代价:技能伤害提高%25,收到的伤害提高%15";
} else if (a == 16) {
cout << "能量转化仪:加150最大生命值,每20血转换成1点法伤";
} else if (a == 17) {
cout << "超能激光枪:加50法术攻击力";
} else if (a == 18) {
cout << "坚韧起源:每回合加100点最大生命值";
} else if (a == 19) {
cout << "法术瞄准镜:每8点法术伤害额外提供1点法术暴击伤害";
} else if (a == 20) {
cout << "暴击专家:获得25%物理暴击和25%法术暴击";
} else if (a == 21) {
cout << "威力代价:技能伤害提高%55,收到的伤害提高%15";
} else if (a == 22) {
cout << "金刚不坏:加650最大生命值,但攻击减少%8";
} else if (a == 23) {
cout << "金钢棒:物理攻击力+45,加80最大生命值";
}
}
int main() {
cout<<"你是一名老师,你来到了一个世界,这里僵尸很多,你得不断抽卡,升级自己,抗住1次次僵尸进攻吧";
Sleep(4000);
system("cls");
cout<<"请按下任意键开始游戏吧";
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
Sleep(2000);
system("pause");
system("cls");
srand(static_cast<unsigned int>(time(0)));
while (1) {
i = 10;
while (i && zi) {
i--;
suiji();
cout << "\n";
cout << "要 (y/n)";
char dd;
cin >> dd;
if (dd == 'y') {
cout << "你获得";
Sleep(1000);
if (o[i] == 1) {
cout << "金刚不坏:加300最大生命值,但攻击减少%8";
shengmax += 300;
sheng += 300;
fagong *= 0.92;
wugong *= 0.92;
} else if (o[i] == 2) {
cout << "蓄力重击:你的普攻伤害提高%140,但有冷却一回合";
xul = 140;
} else if (o[i] == 3) {
cout << "盛大开场(蓝):每回合第一次攻击增加%80";
shengda = 80;
} else if (o[i] == 4) {
cout << "盛大开场(紫):每回合第一次攻击增加%100";
shengda = 100;
} else if (o[i] == 5) {
cout << "盛大开场(彩):每回合第一次攻击增加%150";
shengda = 150;
} else if (o[i] == 6) {
cout << "物化双修:使物理攻击和法术攻击中最大值获得物理攻击和法术攻击中最大值%40";
if (min(fagong, wugong) == wugong) {
wugong = wugong + fagong * 0.4;
} else {
fagong = fagong + wugong * 0.4;
}
} else if (o[i] == 7) {
cout << "全能伤害+35";
fagong += 35;
wugong += 35;
} else if (o[i] == 8) {
cout << "痛痛痛(紫):当普攻命中时,使对方减少%3最大生命值,最多叠加1层";
pue += 3;
} else if (o[i] == 9) {
cout << "痛痛痛痛(彩):当普攻命中时,使对方减少%4最大生命值,最多叠加1层";
pue += 4;
} else if (o[i] == 10) {
cout << "哦啦啦啦:禁用你的大招,但技能冷却减少%50";
l = true;
} else if (o[i] == 11) {
cout << "降温斗篷:加320最大生命值";
shengmax += 320;
sheng += 320;
} else if (o[i] == 12) {
cout << "金刚不坏(紫):加400最大生命值,但攻击减少%8";
sheng += 400;
shengmax += 300;
fagong *= 0.92;
wugong *= 0.92;
} else if (o[i] == 13) {
cout << "法术枪:法术攻击力+45,加80最大生命值";
fagong += 45;
shengmax += 80;
} else if (o[i] == 14) {
cout << "毒药:法术攻击力+35,加150最大生命值";
fagong += 35;
shengmax += 150;
} else if (o[i] == 15) {
cout << "威力代价:技能伤害提高%25,收到的伤害提高%15";
wei = 25;
weis = 15;
} else if (o[i] == 16) {
cout << "能量转化仪:加150最大生命值,每20血转换成1点法伤";
nengn = true;
shengmax += 150;
} else if (o[i] == 17) {
cout << "超能激光枪:加50法术攻击力";
fagong += 50;
} else if (o[i] == 18) {
cout << "坚韧起源:每回合加100点最大生命值";
jian = 100;
} else if (o[i] == 19) {
cout << "法术瞄准镜:每8点法术伤害额外提供1点法术暴击伤害";
} else if (o[i] == 20) {
cout << "暴击专家:获得25%物理暴击和25%法术暴击";
wubao += 5;
fabao += 5;
} else if (o[i] == 21) {
cout << "威力代价:技能伤害提高%55,收到的伤害提高%15";
wei = 55;
weis = 15;
} else if (o[i] == 22) {
cout << "金刚不坏:加650最大生命值,但攻击减少%8";
sheng += 650;
shengmax += 650;
fagong *= 0.92;
wugong *= 0.92;
} else if (o[i] == 23) {
cout << "金钢棒:物理攻击力+45,加80最大生命值";
wugong += 45;
shengmax += 80;
sheng += 80;
}
Sleep(1000);
break;
}
cout << endl;
}
shengmax += jian;
hui = shengda;
cdp = 0;
cd1 = 0;
cd2 = 0;
disu += 0.5;
jumax += 18;
j();
if (disu >= 8) {
disu = 8;
}
ju = jumax;
Sleep(1000);
system("cls");
cout << " 灵石数" << lingshi;
cout << "\n请选择 1.普通模式 2.副本模式 3.困难模式 4.装备 5.boss \n" ;
int jj;
cin >> jj;
if (jj == 2 && lingshi < 40) {
cout << "你的灵石不够";
zi = 0;
} else if (jj == 2) {
lingshi -= 40;
}
if (jj == 3) {
ge *= 2;
}
if (jj == 1 || (jj == 2 && lingshi >= 40) || jj == 3) {
zi = 1;
shengsi = jj - 1;
while (ge != 0) {
system("cls");
cout << "目前僵尸数" << ge << " 离你的距离" << ju << endl;
if (qiang == false) {
if(cdp<=0){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
}
else{
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
}
cout << "0.普攻 ";
} else {
cout << "0.强普 ";
}
if(cd1<=0){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
}
else{
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
}
cout << " 1.粉笔之箭 2.";
if(cd2<=0){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
}
else{
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
}
if (duan == 0) {
cout << "粉笔直刺";
} else if (duan == 1) {
cout << "粉笔上挑";
} else {
cout << "粉笔横批";
}
cout << "(第" << duan + 1 << "段)";
if(cdd<=0){
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
}
else{
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
}
cout << " 3.粉笔燃烧 " << "你的血量 " << sheng << " " << "第" << 11 - ge << "只僵尸血量" << disheng << endl;
cout << cdp << " " << cd1 << " " << cd2 << " " << cdd << " \n";
char n;
cin >> n;
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
if (n == '0' && cdp <= 0) {
cout << "你对僵尸造成了" << wugong*(shengda / 100 + xul / 100 + 1 + qiangpu / 100) << "点伤害";
if (xul != 0) {
cdp = 2;
}
disheng -= wugong * (shengda / 100 + xul / 100 + 1 + qiangpu / 100);
shengda = 0;
qiang = false;
qiangpu = 0;
} else if (n == '1' && cd1 <= 0) {
cout << "你对僵尸造成了" << (wugong * 1.5)*(shengda / 100 + wei / 100 + 1) << "点伤害";
if (l == true) {
cd1 = 3;
} else {
cd1 = 5;
}
disheng -= (wugong * 1.5) * (shengda / 100 + wei / 100 + 1);
shengda = 0;
} else if (n == '2' && cd2 <= 0) {
cout << "你对僵尸造成了" << wugong * 1.3 * (shengda / 100 + wei / 100 + 1) + 30 << "点伤害";
if (l == true && duan == 2) {
cd2 = 3;
duan = -1;
} else if (duan == 2) {
cd2 = 5;
duan = -1;
} else {
cd2 = 2;
}
duan++;
qiang = true;
qiangpu = 55;
disheng -= wugong * 1.3 * (shengda / 100 + wei / 100 + 1) + 30;
shengda = 0;
} else if (n == '3' && cdd <= 0) {
cout << "你对僵尸造成了" << fagong * 1.7 * (shengda / 100 + wei / 100 + 1) << "点伤害";
if (l == true) {
cdd = 5;
} else {
cdd = 9;
}
disheng -= fagong * 1.7 * (shengda / 100 + wei / 100 + 1);
shengda = 0;
}
if (disheng < 0) {
dishengmax += 5;
digong += 2;
disheng = dishengmax;
ju += 4;
ge--;
}
if (ge == 0) {
cout << "你获得了" << dishengmax / 10 + digong / 10 << "个灵石";
lingshi += dishengmax / 10 + digong / 10;
Sleep(1000);
break;
}
if (ju < disu) {
ju = 0;
cout << "僵尸对你造成了" << digong*(weis / 100 + 1) << "点伤害";
sheng -= digong * (weis / 100 + 1);
} else {
ju -= disu;
}
if (sheng <= 0 && shengsi == 0) {
cout << "你死了";
return 0;
} else if (sheng <= 0) {
cout << "你活着,你的保护消失";
sheng = shengmax;
Sleep(1000);
break;
shengsi = 0;
}
Sleep(1000);
cdp--;
cd1--;
cd2--;
cdd--;
}
} else if (jj == 4) {
zi = 0;
while (1) {
system("cls");
cout << " 灵石数" << lingshi << "\n\n";
cout << "1 加1法伤 30灵石\n";
cout << "2 加1物伤 30灵石\n";
cout << "3 退出\n";
char a;
cin >> a;
if (a == '1') {
if (lingshi >= 30) {
lingshi -= 30;
fagong++;
} else {
cout << "你没有钱";
}
}
else if (a == '2') {
if (lingshi >= 30) {
lingshi -= 30;
wugong++;
} else {
cout << "你没有钱";
}
} else {
break;
}
}
}else {
zi = 0;
}
shengda = hui;
ge = 10;
}
return 0;
}
这里空空如也
有帮助,赞一个