#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#define int long long
using namespace std;
int x;
void cls(){system("cls");}
struct x1{
	int coin,xue,gong;
}me;
struct x2{
	string cws="无";
	int xue,gong; 
}my_animal;
struct x3{
	string gjs="无",fys="无";
	int gong,xue;
}wq;
//商城
void chong(){
	cls();
	cout<<"1.狸花猫 攻击:20 血量:50 收费:金币*40\n";
	cout<<"2.捷克狼犬 攻击:50 血量:100 收费:金币*80\n";
	cout<<"3.银狐 攻击:70 血量:140 收费:金币*120\n";
	cout<<"4.东北虎 攻击:150 血量:300 收费:金币*250\n";
	cout<<"5.霸王龙 攻击:400 血量:1000 收费:金币*700";
	string mp[10]={"","狸花猫","捷克狼犬","银狐","东北虎","霸王龙"};
	int mp2[10]={0,40,80,120,250,700},mp3[10]={0,20,50,70,150,400},mp4[10]={0,50,100,140,300,1000};
	while(cin>>x){
		if(me.coin<mp2[x]) cout<<"金币不足,请重新购买\n";
		else break;
	}
	cout<<"恭喜你获得:"<<mp[x]<<"!"; 
	my_animal.cws=mp[x];
	me.coin-=mp2[x];
	my_animal.gong=mp3[x];
	my_animal.xue=mp4[x];
	cout<<"现在,你还有"<<me.coin<<"金币";
	if(kbhit()) cls(); 
}
void hu(){
	cout<<"1.攻击"<<endl;
	cout<<"2.防御"<<endl; 
	cin>>x; 
	if(x==1){
		string mp[10]={"","铁齿","铁爪套","钻石剑","东北虎","远古火焰球"};
    	int mp2[10]={0,15,30,70,170,350},mp3[10]={0,20,30,50,100,250};
		cout<<"1.铁齿 (攻击力+20) 收费:金币*15"<<endl;
    	cout<<"2.铁爪套 (攻击力+30) 收费:金币*30"<<endl;
    	cout<<"3.钻石剑 (攻击力+50) 收费:金币*70"<<endl;
    	cout<<"4.远古石球 (攻击力+100) 收费:金币*170"<<endl;
        cout<<"5.远古火焰球 (攻击力+250) 收费:金币*350"<<endl;
        while(cin>>x){
	    	if(me.coin<mp2[x]) cout<<"金币不足,请重新购买\n";
		    else break;
    	}
    	cout<<"恭喜你获得:"<<mp[x]<<"!"; 
    	wq.gjs=mp[x];
    	wq.gong=mp3[x];
    	me.gong+=mp3[x];
    	me.coin-=mp2[x];
    	cout<<"现在,你还有"<<me.coin<<"金币\n";
    	if(kbhit()) cls(); 
	}
	if(x==2){
		string mp[10]={"","普通盾牌","高级盾牌","钛合金盾牌","普通能量盾","高级能量盾"};
    	int mp2[10]={0,50,150,300,500,1000},mp3[10]={0,50,120,250,350,900};
		cout<<"1.普通盾牌 (生命值:50) 收费:金币*50"<<endl;
     	cout<<"2.高级盾牌 (生命值:150) 收费:金币*120"<<endl;
    	cout<<"3.钛合金盾牌 (生命值:300) 收费:金币*250"<<endl;
    	cout<<"4.普通能量盾 (生命值:500) 收费:金币*350"<<endl;
    	cout<<"5.高级能量盾 (生命值:1000) 收费:金币*900"<<endl; 
    	while(cin>>x){
	    	if(me.coin<mp2[x]) cout<<"金币不足,请重新购买\n";
		    else break;
    	}
    	cout<<"恭喜你获得:"<<mp[x]<<"!"; 
    	wq.fys=mp[x];
    	wq.xue=mp3[x];
    	me.coin-=mp2[x];
    	cout<<"现在,你还有"<<me.coin<<"金币\n";
    	if(kbhit()) cls();
	}
}
void yao(){
	cls();
	cout<<"1.注射器 (回复10血量) 收费:金币*5"<<endl;
	cout<<"2.医疗包 (回复30血量) 收费:金币*20"<<endl;
	cout<<"3.小型医疗箱 (回复60血量) 收费:金币*50"<<endl;
	cout<<"5.大型医疗箱 (回复100血量) 收费:金币*70"<<endl;
	int mp[10]={0,5,20,50,70},mp2[10]={0,10,30,60,100};
	while(cin>>x){
	    if(me.coin<mp[x]) cout<<"金币不足,请重新购买\n";
	    else break;
    }
	me.coin-=mp[x];
	me.xue+=mp2[x];
	if(me.xue>100) me.xue=100; 
	cout<<"恭喜你回复 "<<mp2[x]<<"血量,你现在有:" <<me.xue<<"血量,"<<me.coin<<"金币\n";
	if(kbhit()) cls();
}
void sc(){
	while(1){
		cls();
	cout<<"1.宠物\n2.装备\n3.药品\n";
	cin>>x;
	if(x==1) chong();
	if(x==2) hu();
	if(x==3) yao();
	cout<<"还要继续购买吗?继续请输入1,退出请输入0";
	while(cin>>x){
		if(x==1) break;
    	else if(x==0){
    		cls();
    		return;
		}
		else cout<<"继续请输入1,退出请输入0\n"; 
	}
	}
}
//


