还在制作,主体框架已经完成,目前正在填入剧情

#include<bits/stdc++.h>
#include<windows.h>
#define int long long
#define sd signed
#define db double
#define ld long db
#define out printf
#define in(a) scanf("%d",&a)
#define inll(a) scanf("%lld",&a)
using namespace std;
void slp(const sd&slptime=1000){Sleep(slptime);}
void slout(const char*p,sd _slp=1000){out(p),slp(_slp);}
const sd MAXN=20;
mt19937 rnd(time(0));
void cle(){system("cls");}
void clout(const char*p){cle(),out(p);}
void slclout(const char*p,sd _slp=1000){clout(p),slp(_slp);}
sd rdi32(){return rnd()+rnd();}
int rdi64(){return rdi32()*rdi32();}
sd rdi32(sd rdl,sd rdr){return rdi32()%(rdr-rdl)+rdl;}
int rdi64(int rdl,int rdr){return rdi64()%(rdr-rdl)+rdl;}
sd Pow(sd a,sd b){
	sd x=1;
	for(sd i=1;i<=b;i++) x*=a;
	return x;
}
struct Boss{
	string name;
	sd Offense,Defense,HP;
	Boss(string _N="",sd Ofs=0,sd Dfs=0,sd Hp=0):name(_N),Offense(Ofs),Defense(Dfs),HP(Hp){}
	void upgrade(){
		Offense<<=1;
		Defense<<=1;
		HP<<=1;
	}
	void prt()const{
		cout<<name;
		out(" 的血量:%u 点,攻击力:%u 点,防御力:%u 点\n",HP,Offense,Defense); 
	}
}HZP("黄级长",10,5,50);
struct Offense_Weapon{
	string name;
	sd Offense_Up,num;
	Offense_Weapon(string _N="",sd _OU=0,sd NM=0):name(_N),Offense_Up(_OU),num(NM){}
};
struct Defense_Weapon{
	string name;
	sd Defense_Up,num;
	Defense_Weapon(string _N="",sd _DU=0,sd NM=0):name(_N),Defense_Up(_DU),num(NM){}
};
struct Liquid{
	string name;
	sd HP,num,NUM;
	int exp;
	Liquid(string _N="",sd Hp=0,sd Num=0,sd NM=0,int E=0):name(_N),HP(Hp),num(Num),NUM(NM),exp(E){}
	void prt()const{
		out("%u . ",num);
		cout<<name;
		out(" 回复 %u 点体力 可以转化为 %lld 点经验 目前有 %u 瓶\n",HP,exp,NUM);
	}
}common("普通药水",10,1,0,10),unusual("罕见药水",30,2,0,30),rare("稀有药水",90,3,0,120),epic("史诗药水",270,4,0,600),legendary("传奇药水",810,5,0,6000),mythic("神话药水",2430,6,0,120000),ultra("究极药水",7290,7,0,6000000),super("超级药水",21870,8,0,6000000000);
Liquid*lq[10];
struct Up_Level{
	sd Offense_Up,Defense_Up,HP_Up;
	Up_Level(sd OU=0,sd DU=0,sd HU=0):Offense_Up(OU),Defense_Up(DU),HP_Up(HU){}
};
struct Skill{
	string name;
	sd Offense,Defense,Ice_Time,Last_Then;
	Skill(sd Offs=0,sd Defs=0,sd IcTi=0,string Na=""):Offense(Offs),Defense(Defs),Ice_Time(IcTi),name(Na),Last_Then(IcTi){}
	const bool operator==(const Skill&skl)const{return name==skl.name;}
	void print(sd num)const{
		out("技能 %u:“",num);
		cout<<name;
		out("”\n");
		out("攻击加成:%u 点,防御加成:%u 点,冷却:%u 轮攻击\n",Offense,Defense,Ice_Time); 
	}
};
struct Hero{
	sd Offense,Defense,HP,lvl;
	int exp;
	Offense_Weapon Now_Offense;
	Defense_Weapon Now_Defense;
	bool Offense_Weapon_Num[MAXN],Defense_Weapon_Num[MAXN];
	vector<Skill> skills;
	Hero(sd O=0,sd D=0,sd H=0):Offense(O),Defense(D),HP(H),lvl(0),exp(0){}
	void LevelUp(Up_Level skill){
		Offense+=skill.Offense_Up;
		Defense+=skill.Defense_Up;
		HP+=skill.HP_Up;
		out("现在你的血量: %u 点,攻击力:%u 点,防御力:%u 点\n",HP,Offense,Defense);
	}
	void AddSkill(Skill skill){
		for(auto i:skills)
			if(skill==i) return;
		skills.insert(skills.end(),skill);
	}
	void harm(const sd&harmnum){
		sd hrm=harmnum-Offense;
		sd gxh=rdi32(1,1000);
		if(gxh<991) HP-=hrm;
	}
	void prtskl()const{
		out("有 %u 个技能",skills.size());
		if(skills.size()!=0) out(":");
		out("\n");
		for(sd i=0;i<skills.size();i++) skills[i].print(i+1);
		slp(3000);
	}
	void print()const{
		out("血量: %u 点,攻击力:%u 点,防御力:%u 点\n\n",HP,Offense,Defense);
		prtskl();
	}
	//void ;
}player(10,3,50);
void drinklq(){
	out("您有如下药水:\n");
	common.prt();
	unusual.prt();
	rare.prt();
	epic.prt();
	legendary.prt();
	mythic.prt();
	ultra.prt();
	super.prt();
	out("\n\n是否饮用药水?\n"); 
	sd sfdrk;
	in(sfdrk);
	if(!sfdrk) return;
	out("引用哪种等级的药水?(1~8 分别代表 普通~超级)\n");
	in(sfdrk);
	if(lq[sfdrk]->NUM==0){
		slout("药水数量不足");
		cle();
		return;
	}
	lq[sfdrk]->NUM--;
	sd gx=rdi32(1,10000);
	if(gx>9999) player.HP+=(lq[sfdrk]->HP)*81;
	if(gx>9990) player.HP+=(lq[sfdrk]->HP)*27;
	if(gx>9900) player.HP+=(lq[sfdrk]->HP)*9;
	if(gx>9000) player.HP+=(lq[sfdrk]->HP)*3;
	player.HP+=lq[sfdrk]->HP;
	out("喝药成功,目前 %u 点血量",player.HP);
	slp(1000);
	cle();
}
void absorblq(){
	out("您有如下药水:\n");
	common.prt();
	unusual.prt();
	rare.prt();
	epic.prt();
	legendary.prt();
	mythic.prt();
	ultra.prt();
	super.prt();
	out("\n\n是否转化药水?\n"); 
	sd sfdrk;
	in(sfdrk);
	if(!sfdrk) return;
	out("转化哪种等级的药水?(1~8 分别代表 普通~超级)\n");
	in(sfdrk);
	if(lq[sfdrk]->NUM==0){
		slout("药水数量不足");
		cle();
		return;
	}
	lq[sfdrk]->NUM--;
	player.exp+=lq[sfdrk]->exp;
	out("转化成功,目前 %u 点血量",player.HP);
	slp(1000);
	cle();
}
struct Fight{
	Boss boss;
	Fight(Boss bs=Boss()):boss(bs){}
	void round(){
		clout("请问你要干什么?\n1.攻击\n2.喝药\n3.逃跑\n");
		sd a,b;
		in(a);
		if(a==1){
			out("请问你要使用技能吗?\n1.要\n2.不要");
			in(b);
		}
		else if(a==2) drinklq();
		else if(a==3){
			
		}
		else{
			slclout("输入有误,请重新输入\n");
			round();
		}
	}
	bool run(){
		boss.prt();
		sd x=rdi32(1,Pow(2,sd(log(player.HP))));
		while(x%2==0){
			x/=2;
			out("BOSS 进行了一次升级\n");
			boss.upgrade(); 
		}
		boss.prt();
		while(player.HP>0&&boss.HP>0) round();
		if(player.HP<=0&&boss.HP<=0){
			slclout("你和敌人同归于尽,你将体力恢复至20点,游戏继续。\n");
			player.HP=20;
			return 1;
		}
		else if(player.HP<=0){
			slclout("- - - - - - - - - - 你 死 了 。 - - - - - - - - - -\n");
			return 0;
		}
		else{
			slclout("你赢了,回复20点体力,游戏继续。\n");
			return 1;
		}
	}
};
sd main(){
	out("欢迎来到由 __Tonycyt__ 制作的游戏“游荡者”\n\n\n");
	out("现在你的性能如下\n\n\n");
	player.print();
	lq[1]=&common;
	lq[2]=&unusual;
	lq[3]=&rare;
	lq[4]=&epic;
	lq[5]=&legendary;
	lq[6]=&mythic;
	lq[7]=&ultra;
	lq[8]=&super;
	while(1){
		slclout("你想要去哪里?\n");
		slout("0.退出游戏 1.大街 2.学校 3.小卖部 4.教育局 5.家 6.饭堂 7.游戏厅 8.喝药 9.转化药水 114.随机抽取\n");
		sd a;
		in(a);
		cle();
		if(a==114) a=rdi32(1,7);
		if(a==0) return 0;
		if(a==1){
			sd x=rdi32(1,10);
			if(x==1){
				
			}
		}
		if(a==8) drinklq();
		if(a==9) absorblq();
	}
	return 0;
}