#include<bits/stdc++.h>
using namespace std;
int jg(){
	int p1=rand()%6+1,p2=rand()%6+1;
	if(p1<=3)p1=1;
	else if(p1<=5)p1=2;
	else p1=3;
	if(p2<=3)p2=1;
	else if(p2<=5)p2=2;
	else p2=3;
	cout<<"你抽到了:"<<endl;
	cout<<"1、一个 "<<p1<<" 技能"<<endl;
	cout<<"2、一个 "<<p2<<" 技能"<<endl;
	cout<<"选哪个?"<<endl;
	int p;
	while(cin>>p){
		if(1<=p&&p<=2){
			break;
		}
		cout<<"精神病!"<<endl;
	}
	if(p==1)return p1;
	return p2;
}
int djn(){
	int p1=rand()%6+1,p2=rand()%6+1;
	if(p1<=3)p1=1;
	else if(p1<=5)p1=2;
	else p1=3;
	if(p2<=3)p2=1;
	else if(p2<=5)p2=2;
	else p2=3;
	return max(p1,p2);
}
int js(int lz,int yb){
	int ans=0;
	for(int i=1;i<=yb;++i){
		int gl=rand()%100+1;
		if(gl<=50+lz)ans++;
	}
	return ans;
}
int jb[4][4][4];
int main(){
	srand(time(0));
	cout<<"选择你需要第几组技能:"<<endl;
	cout<<"1、一技能基础3 2币 变动值4,二技能基础4 3币 变动值4,三技能基础4 4币 变动值3 "<<endl;
	cout<<"2、你的理智回复/2,一技能基础8 2币 变动值-2 使用时-7理智,二技能基础16 4币 变动值-4 使用时-10理智,三技能基础30 3币 变动值-12 使用时-15理智 "<<endl;
	cout<<"3、一技能基础3 1币 变动值8 使用时+5理智 ,二技能基础6 4币 变动值3,三技能基础4 4币 变动值7"<<endl;
	cout<<"4、一技能基础6 2币 变动值3,二技能基础12 4币 变动值1,三技能基础8 4币 变动值6"<<endl;
	jb[1][1][1]=3,jb[1][1][2]=2,jb[1][1][3]=4;
	jb[1][2][1]=4,jb[1][2][2]=3,jb[1][2][3]=4;
	jb[1][3][1]=4,jb[1][3][2]=4,jb[1][3][3]=3;
	jb[2][1][1]=8,jb[2][1][2]=2,jb[2][1][3]=-2;
	jb[2][2][1]=16,jb[2][2][2]=4,jb[2][2][3]=-4;
	jb[2][3][1]=30,jb[2][3][2]=3,jb[2][3][3]=-12;
	jb[3][1][1]=3,jb[3][1][2]=1,jb[3][1][3]=8;
	jb[3][2][1]=6,jb[3][2][2]=4,jb[3][2][3]=3;
	jb[3][3][1]=4,jb[3][3][2]=4,jb[3][3][3]=7;
	jb[4][1][1]=6,jb[4][1][2]=2,jb[4][1][3]=3;
	jb[4][2][1]=12,jb[4][2][2]=4,jb[4][2][3]=1;
	jb[4][3][1]=8,jb[4][3][2]=4,jb[4][3][3]=6;
	int p;
	while(cin>>p){
		if(p<1||p>4)cout<<"精神病!"<<endl;
		else break;
	}
	int rj=0;
	while(rj=rand()%4+1){
		if(rj!=p)break;
	} 
	cout<<"对方用"<<rj<<"!"<<endl; 
	double jb1=1,jb2=1;
	if(p==2)jb1=0.5;
	if(rj==2)jb2=0.5;
	int hp=4444,dhp=4444,lz=0,dlz=0;
	while(hp>0&&dhp>0){
		lz=min(45,lz),lz=max(-45,lz);
		dlz=min(45,dlz),dlz=max(-45,dlz);
		cout<<"你的血量:"<<hp<<endl;
		cout<<"敌人血量:"<<dhp<<endl;
		cout<<"你的理智:"<<lz<<endl;
		cout<<"敌人理智:"<<dlz<<endl;
		int p1=jg(),p2=djn();
		cout<<"敌人使用 "<<p2<<" 技能!"<<endl;
		if(p==2){
			if(p1==1)cout<<"你失去7点理智!"<<endl,lz-=7;
			else if(p1==2)cout<<"你失去10点理智!"<<endl,lz-=10;
			else if(p1==3)cout<<"你失去15点理智!"<<endl,lz-=15;
		}
		if(p==3){
			if(p1==1)cout<<"你回复5点理智"<<endl,lz+=5;
		}
		if(rj==2){
			if(p2==1)cout<<"人机失去7点理智!"<<endl,dlz-=7;
			else if(p2==2)cout<<"人机失去10点理智!"<<endl,dlz-=10;
			else if(p2==3)cout<<"人机失去15点理智!"<<endl,dlz-=15;
		}
		if(rj==3){
			if(p2==1)cout<<"人机回复5点理智"<<endl,dlz+=5;
		}
		int yb=jb[p][p1][2],dyb=jb[rj][p2][2];
		while(yb>0&&dyb>0){
			int wl=jb[p][p1][1]+jb[p][p1][3]*js(lz,yb);
			int dwl=jb[rj][p2][1]+jb[rj][p2][3]*js(dlz,dyb);
			cout<<"你:"<<wl<<endl;
			cout<<"他:"<<dwl<<endl;
			if(wl==dwl)cout<<"拼平!"<<endl;
			else if(wl>dwl)cout<<"拼点胜利!"<<endl,dyb--;
			else cout<<"拼点失败!"<<endl,yb--;
		}
		if(dyb!=jb[rj][p2][2])cout<<"你回复"<<8+(jb[rj][p2][2]-dyb)*2<<"点理智!"<<endl,lz+=jb1*(8+(jb[rj][p2][2]-dyb)*2);
		if(yb!=jb[p][p1][2])cout<<"敌人回复"<<8+(jb[p][p1][2]-yb)*2<<"点理智!"<<endl,dlz+=jb2*(8+(jb[p][p1][2]-yb)*2); 
		lz=min(45,lz),lz=max(-45,lz);
		dlz=min(45,dlz),dlz=max(-45,dlz);
		if(yb>0){
			int wl=jb[p][p1][1];
			for(int i=1;i<=yb;++i){
				int gl=rand()%100+1;
				if(gl<=50+lz)wl+=jb[p][p1][3];
				cout<<"你对他造成"<<wl<<"点伤害!"<<endl;
				dhp-=wl;
			}
		}else{
			int wl=jb[rj][p2][1];
			for(int i=1;i<=dyb;++i){
				int gl=rand()%100+1;
				if(gl<=50+dlz)wl+=jb[rj][p2][3];
				cout<<"他对你造成"<<wl<<"点伤害!"<<endl;
				hp-=wl;
			}
		}
		system("pause");
		system("cls");
	}
	if(hp>0)cout<<"你赢!"<<endl;
	else cout<<"你败!"<<endl;
	return 0;
}