//
void dc(){
	srand(time(0));
	cls();
	int a,k;
	cout<<"欢迎来到赌场,在这里,赢了将获得双倍的赌注,输了则不会将赌注返还,平局则金币不变\n";
	while(1){
		cout<<"请输入你的赌注(赌注需<=2000元并且>=-2000元)\n"; 
    	while(cin>>a){
    	    if(a<-2000||a>2000) cout<<"赌注超过限制,请重新输入\n";
    		else break;
        }
        me.coin-=a; 
        cout<<"你现在还有"<<me.coin<<"金币,请等待3秒···\n";
        Sleep(3000);
    	k=rand()%11;
    	if(k>=6&&k<=8){
    		me.coin+=a;
    		cout<<"平局!你现在还有"<<me.coin<<"金币\n"; 
    	}  
    	else if(k>8){
    		me.coin+=a*2;
    		cout<<"你赢了!你现在还有"<<me.coin<<"金币\n"; 
    	}
    	else cout<<"你输了!你现在还有"<<me.coin<<"金币\n"; 
    	cout<<"是否继续?继续请输入1,退出请输入0\n";
    	while(cin>>a){
    	if(a==1){
    		cls();
    		break;
		}
    	else if(a==0){
    		cls();
    		return;
		}
		else cout<<"继续请输入1,退出请输入0\n"; 
    	}
	}
}
//赌场 

