先手:  1:玩家1; 2:玩家2;  3:随机  
输入先手: [fst]

----------玩家1回合! 护甲:([r1])[p1j]/[p1jm] 血量:[p1hp]/[p1hm] 
你准备使用
1.山楂 2.面包 3.鸟 4.无菌蛋([p1d]) 5.风扇([p1s]) 6.小蜘蛛 
7.烤土豆([p1f]) 8.大蜘蛛([p1dz] <[p1w+1]回合后+1>) 9.烧饼
输入使用物品: [xj[1]]

玩家2回合! 护甲:([r1])[p2j]/[p2jm] 血量:[p2hp]/[p2hm]----------
你准备使用
1.山楂 2.面包 3.鸟 4.无菌蛋([p2d]) 5.风扇([p2s]) 6.小蜘蛛 
7.烤土豆([p2f]) 8.大蜘蛛([p2dz] <[p2w+1]回合后+1>) 9.烧饼
输入使用物品: [xj[1]]
注: [] 里面的代表变量
#include <bits/stdc++.h>  /*加压 1.0.0 beta2 */
#include <time.h>
using namespace std;
double hp,h,j,js,hm,jm,lh,wh,lj,as=1,xh,ad;//hp血量,h伤害,j护甲,js甲伤,hm最大血量,jm护甲上限,lh上次的血量,wh使用风扇前的伤害,lj上次的护甲,as风扇增加的伤害,xh小蜘蛛伤害,ad增加
int r1,r2,r3,r4,r5,c,d=2,f=1,s=1,w=6,dz=1,te=0,ne=0,hlv=0;//r均为随机数,c次数,d无菌蛋次数,f烤土豆次数,s无菌蛋次数,w等待次数,z大蜘蛛次数,te(指令)变量,ne击杀敌人数量,hlv受伤等级
bool ms=0,zl=0,zz=0,fu=0,tt=0;//ms风扇增加伤害,zl指令,zz使用蜘蛛,fu使用烤土豆,tt有效回合
string xj[5],mode; //xj使用道具
void eme() {
	cout<<"\n";
	r3=0;
	xh=(rand()%50+60)/10.0;//6~11
	r1=rand()%6+1;//护甲等级
	r2=rand()%3+1;//护甲值
	if(mode!="2") r3=rand()%50+10;//彩蛋概率:5%
	if(r3!=50&&r3!=49) {
		if(r1==1) {
			j=10*r2;
			if(mode!="2") cout<<"对方1甲耐久:"<<j<<"/"<<j;
		}
		if(r1==2) {
			j=20*r2;
			if(mode!="2") cout<<"对方2甲耐久:"<<j<<"/"<<j;
		}
		if(r1==3) {
			j=30*r2;
			if(mode!="2") cout<<"对方3甲耐久:"<<j<<"/"<< j;
		}
		if(r1==4) {
			j=35*r2;
			if(mode!="2") cout<<"对方4甲耐久:"<<j<<"/"<<j;
		}
		if(r1==5) {
			r2++;
			j=45*r2;
			if(mode!="2") cout<<"对方5甲耐久:"<<j<<"/"<<j;
		}
		if(r1==6) {
			r2++;
			j=60*r2;
			if(mode!="2") cout<<"对方6甲耐久:"<<j<<"/"<<j;
		}
		hp=100;
	}
	if(mode!="2") {
		if(r3==50||r3==49) {
			hp=250*r2;
			j=100*r2;
			r1=7;
			cout<<"对面是桂! (7级)护甲:"<<j<<"/"<<j;
		}
	}
	jm=j;
	lh=hp;
	hm=hp;
	lj=j;
	hlv=0;
}
void dr(int x,int y,string z) {//x = j,y = r1,z = xj
	if(z=="1") {
		h=(rand()%1100+200)/10.0;
		if(r1>3) h=(double)h/(double)(r1/2.1);
		else if(r1!=1) h=(double)h/(double)(r1/1.7);  //1 -> 1.1; 2 -> 1.18; 3 -> 1.76; 4 -> 1.9; 5 -> 2.38; 6 -> 2.86
		else h=(double)h/1.1;
		wh=h;
		h*=as;
		j-=h;
		cout << "\nBOOM!!!";
		if(lj > 0 && j <= 0) {
			r4 = rand() % 3 + 1; //随机语言
			if(r4 == 1) cout << "\n我的甲呀!";
			if(r4 == 2) cout << "\n我的假牙!";
			if(r4 == 3) cout << "\n我的加压!";
		}
	} else if(z=="2") {
		h=(rand()%350+50)/10.0; //5.0 ~ 40.0
		r4=rand()%2+1;//随机语言
		if(r4== 1) cout<<"\n敌人中陷阱了!";
		if(r4== 2) cout<<"\n陷阱被触发了!";
		if(r1>3) j-=h/(r1/2);
		else j-=(h+5);
		wh=h;
		h*=as;
		hp-=h;
	} else if(z=="3") {
		h=(rand()%450)/10.0;
		if(h==0)h+=0.1;
		wh=h;
		js=(rand()%(int)(h*10))/10.0;
		h*=as;
		js*=as;
		j-=js;
		hp-=h-js;
		ad=(rand()%5)-1;// -1 0 1 2 3
		if(ad<1&&mode=="1") { // 减少次数概率:40%
			cout << "\n鸟-电磁脉冲:你没能有效地控制敌人! 你的游戏次数-1次!";
			c--;
		} else if(ad==1&&mode=="1") cout<<"\n鸟-电磁脉冲:无事发生......"; //无事发生概率:20%
		else if(mode=="1") {
			cout<<"\n鸟-电磁脉冲:你眩晕了敌人! 你的游戏次数+1次!"; //增加次数概率:40%
			c++;
		}
	} else if(z=="4") {
		if(d>0) {
			d--;
			h=1.0;
			wh=h;
			if(j>0)j-=0.3;
			hp-=h*as;
			ad=(rand()%4)-1; // -1 0 1 2
			if(ad<0&&mode=="1") { // 减少次数概率:25%
				cout << "\n无菌蛋-电磁脉冲:你没能有效地控制敌人! 你的游戏次数-1次!";
				c--;
			} else if(ad==0&&mode=="1") cout<<"\n无菌蛋-电磁脉冲:无事发生......"; //无事发生概率:25%
			else if(mode=="1") {
				cout<<"\n无菌蛋-电磁脉冲:你眩晕了敌人! 你的游戏次数+2次!"; //增加次数概率:50%
				c+=ad;
			}
			if(lh>0&&hp<=0&&mode=="1") {
				cout<<"\n\n-------达成挑战:无菌蛋杀手 ! (难度:A- 使用无菌蛋击杀1名敌人) 奖励 3 次数!-------\n";
				c+=3;
			}
			if(lj>0&&j<=0&&mode=="1") {
				cout << "\n\n-------达成挑战:我的甲 ! (难度:S- 使用无菌蛋碎甲) 奖励 9 次数!-------\n";
				c += 9;
			}
		} else {
			cout<<"\n无菌蛋次数耗尽!";
			c++;
			return ;
		}
	} else if(z=="5") {
		if(s<=0) {
			cout<<"\n风扇次数耗尽!";
			c++;
			return ;
		}
		ms=true;
		as=(rand()%50+175)/100.00;
		cout<<"\n(不消耗次数)有人的耳膜炸了! 下次伤害"<<as<<"倍";
		s--;
		c++;
	} else if(z=="6") {
		cout<<"\nT仔出动!";
		wh=xh;
		if(r1 > 3) j-=(double)xh/(double)(r1 / 1.4)*as;
		else j-=(double)xh/(double)r1*as;
		zz=true;
	} else if(z=="7") {
		if(f<=0) {
			cout<<"\n烤土豆次数耗尽!";
			c++;
			return ;
		}
		fu=true;
		h=(rand()%50+70)/10.0;
		wh=h;
		for (int i=1; i<=rand()%10+4; i++) {
			cout<<"-"<<h<<"  ";
			hp-=h*as;
			h=(rand()%55+75)/10.0;
		}
		f--;
	} else if(z=="8") {
		if(dz<=0) {
			cout<<"\n大蜘蛛次数耗尽!";
			c++;
			return ;
		}
		cout<<"\n";
		r5=rand()%100+1; //增加的道具  26:25:24:7:7:7:4
		if(r5<=26) {
			cout<<"你获得了 无菌蛋!";
			d++;
		} else if(r5<=51) {
			cout<<"你获得了 风扇!";
			s++;
		} else if(r5<=75) {
			cout<<"你获得了 烤土豆!";
			f++;
		} else if(r5<=82) {
			cout<<"你获得了 无菌蛋 与 风扇!";
			d++;
			s++;
		} else if(r5<=89) {
			cout<<"你获得了 无菌蛋 与 烤土豆!";
			d++;
			f++;
		} else if(r5<=96) {
			cout<<"你获得了 风扇 与 烤土豆!";
			s++;
			f++;
		} else {
			cout<<"你获得了 无菌蛋, 烤土豆 与 风扇!";
			if(mode=="1") {
				cout<<"\n\n-------达成挑战:运气 ! (难度:B 大蜘蛛获得3个道具) 奖励 3 次数!-------\n";
				c+=3;
			}
			d++;
			s++;
			f++;
		}
		h=(rand()%50+30)/10.0; //3.0~8.0
		wh=h;
		h*=as;
		if(j>=h) {
			j-=h;
			hp-=h;
		} else j-=h*2;
		dz--;
	} else if(z=="9") {
		h=(rand()%40+60)/10.0; //6.0~10.0
		hlv+=1;
		wh=h;
		h*=as;
		hp-=h;
	} else {
		cout<<"\n输出正确的数字!";
		c++;
	}
	if(z!="1"&&z!="2"&&z!="3"&&z!="4"&&z!="6"&&z!="7"&&z!="8"&&z!="9") return ;
	if(j<=0) {
		hp+=j;
		j=0;
	}
	if(hlv>=1) {
		hp-=pow(hlv,1.2);
		cout<<"\n血量流失"<<fixed<<setprecision(1)<<pow(hlv,1.2)<<"点!";
		if(rand()%5==0) hlv--;
	}
	if(ms) {
		if(!zz&&!fu) {
			cout<<"伤害增加"<<fixed<<setprecision(1)<<h-wh;
		} else if(fu) {
			cout<<"\n使用风扇后不可使用烤土豆!";
			s++;
		} else if(zz) {
			cout<<"伤害增加"<<fixed<<setprecision(1)<<xh-wh;
		}
	}
	cout<<"\n血量:"<<fixed<<setprecision(1)<<hp<<"/"<<hm<<"  护甲";
	cout<<fixed<<setprecision(1)<<j<<"/"<<jm;
	cout<<fixed<<setprecision(1)<<"\n护甲减少:"<<lj - j;
	cout<<fixed<<setprecision(1)<<"   护甲共减少"<<jm - j;
	if(hp<hm) {
		cout<<fixed<<setprecision(1)<<"\n血量减少:"<<lh-hp;
		cout<<fixed<<setprecision(1)<<"   血量共减少:"<<hm-hp;
	}
	if(hp<=0&&jm*0.8<j&&lh>0&&mode=="1") {
		cout<<"\n\n-------达成挑战:夺舍 ! (难度:C- 击杀时 护甲耐久 > 80%) 奖励 1 次数!-------\n";
		c++;
	}
	lh=hp;
	lj=j;
	if(ms) ms=false;
	as=1;
	xh+=(rand()%40+50)/10.0;//5~9
	zz=false;
	fu=false;
	tt=true;
	if(w==0) {
		w=6;
		dz++;
	} else if(tt) w--;
	return ;
}
void pvp(int x,int y,string z) { //x = j,y = r1,z = xj
	cout<<endl;
	if(mode!="2")
		//cout<<"暂未开放!";
		//return ;
		eme();
	int p1j=j,p1jm=jm,p1hp=100,p1hm=100,p1d=1,p1s=1,p1f=1,p1dz=1,p1w; //j甲,jm甲上限,hp血量,hm血量上限,d无菌蛋数量,s风扇数量,f烤土豆数量,dz大蜘蛛,w大蜘蛛等待次数
	int p2j=j,p2jm=jm,p2hp=100,p2hm=100,p2d=1,p2s=1,p2f=1,p2dz=1,p2w;
	int fs;//先手随机
	string fst;//先手
	cout<<"先手: 1:玩家1; 2:玩家2;  3:随机\n输入先手:";
	cin>>fst;
	bool suc=false;//胜利
	while(suc==false) {
		if(fst=="1") {
			fst="2";
			printf("\n----------玩家1回合! 护甲:(%d)%d/%d 血量:%d/%d\n",r1,p1j,p1jm,p1hp,p1hm);
			cin>>xj[1];
		} else if(fst == "2") {
			fst="1";
			printf("\n玩家2回合! 护甲:(%d)%d/%d 血量:%d/%d----------\n",r1,p2j,p2jm,p2hp,p2hm);
			cin>>xj[1];
		} else if(fst == "3") {
			fs=rand()%2+1;
			if(fs==1) fst="1";
			if(fs==2) fst="2";
		} else {
			cout<<"";
			suc=false;
		}
	}
}
void eve(int x,int y,string z) { //x=j,y=r1,z=xj
	while(true) {
		if(hp<=0) {
			cout<<"\n\n第"<<ne+1<<"个敌人\n";
			eme();
			ne++;
		}
		printf("\n你准备使用\n(1.山楂 2.面包 3.鸟 4.无菌蛋(%d) 5.风扇(%d) 6.小蜘蛛 7.烤土豆(%d) 8.大蜘蛛(%d [%d回合后+1]) 9.烧饼):",d,s,f,dz,w+1);
		tt=false;
		cin>>xj[1];
		dr(j,r1,xj[1]);
	}
	return ;
}      /*--------以下为 main--------*/
int main() {
	srand(time(0));
	cout<<"请输入游戏模式\n1.单人模式  只有1个敌人!\n2.双人对战  互相对打,看谁运气好!\n3.无尽模式  无尽的敌人! 无尽的次数! 一个又一个!\n输入模式:";
	cin>>mode;
	if(zl==false&&te==0&&mode=="2"||mode=="3") {
		if(mode=="2") pvp(j,r1,xj[1]);
		else eve(j,r1,xj[1]);
		return 0;
	}
	eme();
	if(mode=="1") {
		cout<<"\n请输入你的游玩次数(1~20):";
		cin>>c;
		if(!(c>=1&&c<=20)) {
			cout<<"游戏次数有误!";
			return 0;
		}
	}
	for(int i=1; i<=c; i++) {
		if(te==2) te=0;
		if(te==1) te++;
		if(zl==false) {
			if(c-i+1!=1) cout<<"\n\n你还剩"<<c-i+1<<"次游戏机会! ";
			else cout<<"\n\n最后1次游戏机会! ";
			printf("你准备使用\n(1.山楂 2.面包 3.鸟 4.无菌蛋(%d) 5.风扇(%d) 6.小蜘蛛 7.烤土豆(%d) 8.大蜘蛛(%d [%d回合后+1]) 9.烧饼):",d,s,f,dz,w+1);
		}
		zl=false;
		tt=false;
		cin>>xj[1];
		if(xj[1]=="/time"||xj[1]=="/health"||xj[1]=="/jia") {
			cin>>xj[2];
			if(xj[2]=="add"||xj[2]=="set") {
				cin>>ad;
				if(ad>=0&&ad<2147483647) {
					if(xj[1]=="/time") {
						if(xj[2]=="add") {
							c+=ad+1;
							cout<<"\n已将游戏次数增加"<<(int)ad;
						} else {
							c=ad+1;
							cout<<"\n已将游戏次数设为"<<(int)ad;
						}
					} else if(xj[1]=="/health") {
						if(xj[2]=="add") {
							hp+=ad;
							cout<<"\n已将血量增加"<<(int)ad;
						} else {
							hp=ad;
							cout<<"\n已将血量设为"<<(int)ad;
						}
						hm=hp;
						lh=hp;
						cout<<"\n血量:"<<fixed<<setprecision(1)<<hp<<"/"<<hm;
						c++;
					} else if(xj[1]=="/jia") {
						if(xj[2]=="add") {
							j+=ad;
							cout<<"\n已将护甲增加"<<ad;
						} else {
							j=ad;
							cout<<"\n已将护甲设为"<<ad;
						}
						jm=j;
						lj=j;
						cout<< "\n护甲:"<<fixed<<setprecision(1)<<j<<"/"<<jm;
						c++;
					}
				} else {
					cout<<"> 错误的函数 ,在 "<<ad<<"\n输入任意字符继续游玩...";
					zl=true;
					c+=2;
					te++;
				}
			}
		} else {
			if(zl==false&&te==0&&mode=="1") dr(j,r1,xj[1]);
		}
	}
	return 0;
}