#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;
}

1 条评论

  • 1