2D世界小游戏4.0(c++)全用原库

嗨嗨害!懒狗蒟蒻来咯!

这次又迎来了懒狗蒟蒻的大更新!

有一下几点更新

1.我更新了存档功能,肝帝的春天!

名字:“.txt”

2.我做了坐标数组,有几个跳转坐标

跳转:

管理:

3.我做了新家具 

也做了交互(自己体验)

4.修复了十几个BUG

(自己都数不清了)

5.我添加了注释并通过函数缩码到1107了欧

code:

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<iostream>
#include<time.h>
using namespace std;
int ftn=100/*斧头耐久*/,gtn=100/*稿子耐久*/,ftnd=100,gtnd=100/*耐久max*/,g/*光*/,mt/*木头*/,td/*铁锭*/,sk/*石块*/,x,y/*位置*/,xi,yi,qtx[10]={1},qty[10]={1}/*出生点*/,jq=100000/*金钱*/;
char pdpd,pd/*判断*/,qtpd/*交互层级1*/,qtqtpd/*2*/,qtqtqtpd/*3*/,qnamep/*缓冲字符*/;
bool sfsd/*是否进入商店*/,sfgz/*是否工具台*/,sfjq/*是否集齐*/,sfbox/*是否开箱*/,sfdoor/*是否开门*/,sfsleep/*是否睡觉*/,sfdesk/*是否桌子*/,sfchair/*是否椅子*/,qsf[10]={1};
string ftl="木"/*斧头类型*/,gtl="木"/*镐头类型*/,fkm="  "/*脚下的方块*/,bag[11]={
"无","床","无","无","无","无","无","无","无","无","无"/*背包*/
},qname[11]={
"无","原始点","  ","  ","  ","  ","  ","  ","  ","  ","  "
},fk[102][102];/*方块*/;
struct desk
{
	bool sf/*判断*/; 
	string thing/*存放*/; 
	
}desk[102][102];//储物桌子 
struct box
{
	bool sf/*判断*/;
	int tn; 
	string lx/*存放类型*/,fg/*存放斧稿*/;
}box[102][102];//储物箱子 
void Read()
{
    ifstream in(".txt");
    in>>ftn>>gtn>>ftnd>>gtnd>>g>>mt>>td>>sk>>x>>y>>xi>>yi>>jq>>pdpd>>qtpd>>qtqtpd>>qtqtqtpd>>qnamep>>sfsd>>sfgz>>sfjq>>sfbox>>sfdoor>>sfsleep>>sfdesk>>sfchair>>ftl>>gtl;
	in>>fkm;
	fkm=(fkm=="ww"?"  ":fkm);
    for(int i=0;i<10;i++)
    	in>>qtx[i]>>qty[i]>>qsf[i];
    for(int i=0;i<=10;i++)
    {
		in>>qname[i];
    	qname[i]=(qname[i]=="ww"?"  ":qname[i]);
	}
    for(int i=1;i<=10;i++) 
    {
    	in>>bag[i];
    	bag[i]=(bag[i]=="ww"?"  ":bag[i]);
	}
    for(int i=1;i<=101;i++)
    	for(int j=1;j<=101;j++)
    	{
    		in>>fk[i][j];
    		fk[i][j]=(fk[i][j]=="ww"?"  ":fk[i][j]);
		}
	for(int i=1;i<=101;i++)
		for(int j=1;j<=101;j++)
		{
			in>>desk[i][j].sf;
			in>>desk[i][j].thing;
			desk[i][j].thing=(desk[i][j].thing=="ww"?"  ":desk[i][j].thing);
		} 
	for(int i=1;i<=101;i++)
		for(int j=1;j<=101;j++)
		{
			in>>box[i][j].sf;
			in>>box[i][j].tn; 
			in>>box[i][j].lx;
			box[i][j].lx=(box[i][j].lx=="ww"?"  ":box[i][j].lx);
			in>>box[i][j].fg;
			box[i][j].fg=(box[i][j].fg=="ww"?"  ":box[i][j].fg);
		} 
    in.close();
}
//读档 
void Save()
{
    ofstream out(".txt");
    out<<ftn<<" "<<gtn<<" "<<ftnd<<" "<<gtnd<<" "<<g<<" "<<mt<<" "<<td<<" "<<sk<<" "<<x<<" "<<y<<"  "<<xi<<" "<<yi<<" "<<jq<<" "<<pdpd<<" "<<qtpd<<" "<<qtqtpd<<" "<<qtqtqtpd<<" "<<qnamep<<" "<<sfsd<<" "<<sfgz<<" "<<sfjq<<" "<<sfbox<<" "<<sfdoor<<" "<<sfsleep<<" "<<sfdesk<<" "<<sfchair<<ftl<<" "<<gtl<<" ";
	out<<(fkm=="  "?"ww":fkm)<<"  ";
	for(int i=0;i<10;i++)
    	out<<" "<<qtx[i]<<" "<<qty[i]<<" "<<qsf[i]<<" ";
    for(int i=0;i<=10;i++)
		out<<(qname[i]=="  "?"ww":qname[i])<<" ";
    for(int i=1;i<=10;i++)
    	out<<(bag[i]=="  "?"ww":bag[i])<<" ";
    for(int i=1;i<=101;i++)
    	for(int j=1;j<=101;j++)
    		out<<(fk[i][j]=="  "?"ww":fk[i][j])<<" ";
	for(int i=1;i<=101;i++)
		for(int j=1;j<=101;j++)
		{
			out<<desk[i][j].sf<<" ";
			out<<(desk[i][j].thing=="  "?"ww":desk[i][j].thing)<<" ";
		} 
	for(int i=1;i<=101;i++)
		for(int j=1;j<=101;j++)
		{
			out<<box[i][j].sf<<" ";
			out<<box[i][j].tn;
			out<<(box[i][j].lx=="  "?"ww":box[i][j].lx)<<" ";
			out<<(box[i][j].fg=="  "?"ww":box[i][j].fg)<<" ";
		} 
    out.close();
}
//存档 
void sleep(int a,string b)
{
	cout<<b;
	Sleep(a);
	cout<<".";
	Sleep(a);
	cout<<".";
	Sleep(a);
	cout<<".";
	Sleep(a);
	cout<<".";
	Sleep(a);
	cout<<".";
	Sleep(a);
	cout<<".\n"; 
}
//暂停封装函数
int sfbag()
{
	for(int i=1;i<=10;i++)
		if(bag[i]=="无")
			return i; 
	return 0;
}
//判断背包空函数
void rand(int j,string f)
{
	for(int i=0;i<=j;i++)
	{	
		srand((unsigned)time(NULL));
	    do
	    { 
	    	int a,b;
	    	a=rand()%101;
			b=rand()%101; 
			if(fk[a][b]=="  ") 
			{
				fk[a][b]=f;
				break;
			}
		}
		while(1);
	}
}
//随机生成函数
void xf(string l,int &n,int d)
{
	n+=30;
	if(n>d)
		n=d;
	if(l=="木")
		if(mt>0)
		{
			mt-=1;
    		sleep(30,"正在为您修复中");
		}
		else
			cout<<"木材不够\n";
	if(l=="石")
		if(sk>0)
		{
			sk-=1;
    		sleep(30,"正在为您修复中");
		}
		else
			cout<<"石块不够\n";
	if(l=="铁")
		if(td>0)
		{
			td-=1;
    		sleep(30,"正在为您修复中");  
		}
		else
			cout<<"铁锭不够\n";
}
//工作台修复工具
void broke_it(bool sf)
{
	if(sf)
		if(!sfbag())
		    cout<<"背包满溢";
		else
		{
			bag[sfbag()]=fk[x+xi][y+yi];
			fk[x+xi][y+yi]="  ";
			qtpd=0;
			qtqtpd=0;
			qtqtqtpd=0;
		}
	else
		fk[x+xi][y+yi]="  ";
}
//互动时删除  
void printf()
{
	for(int i=1;i<=13;i++)
		cout<<"* ";
	cout<<" "<<ftl<<"斧\n";
	for(int xx=x-5;xx<=x+5;xx++)
	{
		cout<<"* ";
		for(int yy=y-5;yy<=y+5;yy++)
			if(xx>101||xx<1||yy>101||yy<1)
				cout<<"界"; 
			else 
				cout<<fk[xx][yy];
		cout<<"*";
		if(xx+6-x==1)
			cout<<"  耐久度:"<<ftn;	
		if(xx+6-x==2)
			cout<<"  "<<gtl<<"镐";
		if(xx+6-x==3)
			cout<<"  耐久度:"<<gtn;
		if(xx+6-x>=4&&xx+6-x<=8)
			cout<<"  "<<xx-x+2<<"、背包第"<<xx-x+3<<"格:"<<bag[xx-x+3]<<"      "<<xx-x+7<<"、背包第"<<xx-x+8<<"格:"<<bag[xx-x+8];
		if(xx+6-x==9)
			cout<<"  /:木:"<<mt;
		if(xx+6-x==10)
			cout<<"  *:石:"<<sk;
		if(xx+6-x==11)
			cout<<"  -:铁:"<<td;
		cout<<"\n";
	}		
	for(int i=1;i<=13;i++)
		cout<<"* ";
	cout<<" 金钱:"<<jq<<"                  "; 
	if(sfjq)
		cout<<"已拥有光之力";
	else
		cout<<"光之力:"<<g; 
	cout<<endl<<"脚下物品:"<<(fkm=="  "?"无":fkm)<<endl;
}
//输出函数 
void dig(int &tn,string lx,string gf) 
{
	int time;
	if(sfjq)
		if(ftn>0)
			time=1;
		else
			time=30;
	tn-=1;
	if(lx=="木")
		time=20;
	if(lx=="石")
		time=10;
	if(lx=="矿")
		time=5;
	if(lx=="无")
	{
		cout<<"您手无寸铁,挖掘过程需要等待\n";
		time=30;
	}
	else
	cout<<"你使用了"<<lx<<gf<<",耐久度减一\n";
	sleep(time,"正在为您挖掘中");
	broke_it(0);	
}
//挖掘函数 
void move(int xj,int yj)
{
	xi=xj;
	yi=yj;
	if(x+xj!=0&&y+yj!=0&&x+xj!=102&&y+yj!=102)
	{
		if(fk[x+xj][y+yj]=="  ")
		{
			fk[x][y]=fkm;
			fkm="  ";
			fk[x+xj][y+yj]="我";
			x+=xj;
			y+=yj;
		} 
		//移动 
		else
		{
			if(fk[x+xj][y+yj]=="工")
				sfgz=1;
			if(fk[x+xj][y+yj]=="商"||fk[x+xj][y+yj]=="店")
				sfsd=1;
			if(fk[x+xj][y+yj]=="箱"&&sfbox==0) 
				sfbox=1; 
			if(fk[x+xj][y+yj]=="门"&&sfdoor==0) 
				sfdoor=1; 
			if(fk[x+xj][y+yj]=="床"&&sfsleep==0) 
				sfsleep=1; 
			if(fk[x+xj][y+yj]=="桌"&&sfdesk==0) 
				sfdesk=1; 
			if(fk[x+xj][y+yj]=="椅"&&sfchair==0) 
				sfchair=1; 
			if(fk[x+xj][y+yj]=="铁")
			{
				td=td+1;
				fk[x+xj][y+yj]="  ";
			}
			if(fk[x+xj][y+yj]=="砖")
			{
				sk=sk+1;
				fk[x+xj][y+yj]="  "; 
			}
			if(fk[x+xj][y+yj]=="木")
			{
				mt=mt+1;
				fk[x+xj][y+yj]="  ";
			}
			if(fk[x+xj][y+yj]=="光")
				if(sfjq)
				{
					ftn+=6;
					gtn+=3;
					rand(1,"光");
				}
			if(fk[x+xj][y+yj]=="矿")
			{
				td=td+1;
				rand(1,"矿"); 
			}
			if(fk[x+xj][y+yj]=="石")
			{
				sk=sk+1;
				rand(1,"石");
			}
			if(fk[x+xj][y+yj]=="树")
			{
				mt=mt+1;
				rand(1,"树"); 
			}
			//互动判断 
		    if(fk[x+xj][y+yj]=="树"||fk[x+xj][y+yj]=="木")
				dig(ftn,ftl,"斧");
			if(fk[x+xj][y+yj]=="矿"||fk[x+xj][y+yj]=="石"||fk[x+xj][y+yj]=="铁"||fk[x+xj][y+yj]=="砖")
				dig(gtn,gtl,"镐");
			//挖掘其他 
			if(fk[x+xj][y+yj]=="光")
				if(sfjq)
				{
					if(gtn>0)
					{
						dig(gtn,gtl,"镐");
						gtn+=6;
						ftn+=3;
					}
					else
					{
						dig(gtn,gtl,"镐");
						gtn+=6;
						ftn+=3;
					}
					rand(1,"光"); 
				}
				else
					if(gtl=="铁")
				    {
						dig(gtn,gtl,"镐");
						g++;
				    }
			//挖掘光 
		}
	}
}
//移动函数 
void make(string &tl,string lastl,string l,string gf,string zyname,int &tnd,int tnds,int zys,int &zy)
{
	if(tl==lastl) 
		if(zy>=zys)
		{
			tl=l;
			tnd=tnds;
			zy-=zys; 
			sleep(30,"正在为您制作中");
		}
		else
			cout<<zyname<<"不够\n";
	else
		if(tl=="无"||tl==lastl)
			cout<<"没有"<<lastl<<gf<<"\n";
		else
			cout<<"背包满溢\n";
}
//制作函数 
void sd3j(int q,string wp)
{
	if(jq<q)
		cout<<"金钱不够\n"; 
	else
	{
		if(sfbag())
		{
			sleep(30,"正在为您交易中"); 
			bag[sfbag()]=wp;
			jq-=q;
			return;
		} 
	}
	cout<<"背包满溢";
}
//买家具函数
void sd3k(int q,int &zy)
{
	if(jq<q)
		cout<<"金钱不够\n"; 
	else
	{
		sleep(30,"正在为您交易中"); 
		jq-=q;
		zy+=1;
	}
}
//买资源函数 
void sd4j(int q,string wp)
{
	int a;
	for(a=1;a<=10;a++)
		if(bag[a]==wp)
		{
			bag[a]="无";
			a=0;
		    sleep(30,"正在为您交易中");
			jq+=q;
			return;
		}
	cout<<"变卖失败\n";
}
//卖家具函数
void sd4k(int q,int &zy)
{
	if(zy<=0)
		cout<<"变卖失败\n";
	else
	{
    	sleep(30,"正在为您交易中");
		zy--; 
		jq+=q;
	}
}
//卖资源函数 
void mm(void (*sdj)(int q,string wp),void (*sdk)(int q,int &zy),int b)
{
	switch(qtqtpd)
	{
		case '1':
			sdk(2/b,mt);
		break;
		case '2':
			sdk(4/b,sk);
		break;
		case '3':
			sdk(6/b,td);
		break;
		case '4':
			sdj(10/b,"椅");
		break;
		case '5':
			sdj(20/b,"桌");
		break;
		case '6':
			sdj(30/b,"床");
		break;
		case '7':
			sdj(40/b,"门"); 
		break; 
		case '8':
			sdj(50/b,"箱"); 
		break; 
	}
}
//买卖函数 
void peq()
{
	cout<<"0."<<qname[1]<<"\n";
	cout<<"1."<<qname[2]<<"\n";
	cout<<"2."<<qname[3]<<"\n";
	cout<<"3."<<qname[4]<<"\n";
	cout<<"4."<<qname[5]<<"\n";
	cout<<"5."<<qname[6]<<"\n";
	cout<<"6."<<qname[7]<<"\n";
	cout<<"7."<<qname[8]<<"\n";
	cout<<"8."<<qname[9]<<"\n";
	cout<<"9."<<qname[10]<<"\n";
}
//跳转出生点输出 
void  psd(int b)
{
	cout<<"金钱:"<<jq<<"\n"; 
	cout<<"退出:ESC\n";
	cout<<"1.木:"<<2/b<<"块:"<<mt<<"\n";
	cout<<"2.石:"<<4/b<<"块:"<<sk<<"\n";
	cout<<"3.铁:"<<6/b<<"块:"<<td<<"\n";
	cout<<"4.椅:"<<10/b<<"块\n";
	cout<<"5.桌:"<<20/b<<"块\n";
	cout<<"6.床:"<<30/b<<"块\n";
	cout<<"7.门:"<<40/b<<"块\n";
	cout<<"8.箱:"<<50/b<<"块\n";
	qtqtpd=_getch();
	system("cls");
}
//商店输出 
void put(int &zy,string fkM,string ts)
{
	if(fkm!="  ")
		cout<<"你的脚下已有方块";
	else
		if(zy>0)
		{
			zy-=1;
			fkm=fkM;
    		sleep(30,"正在为您放置中");
		}
		else
			cout<<ts<<"不足";
}
//放置函数
void put_desk(int &zy,string wp)
{
	desk[x+xi][y+yi].sf=1;
	desk[x+xi][y+yi].thing=wp;
	zy--;
}
//往桌子上放置 
void put_box(string &lx,string fg,int &tn)
{
	box[x+xi][y+yi].sf=1;
	box[x+xi][y+yi].lx=lx;
	box[x+xi][y+yi].tn=tn;
	box[x+xi][y+yi].fg=fg;
	lx="无";
	tn=0;
}
//往箱子里放置 
void getbox(string &tl,int &tn)
{
	if(tl=="无")
	{
		tl=box[x+xi][y+yi].lx;
		tn=box[x+xi][y+yi].tn;
		box[x+xi][y+yi].lx="  ";
		box[x+xi][y+yi].fg="  ";
		box[x+xi][y+yi].tn=0;
		box[x+xi][y+yi].sf=0;
		
	} 
}
//拿下箱子 
int main()
{	
	system("color F0");
	//换色 
	//system("pause");
    //教程 
	for(int i=1;i<102;i++)
		for(int j=1;j<102;j++)
		{
			desk[i][j].sf=0;
			desk[i][j].thing="  ";
			box[i][j].sf=0;
			box[i][j].lx="  ";
			box[i][j].fg="  ";
			fk[i][j]="  ";
		}
	fk[1][1]="商";
	fk[1][2]="店";
	fk[2][1]="工"; 
	x=2;
	y=2;
	rand(75,"树");
	rand(50,"石");
	rand(25,"矿");
	rand(5,"光");
	//初始化
    Read();
	//开始读取
	fk[x][y]="我";
	while(pd!=27)
	{
		pdpd=pd;
		if(!sfjq&&ftl=="铁"&&gtl=="铁"&&g==5)
		{
			rand(25,"光"); 
			sfjq=1;
			g=0;
			ftl="光";
			gtl="光";
		} 
		if(ftn<=0&&ftl!="光")
		{
			ftl="无";
			ftn=0;
			ftnd=0; 
		}
		if(ftl=="光")
			ftnd+=30;  
		if(gtn<=0&&gtl!="光")
		{
			gtl="无";
			gtn=0;
			gtnd=0;
		}
		if(gtl=="光")
			gtnd+=30;
		//对光的判断 
    	system("cls");
    	//清屏 
		if(sfgz)
		{
			sfgz=0; 
			do
			{
				qtpd=0;
				do
				{
					system("cls");
					cout<<"制作:1\n拆除该方块:2\n"<<(sfjq?"":"修复:3\n")<<"退出:ESC\n";
					qtpd=_getch();
					system("cls");
					if(qtpd==27)
						break;
				}
				while(qtpd!='1'&&qtpd!='2'&&qtpd!='3');
				qtqtpd=27;
				if(qtpd=='1')
					do
					{
					    system("cls");
						cout<<"1.木斧:2块木头\n";
						cout<<"2.木镐:3块木头\n";
						cout<<"3.石斧:一把木斧加上2块石头\n";
						cout<<"4.石镐:一把木镐加上3块石头\n";           
						cout<<"5.铁斧:一把木斧加上2块铁锭\n";
						cout<<"6.铁镐:一把木镐加上3块铁锭\n";
						cout<<"7.工作台:3块木头\n";
						cout<<"ESC键:退出\n";
						cout<<"你要制作?\n";
						qtqtpd=_getch();
					    switch(qtqtpd)
						{
							case '1':
								make(ftl,"无","木","斧","木材",ftnd,100,2,mt);
							break;
							case '2':
								make(gtl,"无","木","镐","木材",gtnd,100,3,mt);
							break;
							case '3':
								make(ftl,"木","石","斧","石头",ftnd,200,2,sk); 
							break;
							case '4':
								make(gtl,"木","石","镐","石头",gtnd,200,3,sk);
							break;
							case '5':
								make(ftl,"石","铁","斧","铁锭",ftnd,300,2,td); 
							break;
							case '6':
								make(gtl,"石","铁","镐","铁锭",gtnd,300,3,td); 
							break;
							case '7':
								if(mt>=3)
									if(!sfbag())
		                                cout<<"背包满溢";
	                                else
	                                {
	                                    bag[sfbag()]="工";
	    								sleep(30,"正在为您制作中");
	                                }
								else
									cout<<"木头不够\n";
							break;
						}
					}
					while(qtqtpd!=27);
				if(qtpd=='2')
				{
					broke_it(1);
					break;
					continue;
				}
				if(qtpd=='3'&&!sfjq)
				{
					do
					{
					    system("cls");
					    qtqtpd=27;
						if(ftn!=ftnd)
						{
							cout<<"1."<<ftl<<"斧:"<<ftn<<"\n";
							cout<<"2."<<gtl<<"镐:"<<gtn<<"\n";
							cout<<"ESC键:退出\n";
							cout<<"注:一个资源可修复30耐久度\n";
							cout<<"你要修复?\n";
							qtqtpd=_getch();
							xf(ftl,ftn,ftnd);
							continue;
						}
						if(ftn==ftnd&&gtn!=gtnd)
						{
							cout<<"1."<<gtl<<"镐:"<<gtn<<"\n";
							cout<<"ESC键:退出\n";
							cout<<"注:一个资源可修复30耐久度\n";
							cout<<"你要修复?";
							qtqtpd=_getch();
							xf(gtl,gtn,gtnd);
						}
					}
					while(qtqtpd!=27);
				}
			}
			while(qtpd!=27);
    		system("cls");
		}
		//工作台 
		if(sfsd)
		{
			sfsd=0; 
			do
			{
				do
				{
					system("cls");
					cout<<"金钱:"<<jq<<"\n买:1\n卖:2\n退出:ESC\n";
					qtpd=_getch();
					system("cls");
					if(qtpd==27)
						break;
				}
				while(qtpd!='1'&&qtpd!='2'); 
				qtqtpd=27;
				do
				{
	    			system("cls");
					if(qtpd=='1')
						psd(1);
					if(qtpd=='2')
						psd(2);
					if(qtpd=='1')
						mm(sd3j,sd3k,1); 
					if(qtpd=='2')
						mm(sd4j,sd4k,2); 
				}
				while(qtqtpd!=27);
			}
			while(qtpd!=27);
	    	system("cls");
		}
		//商店 
		if(sfbox)
		{
			do
			{
				system("cls");
				cout<<"<--.拆除箱子\nESC.离开\n其他键.放东西\n";
				qtpd=_getch();
				if(qtpd!=8&&qtpd!=27) 
				{
					do
					{
						if(qtpd!=27)
						{
							system("cls");
							cout<<"╔════╗\n║"<<box[x+xi][y+yi].lx<<box[x+xi][y+yi].fg<<"║\n╚════╝\n";
							if(box[x+xi][y+yi].sf)
							{
								cout<<"ESC.退出\n其他键.拿下\n";
								qtqtpd=_getch();
								if(qtqtpd!=27&&box[x+xi][y+yi].lx!="无")
								{
									if(box[x+xi][y+yi].fg=="斧")
										getbox(ftl,ftn); 
									if(box[x+xi][y+yi].fg=="镐")
										getbox(gtl,gtn); 
								}
							}
							else
							{
								if(ftl!="无")
								{
									cout<<"放置\n";
									cout<<"1."<<ftl<<"斧\n";
									if(gtl!="无")
										cout<<"2."<<gtl<<"镐\n";
									cout<<"其他键.退出";
									qtqtpd=_getch();
									if(qtqtpd=='1')
										put_box(ftl,"斧",ftn);
									if(qtqtpd=='2'&&gtl!="无")
										put_box(gtl,"镐",gtn);
								} 
								else
									if(gtl!="无")
									{
										cout<<"放置\n"; 
										cout<<"1."<<gtl<<"镐\n";
										cout<<"其他键.退出";
										qtqtpd=_getch();
										if(qtqtpd=='1')
										put_box(ftl,"斧",ftn);
									}
							}
						}
					}
					while(qtqtpd!=27);
				}
				if(qtpd==8)
				{
					if(!desk[x+xi][y+yi].sf)	
						broke_it(1);
					else
						qtpd=0;
				} 
			}
			while(qtpd!=27&&qtpd!=8);
			system("cls");
			sfbox=0;
		}
		//箱子 
		if(sfdoor)
		{
			cout<<"<--.拆除门\nESC.退出\n其他键.通过\n";
			qtpd=_getch();
			if(qtpd==8)
				broke_it(1);
			else 
				if(qtpd!=27)
				{
					broke_it(0);
					move(xi,yi);
					fkm="门";
					move(xi,yi);
				}
			system("cls");
			sfdoor=0;
		}
		//门 
		if(sfsleep)
		{
			system("color 07");
			cout<<"\n\n\n\n                   睡觉时间\n";
			cout<<"<--.拆除床\n其他键.起床\n";
			qtpd=_getch();
			if(qtpd==8)
				broke_it(1);
			system("color F0");
			system("cls");
			sfsleep=0;
		}
		//床 
		if(sfdesk)
		{
			do
			{
				system("cls");
				cout<<"<--.拆除桌子\nESC.离开\n其他键.放东西\n";
				qtpd=_getch();
				if(qtpd!=8&&qtpd!=27) 
				{
					do
					{
						if(qtpd!=27)
						{
							system("cls");
							cout<<"╔══╗\n║"<<desk[x+xi][y+yi].thing<<"║\n╚══╝\n";
							if(desk[x+xi][y+yi].sf)
							{
								cout<<"ESC.退出\n其他键.拿下\n";
								qtqtpd=_getch();
								if(qtqtpd!=27)
								{
									desk[x+xi][y+yi].sf=0;
									if(desk[x+xi][y+yi].thing=="木")
										mt++;
									if(desk[x+xi][y+yi].thing=="石")
										sk++;
									if(desk[x+xi][y+yi].thing=="铁")
										td++;
									desk[x+xi][y+yi].thing="  ";
								}
							}
							else
							{
								cout<<"其他键.退出\n1.放置木头\n2.放置石块\n3.放置铁锭\n";
								qtqtpd=_getch();
								if(qtqtpd!=27)
								{
									switch(qtqtpd)
									{
										case '1':
											put_desk(mt,"木");
										break;
										case '2':
											put_desk(sk,"石");
										break;
										case '3':
											put_desk(td,"铁");
										break;
									} 
								} 
							}
						}
					}
					while(qtqtpd!=27);
				}
				if(qtpd==8)
				{
					if(!desk[x+xi][y+yi].sf)	
						broke_it(1);
					else
						qtpd=0;
				} 
			}
			while(qtpd!=27&&qtpd!=8);
			system("cls");
			sfdesk=0;
		}
		//桌子
		if(sfchair)
		{
			system("color A0");
			cout<<"\n\n\n\n                   看向窗外\n";
			cout<<"<--.拆除椅子\n其他键.起身\n";
			qtpd=_getch();
			if(qtpd==8)
				broke_it(1);
			system("color F0");
			system("cls");
			sfchair=0;
		}
		//椅子  
		printf();
		pd=_getch();
		if(pd==81||pd==87||pd==69||pd==65||pd==83||pd==68||pd==90)
			pd+=32;
		switch((int)pd)
		{ 
			case 27:
			{
        		system("cls");
    			sleep(500,"正在为您退出中");
			}
			break;
			case 119:
				move(-1,0);
			break;
			case 115:
				move(1,0);
			break;
			case 97:
				move(0,-1);
			break;
			case 100:
				move(0,1);
			break;
			//移动 
			case 101:
			{
				system("cls");
				cout<<"转至\n";
				peq(); 
				qtpd=_getch();
				if(qtpd>='0'&&qtpd<='9')
				{
					if(qsf[qtpd-'0'])
					{
						fk[x][y]="  ";
						x=qtx[qtpd-'0'];
						y=qty[qtpd-'0'];
						fk[x][y]="我";
					}
				}
			}
			break;
			//出生点跳转 
			case 113:
			{
				do
				{
					system("cls");
					cout<<"1.创建\n";
					cout<<"2.删除\n";
					cout<<"3.交换\n";
					cout<<"ESC.退出\n";
					qtpd=_getch();
					system("cls");
					switch(qtpd-'0')
					{
						case 1:
						{
							for(int i=0;i<10;i++)
							{
								if(!qsf[i])
								{
									system("cls");
									cout<<"输入你的位置名字(esc终止)\n";
									cout<<"ESC.退出\n";
									do
									{
										qname[i+1]+=qnamep;
										qnamep=_getch();
										cout<<qnamep;
									}
									while(qnamep!=27);
									if(qname[i+1][0]==27)
										qname[i+1]=""; 
									else
									{
										qsf[i]=1;
										qtx[i]=x;
										qty[i]=y;
									}
									break;
								}
							}	
						}
						break;
						//创建 
						case 2:
						{
							do
							{
								system("cls");
								cout<<"你要删除那个\n";
								cout<<"ESC.退出\n";
								peq();
								qtqtpd=_getch();
								int j=qtqtpd-'0';
								qsf[j]=0;
								qtx[j]=0;
								qty[j]=0;
								qname[j+1]="";
							}
							while(qtpd!=1);
						}
						break;
						//删除
						case 3:
						{
							do
							{
								system("cls");
								cout<<"你要交换那个\n";
								peq();
								char qtqtpd1,qtqtpd2; 
								qtqtpd1=_getch();
								if(qtqtpd1==27)
									break;
								else
								{
									cout<<qtqtpd1<<"  ";
									qtqtpd2=_getch();
									cout<<qtqtpd1;
									int j1=qtqtpd1-'0',j2=qtqtpd2-'0';
									int i1,i2;
									i1=qtx[j1];
									qtx[j1]=qtx[j2];
									qtx[j2]=i1;
									i2=qty[j1];
									qty[j1]=qty[j2];
									qty[j2]=i2;
									string s;
									s=qname[j1+1];
									qname[j1+1]=qname[j2+1];
									qname[j2+1]=s;
									bool b;
									b=qsf[j1];
									qsf[j1]=qsf[j2];
									qsf[j2]=b;
								}	
							}
							while(1);
						}
						break;
						//交换
					}
				} 
				while(qtpd!=27);
			}
			break;
			//出生点编辑 
			case '/':
				put(mt,"木","木头");
			break;
			case '*':
				put(sk,"石","石头");
			break;
			case '-':
				put(td,"铁","铁锭");
			break;
			default :
			{
				if(pd>=48&&pd<=57)
					if(fkm!="  ")
			    		cout<<"你的脚下已有方块";
					else
					{
						if(bag[pd-47]=="无")
							cout<<"没有物品";
						else
						{
							fkm=bag[pd-47];
							bag[pd-47]="无";
    						sleep(30,"正在为您放置中");
						} 
					} 
			}
			//放置 
		}
	}
    Save();//结尾保存  
	return 0;
}

BaY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值