//
void cz(){
	cls();
	cout<<"1.小兵 攻击力:20 生命值:50 击杀奖励:金币*200"<<endl;
	cout<<"2.喷火兵 攻击力:50 生命值:90 击杀奖励:金币*700"<<endl;
	cout<<"3.重型装甲兵 攻击力:45 生命值:120 击杀奖励:金币*1000"<<endl;
	cout<<"4.魔族将军 攻击力:100 生命值:250 击杀奖励:金币*2000"<<endl;
	cout<<"5.魔族元帅 攻击力:250 生命值:450 击杀奖励:金币*3000"<<endl; 
	string name[10]={"","小兵","喷火兵","重型装甲兵","魔族将军","魔族元帅"};
	int gong[10]={0,20,50,45,100,250},xue[10]={0,50,90,120,250,450},jiang[10]={0,200,700,1000,2000,3000};
	cin>>x;
	int a=xue[x],p=1;
	cls();
	while(a){
		cout<<"你发动了攻击\n";
		if(a-me.gong<=0){ 
	    	Sleep(500);
			cout<<"致命一击!怪物被击败了!\n"; 
			break;
		}
		a-=me.gong;
		Sleep(500);
		cout<<"怪物失去"<<me.gong<<"点生命值,还剩"<<a<<"点生命值\n";
		if(my_animal.cws!="无"){
			Sleep(500);
			cout<<"你的宠物 "<<my_animal.cws<<" 发动了攻击\n";
			a-=my_animal.gong;
			Sleep(500);
			cout<<"怪物失去"<<my_animal.gong<<"点生命值,还剩"<<a<<"点生命值\n";
		}
		Sleep(1000);
		cout<<"怪物发动了攻击\n";
		if(wq.fys!="无"&&wq.xue!=0){
			if(wq.xue>=gong[x]){
				wq.xue-=gong[x]; 
				Sleep(500);
				cout<<"你的防御武器 "<<wq.fys<<" 替你挡下了攻击,现在它还剩"<<wq.xue<<"点生命值\n"; 
			}
			else{
				me.xue=me.xue-gong[x]-wq.xue;
				wq.xue=0; 
				Sleep(500);
				cout<<"你的防御武器 "<<wq.fys<<" 替你挡下了部分攻击,现在它还剩"<<wq.xue<<"点生命值\n";
				wq.fys="无"; 
				Sleep(500);
				cout<<"你挡下了部分攻击,现在你还剩"<<me.xue<<"点血量\n"; 
				if(me.xue<=0){ 
	        		Sleep(500);
		        	cout<<"致命一击!你被击败了!\n"; 
		        	p=0;
		        	break;
	    	    }
			}
		} 
		if(my_animal.cws!="无"){
			if(my_animal.xue-(gong[x]/2)<=0){ 
		    	Sleep(500);
		    	cout<<"致命一击!你的宠物被击败了!\n"; 
		    	my_animal.cws="无"; 
		    	my_animal.xue=my_animal.gong=0; 
		    }
		    else{
		    	my_animal.xue-=gong[x]/2; 
		        Sleep(500);
	    		cout<<"你的宠物 "<<my_animal.cws<<" 受到了伤害,现在它还剩"<<my_animal.xue<<"点生命值\n";
			}
		}
		else{
			if(me.xue-gong[x]<=0){ 
	    		Sleep(500);
		    	cout<<"致命一击!你被击败了!\n"; 
		    	p=0;
		    	break;
		    }
		    me.xue-=gong[x];
		    Sleep(500);
			cout<<"你挡下了攻击,现在你还剩"<<me.xue<<"点血量\n"; 
		}
	}
	if(p==1){
		cout<<"现在,你有2个选择:\n1.继续战斗\n2.去商城\n";
		cout<<"输入0退出\n";
		while(cin>>x){
			if(x>2||x<0) cout<<"现在,你有2个选择:1.继续战斗,2.去商城;输入0退出\n";
			else break; 
		} 
		if(x==1) cz();
		if(x==2) sc();
		if(x==0) cls();
	}
	else{
		cout<<"现在,你有2个选择:输入1去药房买药,输入0直接结束游戏\n";
		while(cin>>x){
			if(x>1||x<0) cout<<"现在,你有2个选择:输入1去药房买药,输入0直接结束游戏\n";
			else break; 
		} 
		if(x==1) yao();
		if(x==0) x=-1;
	}
} 
//出战 

//
void print(){
	cls();
	printf("玩家--金币:%lld,血量:%lld,攻击:%lld\n",me.coin,me.xue,me.gong);
	cout<<"宠物:"<<my_animal.cws;
	if(my_animal.cws!="无") printf("--攻击:%lld,血量:%lld\n",my_animal.gong,my_animal.xue);
	else cout<<endl;
	cout<<"攻击武器:"<<wq.gjs<<endl;
	if(wq.gjs!="无") printf("--攻击力:%lld\n",wq.gong);
	else cout<<endl;
	cout<<"防御武器:"<<wq.fys; 
	if(wq.fys!="无") printf("--血量:%lld",wq.xue);
	cout<<"\n输入任意数字或字符退出";
	cin>>x;
	cls();
	return; 
} 
//查看个人信息

