#include<bits/stdc++.h>
#include<Windows.h>
using namespace std;
#define int long long
int php=300.0,bhp=300.0;
int phpmx=300.0,bhpmx=300.0;
int pad=30,bad=30;
double pd=0.01,bd=0.01;
int pp1=0,bp1=0;
int pxy=0,bxy=0;
int pp2=0,bp2=0;
int pp3=0,bp3=0;
int pp1mx=2,bp1mx=2;
int pp2mx=3,bp2mx=3;
int pp3mx=5,bp3mx=5;
int pch=0,bch=0;
int pche=0,bche=0;
double pls=0,bls=0;
int pkp[100],bkp[100];
int pj=0;
bool ifch(int ch){
srand(unsigned(time(NULL)));
if(rand()%100+1<=ch)return 1;
return 0;
}
signed main(){
Sleep(500);
int pw=0;
int bw=0;
cout<<"请输入你的角色:0=蛋小蓝,1=蛋小粉,2=蛋小黄,3=魔鬼蛋,4=蛋小绿,5=蛋小黑\n";
cin>>pj;
if(pj==0)pad+=10;
if(pj==1){
pad+=10;
}
if(pj==2){
pd+=0.1;
}
int pphe=0;
for(int i=1;i<=9;i++){
if(pj==0)pad+=1;
if(pj==1){
pad+=1;
}
if(pj==2){
pd+=0.01;
}
if(pj==3){
phpmx*=1.03;
}
int pcf=0;
int bcf=0;
int pf=1;
int bf=1;
cout<<"你赢了"<<pw<<"局"<<'\n';
phpmx+=10;
phpmx+=pkp[7]*101;
bhpmx+=10;
bhpmx+=bkp[7]*101;
pad++;
bad++;
cout<<"选卡牌时间\n";
Sleep(500);
abc:;
srand(unsigned(time(NULL)));
int k=rand()%21;
k+=1;
if(k==1){
cout<<"血量+200\n";
phpmx+=200;
}
if(k==2){
cout<<"攻击+30\n";
pad+=30;
}
if(k==3){
if(pj!=0)goto abc;
if(pkp[3]==1)goto abc;
cout<<"激光发射两次\n";
pkp[3]=1;
}
if(k==4){
cout<<"防御+25\n";
pd+=0.25;
}
if(k==5){
cout<<"暴击+25\n";
pch+=25;
pche+=25;
}
if(k==6){
cout<<"攻击+20,每0.2点攻击提供1点暴击\n";
pad+=20;
pkp[6]++;
}
if(k==7){
cout<<"每回合开始,生命永久提高101\n";
pkp[7]=1;
}
if(k==8){
cout<<"胜利时,生命永久提高150\n";
pkp[8]=1;
}
if(k==9){
if(pj!=0)goto abc;
cout<<"头脑风暴开始时会引爆一个引力炸弹\n";
pkp[9]=1;
}
if(k==10){
cout<<"获胜时攻击+10\n";
pkp[10]=1;
}
if(k==11){
if(pj!=0)goto abc;
cout<<"高能激光伤害系数1->1.5\n";
pkp[11]++;
}
if(k==12){
if(pj!=0)goto abc;
cout<<"激光使用后减少1回合CD\n";
pkp[12]++;
}
if(k==13){
cout<<"冷却缩减+25\n";
pls+=0.25;
}
if(k==14){
if(pj!=0)goto abc;
cout<<"引力炸弹使用后50%减少当前所有技能2秒CD\n";
pkp[14]=1;
}
if(k==15){
cout<<"战斗第一次伤害 x 2\n";
pkp[15]=1;
}
if(k==16){
if(pj!=1)goto abc;
cout<<"爆炸箭伤害 x 1.5\n";
pkp[16]=1;
}
if(k==17){
cout<<"普攻伤害 x 0.8, 但是每次普攻攻击两次\n";
pkp[17]=1;
}
if(k==18){
if(pj!=1)goto abc;
cout<<"每次攻击永久叠加8点额外攻击力\n";
pkp[18]++;
}
if(k==19){
if(pj!=2)goto abc;
cout<<"剑气波发射两次\n";
pkp[19]=1;
}
if(k==20){
if(pj!=2)goto abc;
cout<<"滚动开始时额外召唤一或两个剑气波\n";
pkp[20]=1;
}
if(k==21){
if(pj!=2)goto abc;
cout<<"滚动减伤60%->35%\n";
}
pp1mx=2*((1-pls));
pp2mx=3*((1-pls));
pp3mx=5*((1-pls));
bp1mx=2*((1-bls));
bp2mx=3*((1-bls));
bp3mx=5*((1-bls));
abcd:;
srand(unsigned(time(NULL)));
int kk=(rand()*2+1)%17;
kk+=1;
if(kk==1){
bhpmx+=200;
}
if(kk==2){
bad+=30;
}
if(kk==3){
if(bkp[3]==1)goto abcd;
bkp[3]=1;
}
if(kk==4){
bd+=0.25;
}
if(kk==5){
bche+=25;
bch+=25;
}
if(kk==6){
pad+=20;
bkp[6]=1;
}
if(kk==7){
bkp[7]=1;
}
if(kk==8){
bkp[8]=1;
}
if(kk==9){
bkp[9]=1;
}
if(kk==10){
bkp[10]=1;
}
if(kk==11){
bkp[11]++;
}
if(kk==12){
bkp[12]++;
}
if((kk==13)){
bls+=0.25;
}
if(kk==14){
bkp[14]=1;
}
if(kk==15){
bkp[15]=1;
}
if(kk==17){
bkp[17]=1;
}
php=phpmx;
bhp=bhpmx;
pp1=0;
pp2=0;
pp3=0;
bp1=0;
bp2=0;
bp3=0;
if(pkp[6]){
pch=pche+pad/5;
}
if(bkp[6]){
bch=bche+bad/5;
}
while(1){
if(pxy!=0)pxy--;
if(bxy!=0)bxy--;
cout<<"第"<<i<<"局\n\n";
if(php<=0&&bhp<=0){
if(php>bhp){
pw++;
phpmx+=pkp[8]*150;
pad+=pkp[10]*10;
cout<<"你赢了\n";break;
}
else {
bw++;
bhpmx+=bkp[8]*150;
bad+bkp[10]*10;
cout<<"你输了\n";
break;
}
}
if(php<=0){
bw++;
bhpmx+=bkp[8]*150;
bad+=bkp[10]*10;
cout<<"你输了\n";
break;
}
if(bhp<=0){
pw++;
phpmx+=pkp[8]*150;
pad+=pkp[10]*10;
cout<<"你赢了\n";
break;
}
if(pxy==0){
if(pp1!=0)pp1--;
if(bp1!=0)bp1--;
if(bp2!=0)bp2--;
if(bp3!=0)bp3--;
if(pp2!=0)pp2--;
if(pp3!=0)pp3--;
cout<<"我方血量"<<php<<"\t\t"<<"敌方血量"<<bhp<<'\n';
cout<<"我方攻击"<<pad<<"\t\t"<<"敌方攻击"<<bad<<"\n\n";
cout<<"我方暴击"<<pch<<"\n\n";
cout<<"你的技能冷却\n";
if(pj==0){
cout<<"引力炸弹"<<pp1<<'\n';
cout<<"高能激光"<<pp2<<"\n";
cout<<"头脑风暴"<<pp3<<"\n\n";
}
if(pj==1){
cout<<"标记箭"<<pp1<<'\n';
cout<<"爆炸箭"<<pp2<<'\n';
cout<<"飓风之力"<<pp3<<"\n\n";
}
if(pj==2){
cout<<"剑气波"<<pp1<<'\n';
cout<<"旋风斩"<<pp2<<'\n';
cout<<"滚动"<<pp3<<"\n\n";
}
if(pj==3){
cout<<"冲锋"<<pp1<<'\n';
cout<<"过肩摔"<<pp2<<'\n';
cout<<"炮拳"<<pp3<<"\n\n";
}
cout<<"你有三个技能\n";
if(pj==0){
cout<<"引力炸弹 造成攻击力80%+30伤害\n";
cout<<"高能激光 造成攻击力160%+40伤害\n";
cout<<"头脑风暴 持续2回合造成攻击力110%+25伤害\n";
int p=0;
cout<<"想使用哪个技能(1,2,3)\n";
cin>>p;
if(p==0){
int ad=pad+pphe;
pcf++;
if(pkp[17]){
pcf++;
ad*=0.8;
bhp-=ad;
pphe+=8;
cout<<"普攻造成伤害"<<ad<<'\n';
}
bhp-=ad;
pphe+=8;
cout<<"普攻造成伤害"<<ad<<'\n';
}
if(p==1&&pp1<=0){
pcf++;
pp1=pp1mx;
int ad=(1-bd)*(0.8*pad+30);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
if(pkp[14]){
srand(unsigned(time(NULL)));
int kkk=rand()%2;
if(kkk==1){
pp1--;
pp2--;
pp3--;
}
}
cout<<"引力炸弹造成伤害"<<ad<<'\n';
}
if(p==2&&pp2<=0){
pcf++;
pp2=pp2mx;
int ad=(1-bd)*(1.6*pad+40);
if(ifch(pch))ad*=1.5;
if(pkp[11])ad*=pow(1.5,pkp[11]);
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"高能激光造成伤害"<<ad<<'\n';
if(pkp[12])pp2--;
if(pkp[3]==1){
pcf++;
int ad=(1-bd)*(1.6*pad+40);
if(ifch(pch))ad*=1.5;
if(pkp[11])ad*=pow(1.5,pkp[11]);
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"高能激光造成伤害"<<ad<<'\n';
if(pkp[12])pp2--;
}
}
if(p==3&&pp3<=0||pp3==pp3mx-1){
pcf++;
if(pp3!=4)pp3=pp3mx;
int ad=(1-bd)*(1.1*pad+25);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"头脑风暴造成伤害"<<ad<<'\n';
if(pkp[9]&&pp3==5){
pcf++;
int ad=(1-bd)*(0.8*pad+30);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
if(pkp[14]){
srand(unsigned(time(NULL)));
int kkk=rand()%2;
if(kkk==1){
pp1--;
pp2--;
pp3--;
}
}
cout<<"引力炸弹造成伤害"<<ad<<'\n';
}
}
}
if(pj==1){
cout<<"1.标记箭,可以破隐身,造成100%+30伤害\n";
cout<<"2.爆炸箭,造成150%+41伤害\n";
cout<<"3.飓风之力,三回合内每一回合攻击两次\n";
int pj1f=0;
int ifgoto=0;
abccc:;
if(pj1f>=1){
cout<<"飓风之力效果持续中,还剩"<<pj1f<<"回合\n\n";
pj1f--;
}
int p=0;
cout<<"想使用哪个技能(1,2,3)\n";
cin>>p;
if(p==0){
pcf++;
if(pkp[18])pad+=8;
int ad=pad;
if(pkp[17]){
if(pkp[18])pad+=8;
pcf++;
ad*=0.8;
bhp-=ad;
cout<<"普攻造成伤害"<<ad<<'\n';
}
bhp-=ad;
cout<<"普攻造成伤害"<<ad<<'\n';
}
if(p==1&&pp1<=0){
pcf++;
if(pkp[18])pad+=8;
pp1=pp1mx;
int ad=(1-bd)*(pad+30);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"标记箭造成伤害"<<ad<<'\n';
}
if(p==2&&pp2<=0){
pcf++;
if(pkp[18])pad+=8;
pp2=pp2mx;
int ad=(1-bd)*(1.5*pad+41);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
if(pkp[16]){
ad*=1.5;
}
bhp-=ad;
cout<<"爆炸箭造成伤害"<<ad<<'\n';
}
if(p==3&&pp3<=0){
pp3=pp3mx;
pj1f=3;
goto abccc;
}
if(ifgoto==0){
if(pp3==pp3mx-1||pp3==pp3mx-2){
ifgoto=1;
goto abccc;
}
}
}
if(pj==2){
cout<<"剑气波 造成攻击力105%+27伤害\n";
cout<<"旋风斩 造成攻击力120%+54伤害\n";
cout<<"滚动 持续3回合获得60%减伤并造成攻击力80%+55伤害\n";
int p=0;
cout<<"想使用哪个技能(1,2,3)\n";
cin>>p;
if(p==0){
int ad=pad+pphe;
pcf++;
if(pkp[17]){
pcf++;
ad*=0.8;
bhp-=ad;
pphe+=8;
cout<<"普攻造成伤害"<<ad<<'\n';
}
bhp-=ad;
pphe+=8;
cout<<"普攻造成伤害"<<ad<<'\n';
}
if(p==1&&pp1<=0){
pcf++;
pp1=pp1mx;
int ad=(1-bd)*(1.05*pad+27);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"剑气波造成伤害"<<ad<<'\n';
if(pkp[19]){
pcf++;
pp1=pp1mx;
int ad=(1-bd)*(1.05*pad+27);
if(ifch(pch))ad*=1.5;
bhp-=ad;
cout<<"剑气波造成伤害"<<ad<<'\n';
}
}
if(p==2&&pp2<=0){
pcf++;
pp2=pp2mx;
int ad=(1-bd)*(1.2*pad+54);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"旋风斩造成伤害"<<ad<<'\n';
if(pkp[12])pp2--;
}
if(p==3&&pp3<=0||pp3==pp3mx-1||pp3==pp3mx-2){
pcf++;
if(pp3<=0){pp3=pp3mx;
if(pkp[20]){
srand(unsigned(time(NULL)));
int kkk=rand()%2+1;
for(int i=1;i<=kkk;i++){
pcf++;
int ad=(1-bd)*(1.05*pad+27);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"剑气波造成伤害"<<ad<<'\n';
if(pkp[19]){
pcf++;
pp1=pp1mx;
int ad=(1-bd)*(1.05*pad+27);
if(ifch(pch))ad*=1.5;
bhp-=ad;
cout<<"剑气波造成伤害"<<ad<<'\n';
}
}
}
}
int ad=(1-bd)*(0.8*pad+55);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
bhp-=ad;
cout<<"滚动造成伤害"<<ad<<'\n';
}
}
if(pj==3){
cout<<"1.冲锋,造成75%+30伤害,眩晕0.4回合\n";
cout<<"2.过肩摔,造成100%+40伤害,眩晕1回合\n";
cout<<"3.炮拳,造成150%+60伤害,眩晕0.3回合\n";
int pj1f=0;
int ifgoto=0;
if(pj1f>=1){
cout<<"飓风之力效果持续中,还剩"<<pj1f<<"回合\n\n";
pj1f--;
}
int p=0;
cout<<"想使用哪个技能(1,2,3)\n";
cin>>p;
if(p==0){
pcf++;
int ad=pad;
if(pkp[17]){
pcf++;
ad*=0.8;
bhp-=ad;
cout<<"普攻造成伤害"<<ad<<'\n';
}
bhp-=ad;
cout<<"普攻造成伤害"<<ad<<'\n';
}
if(p==1&&pp1<=0){
pcf++;
pp1=pp1mx;
int ad=(1-bd)*(pad*0.75+30);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
srand(unsigned(time(NULL)));
int kkkk=rand()%10;
kkkk++;
if(kkkk<=3)bxy++;
bhp-=ad;
cout<<"冲锋造成伤害"<<ad<<'\n';
}
if(p==2&&pp2<=0){
pcf++;
pp2=pp2mx;
int ad=(1-bd)*(pad+40);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
if(pkp[16]){
ad*=1.5;
}
bxy++;
bhp-=ad;
cout<<"过肩摔造成伤害"<<ad<<'\n';
}
if(p==3&&pp3<=0){
pp3=pp3mx;
pcf++;
pp3=pp3mx;
int ad=(1-bd)*(pad*1.5+60);
if(ifch(pch))ad*=1.5;
if(pkp[15]&&pf){
ad*=2;
pf=0;
}
srand(unsigned(time(NULL)));
int kkkk=rand()%10;
kkkk++;
if(kkkk<=4)bxy++;
bhp-=ad;
cout<<"炮拳造成伤害"<<ad<<'\n';
}
}
}
if(bxy==0){
int k;
int f=0;
int iii=0;
if(bp1!=0&&bp2!=0&&bp3!=0)goto abc1;
while(!f){
iii++;
srand(unsigned(time(NULL)));
k=(iii+rand()%3)%3+1;
//cout<<"k="<<k<<'\n';
switch(k){
case 1:if(bp1<=0){f=1;}break;
case 2:if(bp2<=0){f=1;}break;
case 3:if(bp3<=0){f=1;}break;
}
}
abc1:;
if(k==1){
bp1=bp2mx;
int ad=(1-pd)*(0.8*bad+30);
if(pj==2&&(pp3==pp3mx-1||pp3==pp3mx-2)){
if(pkp[21])ad*=0.4;
else ad*=0.6;
}
if(ifch(bch))ad*=1.5;
if(bkp[15]&&bf){
ad*=2;
bf=0;
}
php-=ad;
if(bkp[14]){
srand(unsigned(time(NULL)));
int kkk=rand()%2;
if(kkk==1){
bp1--;
bp2--;
bp3--;
}
}
cout<<"敌方引力炸弹造成伤害"<<ad<<'\n';
}
if(k==2){
bp2=bp3mx;
int ad=(1-pd)*(1.6*bad+40);
if(pj==2&&(pp3==pp3mx-1||pp3==pp3mx-2)){
if(pkp[21])ad*=0.4;
else ad*=0.6;
}
if(ifch(bch))ad*=1.5;
if(bkp[11])ad*=pow(1.5,bkp[11]);
if(bkp[15]&&bf){
ad*=2;
bf=0;
}
php-=ad;
cout<<"敌方高能激光造成伤害"<<ad<<'\n';
if(bkp[12])bp2--;
if(bkp[3]==1){
int ad=(1-pd)*(1.6*bad+40);
if(pj==2&&(pp3==pp3mx-1||pp3==pp3mx-2)){
if(pkp[21])ad*=0.4;
else ad*=0.6;
}
if(ifch(bch))ad*=1.5;
if(bkp[11])ad*=pow(1.5,bkp[11]);
php-=ad;
cout<<"敌方高能激光造成伤害"<<ad<<'\n';
if(bkp[12])bp2--;
}
}
if(k==3||bp3==bp3mx-1){
if(bp3!=4)bp3=bp3mx-1;
int ad=(1-pd)*(1.1*bad+25);
if(pj==2&&(pp3==pp3mx-1||pp3==pp3mx-2)){
if(pkp[21])ad*=0.4;
else ad*=0.6;
}
if(ifch(bch))ad*=1.5;
if(bkp[15]&&bf){
ad*=2;
bf=0;
}
php-=ad;
if(bkp[15]&&bf){
ad*=2;
bf=0;
}
cout<<"敌方头脑风暴造成伤害"<<ad<<'\n';
if(bkp[9]&&bp3==5){
int ad=(1-pd)*(0.8*bad+30);
if(pj==2&&(pp3==pp3mx-1||pp3==pp3mx-2)){
if(pkp[21])ad*=0.4;
else ad*=0.6;
}
if(ifch(bch))ad*=1.5;
if(bkp[15]&&bf){
ad*=2;
bf=0;
}
php-=ad;
if(bkp[14]){
srand(unsigned(time(NULL)));
int kkk=rand()%2;
if(kkk==1){
bp1--;
bp2--;
bp3--;
}
}
cout<<"敌方引力炸弹造成伤害"<<ad<<'\n';
}
}
}
Sleep(2500);
system("cls");
}
}
if(bw<pw)cout<<"恭喜获胜";
return 0;
}