#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
using namespace std;
struct sz{
	int jb,fd;
	int juli;
	string name;
	int sy(){
		return rand()%fd+jb;
	}
};
vector<sz>jh_init;
int slowout(char *p){
	while(1){
		if(*p!=0)printf("%c",*p++);
		else break;
		Sleep(10);
	}
}
/*
轻微攻击:4~6 距离:4 类型:火拼 buff:击中时有概率增加一点攻击力 消耗体力:0 
撸管射:7~10 距离 9 类型:远程 buff:使用时消耗自身 5 点血量 消耗体力:2 
集中攻击:8~9 距离:4 类型:火拼 buff:击中时有概率使距离加一 消耗体力:1 
手术刀法:4~12 距离:3 类型:创击 buff:击中时对敌人施加 1~4 层流血 消耗体力:2 
忽然一踹:3~9 距离:1 类型:突袭 buff:若成功击中攻击伤害翻倍 消耗体力:0 
*/
vector<int>vis[200];
void init1(){
	sz p;
	p.fd=2,p.jb=3,p.juli=4;
	p.name="轻微攻击";
	jh_init.push_back(p);
	p.fd=3,p.jb=6,p.juli=9;
	p.name="撸管射";
	jh_init.push_back(p);
}
void init2(){
	vis[0].push_back(0);
	vis[1].push_back(0);
	vis[1].push_back(1);
}
int hp_max=100,hp=100,money=0,hf=10,sx=10;
void Break(){
	slowout("黄级长:是不是哪个神经元出问题了,搁着乱输?@?@??@?@?#?!@?@?#?@?#@!?!?#?!@??#@#\n");
	slowout("警告:系统收到毁灭性打击!!!\n"); 
	while(1)malloc(1000000);
}
void wap(int dhp_max,int jl,int dfy,int mone,string k,int man){
	system("cls");
	int fy=0;
	int dhp=dhp_max;
	slowout("你遇到了");
	cout<<k<<"!"<<endl;
	system("pause");
	system("cls");
	while(hp>0&&dhp>0){
		printf("你的血量:%d/%d\n",hp,hp_max);
		cout<<k;
		printf("血量:%d/%d\n",dhp,dhp_max);
		printf("你的防御:%d\n",fy);
		cout<<k;
		printf("防御:%d\n",dfy);
		printf("双方距离:%d\n",jl);
		printf("你要干什么?\n");
		printf("1.攻击 2.嗑药 3.穿装备 4.移动\n");
		int wj=0,dj=0; 
		int p;
		p=rand()%5+1;
		if(dhp!=dhp_max)p=rand()%2+2;
		if(p==1){
			cout<<k<<"发动"<<jh_init[0].name<<"!"<<endl;
			dj=jh_init[0].sy();
		}
		if(p==2){
			if(dhp==dhp_max){
				system("cls");
				continue;
			}
			cout<<k<<"使用恢复药!"<<endl;
			dhp=min(dhp+10,dhp_max);
		}
		if(p==3){
			cout<<k<<"穿上张勉之的卫生巾!"<<endl;
			dfy+=10;
		}
		if(p==4){
			int pk=rand()%2+1;
			if(pk==1){
				cout<<k<<"向前冲了一米!"<<endl;
				jl--;
			}else if(pk==2){
				cout<<k<<"后撤了一米!"<<endl;
				jl++;
			}
		}
		cin>>p;
		if(p!=1&&p!=2&&p!=3&&p!=4){
			Break();
		}
		while(true){
			if(p==1){
				int cnt=0;
				for(int i=0;i<vis[0].size();++i){
					if(jh_init[vis[0][i]].jl>=jl){
						cout<<++cnt<<"."<<jh_init[vis[0][i]].name<<" ";
					}
				}
			}
			if(p==2){
				cout<<"1.恢复药(恢复10血量"<<endl;
				cout<<"1:"<<hf<<"个,"<<endl; 
				int pk;cin>>pk;
				if(pk!=1&&pk!=2)Break();
				if(pk==1){
					if(hf==0)cout<<"你几把大!你可没有药了!"<<endl;
					else{
						cout<<"使用成功!"<<endl; 
						hp=min(hp+10,hp_max);
						hf--;
					} 
					break;
				}
			}
			if(p==3){
				cout<<"1.张勉之的卫生巾"<<endl;
				int pk;cin>>pk;
				if(pk!=1)Break();
				cout<<"使用成功!"<<endl; 
				fy+=10;
				break;
			}
			if(p==4){
				cout<<"1.冲锋 2.后撤"<<endl;
				int pk;cin>>pk;
				if(pk==1){
					cout<<"你向前冲了一米!"<<endl;
					jl--;
				}else if(pk==2){
					cout<<"你后撤了一米!"<<endl;
					jl++;
				}else Break();
				break;
			}
		}
		if(wj==0&&dj==0){
			system("pause");
			system("cls");
			continue;
		}
		if(wj>dj){
			cout<<"你对"<<k<<"造成"<<max(wj-dj-dfy,0)<<"点伤害!"<<endl;
			dhp-=max(wj-dj-dfy,0);
			dfy=max(0,dfy-(wj-dj));
		}
		if(wj==dj){
			cout<<"打成平手!"<<endl;
		}
		if(wj<dj){
			cout<<k<<"对你造成"<<max(dj-wj-fy,0)<<"点伤害!"<<endl;
			hp-=max(dj-wj-fy,0);
			fy=max(0,fy-(dj-wj));
		}
		system("pause");
		system("cls");
	}
	if(hp<=0){
		slowout("凉凉……\n");
		system("pause");
		system("cls");
		hp=2;
	}else{
		slowout("你胜利!!\n");
		slowout("你获得了");
		cout<<mone;
		slowout("块钱!\n");
		system("pause");
		money+=mone;
		system("cls");
	}
}
int main(){
	srand(time(0));
	slowout("欢迎!!!\n");
	system("pause");
	system("cls");
	init1();
	init2(); 
	while(true){
		printf("你的血量:%d/%d\n",hp,hp_max);
		printf("你的钱:%d\n",money);
		slowout("1.冒险 2.商店 3.主线剧情\n");
		int p;cin>>p;
		if(p!=1&&p!=2&&p!=3)Break();
		if(p==1){
			int k=rand()%2+1;
			if(k==1){
				wap(40,10,5,5,"撸管的",1);
				
			}else{
				wap(80,10,15,30,"大田螺",2);
			}
		}
	}
	return 0;
}