//
void boss(){
	cout<<"现在,你有4个选择:\n1.去商城\n2.去赌场\n3.迎战Boss\n4.查看个人信息\n";
	cout<<"1 2 4选项运行完之后将会直接开始迎战Boss,请慎重考虑\n";
	cin>>x;
	if(x==0){
		cout<<"感谢游玩!";
		return; 
	}
	if(x>3){
		cout<<"输入数据太大!请重新输入\n";
		cls();boss();
	}
	if(x<1){
		cout<<"输入数据太小!请重新输入\n";
		cls();boss(); 
	}
	if(x==1) sc();
	if(x==2) dc();
	if(x==4) print(); 
	int a=700,p=1,gong=400;
	cls();
	while(a){
		cout<<"你发动了攻击\n";
		if(a-me.gong<=0){ 
	    	Sleep(500);
			cout<<"致命一击!Boss被击败了!\n"; 
			break;
		}
		a-=me.gong;
		Sleep(500);
		cout<<"Boss失去"<<me.gong<<"点生命值,还剩"<<a<<"点生命值\n";
		if(my_animal.cws!="无"){
			Sleep(500);
			cout<<"你的宠物 "<<my_animal.cws<<" 发动了攻击\n";
			a-=my_animal.gong;
			Sleep(500);
			cout<<"Boss失去"<<my_animal.gong<<"点生命值,还剩"<<a<<"点生命值\n";
		}
		Sleep(1000);
		cout<<"Boss发动了攻击\n";
		if(wq.fys!="无"&&wq.xue!=0){
			if(wq.xue>=gong){
				wq.xue-=gong; 
				Sleep(500);
				cout<<"你的防御武器 "<<wq.fys<<" 替你挡下了攻击,现在它还剩"<<wq.xue<<"点生命值\n"; 
			}
			else{
				me.xue=me.xue-gong-wq.xue;
				wq.xue=0; 
				Sleep(500);
				cout<<"你的防御武器 "<<wq.fys<<" 替你挡下了部分攻击,现在它还剩"<<wq.xue<<"点生命值\n";
				wq.fys="无"; 
				Sleep(500);
				cout<<"你挡下了部分攻击,现在你还剩"<<me.xue<<"点血量\n"; 
				if(me.xue<=0){ 
	        		Sleep(500);
		        	cout<<"致命一击!你被击败了!\n"; 
		        	p=0;
		        	break;
	    	    }
			}
		} 
		if(my_animal.cws!="无"){
			if(my_animal.xue-(gong/2)<=0){ 
		    	Sleep(500);
		    	cout<<"致命一击!你的宠物被击败了!\n"; 
		    	my_animal.cws="无"; 
		    	my_animal.xue=my_animal.gong=0; 
		    }
		    else{
		    	my_animal.xue-=gong/2; 
		        Sleep(500);
	    		cout<<"你的宠物 "<<my_animal.cws<<" 受到了伤害,现在它还剩"<<my_animal.xue<<"点生命值\n";
			}
		}
		else{
			if(me.xue-gong<=0){ 
	    		Sleep(500);
		    	cout<<"致命一击!你被击败了!\n"; 
		    	p=0;
		    	break;
		    }
		    me.xue-=gong;
		    Sleep(500);
			cout<<"你挡下了攻击,现在你还剩"<<me.xue<<"点血量\n"; 
		}
	}
	if(p==0) cout<<"你被魔族Boss击败了,从此你成为了魔族的奴隶···(坏结局)";
	else cout<<"魔族Boss被击败了,于是魔族投靠了你,你成为了魔兽世界的统治者!(好结局)"; 
	Sleep(1000);
}              
//boss
signed main(){
	me.coin=me.xue=100;
 	me.gong=50;
	printf("欢迎进入魔兽世界!你现在有:%lld金币,%lld攻击力,%lld血量\n",me.coin,me.gong,me.xue);
	cout<<"输入对应的数字,可以去到对应的区域或购买到对应的物品\n";
	while(1){
		if(me.coin>=7000){
			cout<<"不幸消息:魔族Boss找到了你!(魔族Boss:小子,可以啊,这么快就已经有7000金币了。呵呵,成为我们魔族的奴隶吧!)\n";
			cout<<"魔族Boss 攻击力:400,生命值:700,杀死Boss将直接通关\n"; 
			boss();
			break;
		}
		cout<<"现在,你有4个选择:\n1.去商城\n2.去赌场\n3.出战\n4.查看个人信息\n";
		cout<<"输入0退出游戏\n";
		cin>>x;
		if(x==0){
			cout<<"感谢游玩!";
			return 0; 
		}
		if(x>4){
			cout<<"输入数据太大!请重新输入\n";
			cls();continue;
		}
		if(x<1){
			cout<<"输入数据太小!请重新输入\n";
			cls();continue;
		}
		if(x==1) sc();
		if(x==2) dc();
		if(x==3){
			cz();
			if(x==-1){
				cout<<"感谢游玩!";
	    		return 0; 
			}
		}
		if(x==4) print(); 
	}
}