#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(pj0)pad+=10; if(pj1){ pad+=10; } if(pj2){ pd+=0.1; } int pphe=0; for(int i=1;i<=9;i++){ if(pj0)pad+=1; if(pj1){ pad+=1; } if(pj2){ pd+=0.01; } if(pj3){ 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(k1){ cout<<"血量+200\n"; phpmx+=200; } if(k2){ cout<<"攻击+30\n"; pad+=30; } if(k3){ if(pj!=0)goto abc; if(pkp[3]1)goto abc; cout<<"激光发射两次\n"; pkp[3]=1; } if(k4){ cout<<"防御+25\n"; pd+=0.25; } if(k5){ cout<<"暴击+25\n"; pch+=25; pche+=25; } if(k6){ cout<<"攻击+20,每0.2点攻击提供1点暴击\n"; pad+=20; pkp[6]++; } if(k7){ cout<<"每回合开始,生命永久提高101\n"; pkp[7]=1; } if(k8){ cout<<"胜利时,生命永久提高150\n"; pkp[8]=1; } if(k9){ if(pj!=0)goto abc; cout<<"头脑风暴开始时会引爆一个引力炸弹\n"; pkp[9]=1; } if(k10){ 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 条评论

  • @ 2026-8-1 15:03:06

    #include<bits/stdc++.h> using namespace std; typedef long long ll; struct student{ string name; int score; }stu[25]; int n; bool cmp(student a,student b){ if(a.score!=b.score)return a.score>b.score; return a.name<b.name; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>stu[i].name>>stu[i].score; } sort(stu+1,stu+n+1,cmp); for(int i=1;i<=n;i++){ cout<<stu[i].name<<" "<<stu[i].score<<endl; }

    return 0; }

    • 1