我做的一个挖矿小游戏,后面会改进一些读入与输出,有建议的话记得评论区留言。
上代码:
#include <bits/stdc++.h>
 using namespace std;
 struct block{
     int type,hard;
 };
 int xx=7,yy=0,hunger=100,money=0,strong=1;
 int price[100]={1,5,8,8,10,12,30,60,100,170,130,170,300,180,220,400,20};
 int bprice[100]={20};
 int upgradeprice=20;
 block g[101][301]={{0}};
 int backpack[100]={0};
 void out(int i,int j){
     block x=g[i][j];
     if(i==yy&&j==xx)
     {
         cout<<" 你  ";
         return ;
     }
     switch (x.type)
     {
         case -1:cout<<"     ";break;
         case 0:cout<<"石头 ";break;
         case 1:cout<<"煤炭 ";break;
         case 2:cout<<"铁矿 ";break;
         case 3:cout<<"铝矿 ";break;
         case 4:cout<<"铜矿 ";break;
         case 5:cout<<"锡矿 ";break;
         case 6:cout<<"银矿 ";break;
         case 7:cout<<"金矿 ";break;
         case 8:cout<<"祖绿 ";break;
         case 9:cout<<"水晶 ";break;
         case 10:cout<<"石油 ";break;
         case 11:cout<<"钻石 ";break;
         case 12:cout<<"合金 ";break;
         case 13:cout<<"电石 ";break;
         case 14:cout<<"气石 ";break;
         case 15:cout<<"明铁 ";break;
     }
 }
 void print(){
     cout<<"控制键:wasd上左下右,m卖东西(ad切换卖的东西,y确认,s全卖),e刷新地图"<<endl;
     cout<<"b买东西(ad切换买的东西,y确认,最后输入买的个数),c吃面包,u升级"<<endl;
     cout<<"钱:"<<money<<"  "<<"饥饿:"<<hunger<<" 强度:"<<strong<<" 升级花费:"<<upgradeprice<<endl;
     cout<<"石"<<backpack[0]<<" ";
     cout<<"煤"<<backpack[1]<<" ";
     cout<<"铁"<<backpack[2]<<" ";
     cout<<"铝"<<backpack[3]<<" ";
     cout<<"铜"<<backpack[4]<<" ";
     cout<<"锡"<<backpack[5]<<" ";
     cout<<"银"<<backpack[6]<<" ";
     cout<<"金"<<backpack[7]<<" ";
     cout<<"绿"<<backpack[8]<<" ";
     cout<<"晶"<<backpack[9]<<" ";
     cout<<"油"<<backpack[10]<<" ";
     cout<<"钻"<<backpack[11]<<" ";
     cout<<"合"<<backpack[12]<<" ";
     cout<<"电"<<backpack[13]<<" ";
     cout<<"气"<<backpack[14]<<" ";
     cout<<"明"<<backpack[15]<<" ";
     cout<<"面包"<<backpack[16]<<endl;
     for(int i=1;i<=max(9-yy,0);i++)
     {
         cout<<endl;
     }
     cout<<"    ";
     for(int i=max(xx-10,1);i<=min(xx+10,100);i++)
     {
         if(yy==0&&xx==i)
         {
             cout<<" 你  ";
         }
         else
         {
             cout<<"     ";
         }
     }
     cout<<endl;
     for(int i=max(yy-4,1);i<=yy+6;i++)
     {
         if(i<10)
         {
             cout<<"  "<<i<<":";
         }
         else if(i<100)
         {
             cout<<" "<<i<<":";
         }
         else if(i<1000)
         {
             cout<<i<<":";
         }
         for(int j=max(xx-10,1);j<=min(xx+10,100);j++)
         {
             out(i,j);
         }
         cout<<endl;
         
         if(i<10)
         {
             cout<<"  "<<i<<":";
         }
         else if(i<100)
         {
             cout<<" "<<i<<":";
         }
         else if(i<1000)
         {
             cout<<i<<":";
         }
         for(int j=max(xx-10,1);j<=min(xx+10,100);j++)
         {
             out(i,j);
         }
         cout<<endl;
     }
 }
 void sellprint(int x){
     if(x==0){
         cout<<"选择石头 ";
     }
     else cout<<"石"<<backpack[0]<<" ";
     if(x==1){
         cout<<"选择煤炭 ";
     }
     else cout<<"煤"<<backpack[1]<<" ";
     if(x==2){
         cout<<"选择铁矿 ";
     }
     else cout<<"铁"<<backpack[2]<<" ";
     if(x==3){
         cout<<"选择铝矿 ";
     }
     else cout<<"铝"<<backpack[3]<<" ";
     if(x==4){
         cout<<"选择铜矿 ";
     }
     else cout<<"铜"<<backpack[4]<<" ";
     if(x==5){
         cout<<"选择锡矿 ";
     }
     else cout<<"锡"<<backpack[5]<<" ";
     if(x==6){
         cout<<"选择银矿 ";
     }
     else cout<<"银"<<backpack[6]<<" ";
     if(x==7){
         cout<<"选择金矿 ";
     }
     else cout<<"金"<<backpack[7]<<" ";
     if(x==8){
         cout<<"选择祖绿 ";
     }
     else cout<<"绿"<<backpack[8]<<" ";
     if(x==9){
         cout<<"选择水晶 ";
     }
     else cout<<"晶"<<backpack[9]<<" ";
     if(x==10){
         cout<<"选择石油 ";
     }
     else cout<<"油"<<backpack[10]<<" ";
     if(x==11){
         cout<<"选择钻石 ";
     }
     else cout<<"钻"<<backpack[11]<<" ";
     if(x==12){
         cout<<"选择合金 ";
     }
     else cout<<"合"<<backpack[12]<<" ";
     if(x==13){
         cout<<"选择电石 ";
     }
     else cout<<"电"<<backpack[13]<<" ";
     if(x==14){
         cout<<"选择气石 ";
     }
     else cout<<"气"<<backpack[14]<<" ";
     if(x==15){
         cout<<"选择明铁 ";
     }
     else cout<<"明"<<backpack[15]<<endl;
 }
 void sell(){
     char c;
     int ch=1;
     sellprint(ch);
     cin>>c;
     while(c!='y')
     {
         switch(c)
         {
             case 'a':if(ch!=0){ch--;}break;
             case 'd':if(ch!=15){ch++;}break;
             case 's':for(int i=0;i<=15;i++){money+=backpack[i]*price[i],backpack[i]=0;}cout<<"兑换成功"<<endl;return ;
         }
         sellprint(ch);
         cin>>c;
     }
     cout<<"兑换成功"<<endl;
     money+=backpack[ch]*price[ch];
     backpack[ch]=0;
 }
 void buyprint(int x){
     if(x==0)
     {
         cout<<"选择面包 ";
     }
     else
     {
         cout<<"面包"<<bprice[0];
     }
     cout<<endl;
 }
 void buy(){
     char c;
     int ch=0;
     buyprint(ch);
     cin>>c;
     while(c!='y')
     {
         switch(c)
         {
             case 'a':if(ch!=0){ch--;}break;
             case 'd':if(ch!=0){ch++;}break;
         }
         buyprint(ch);
         cin>>c;
     }
     int num;
     cin>>num;
     if(money>=num*bprice[ch])
     {
         money-=num*bprice[ch];
         backpack[ch+16]+=num;
         cout<<"购买成功"<<endl;
         return ;
     }
     else
     {
         cout<<"余额不足"<<endl;
         return ;
     }
 }
 void make(){
     
     for(int i=0;i<=13;i++){
         for(int j=1;j<=10;j++){
             for(int k=1;k<=100;k++){
                 if(i==0){
                     int x=rand()%1000;
                     if(x<100)
                     {
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<130)
                     {
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<140)
                     {
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<145)
                     {
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<147)
                     {
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<148)
                     {
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<149)
                     {
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<150)
                     {
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
                 if(i==1){
                     int x=rand()%1000;
                     if(x<100)
                     {
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<150)
                     {
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<180)
                     {
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<195)
                     {
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<205)
                     {
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<210)
                     {
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<211)
                     {
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<212)
                     {
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else if(x<213)
                     {
                         g[i*10+j][k].type=9;
                         g[i*10+j][k].hard=20;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
                 if(i==2){
                     int x=rand()%1000;
                     if(x<100)
                     {
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<150)
                     {
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<200)
                     {
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<230)
                     {
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<250)
                     {
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<260)
                     {
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<265)
                     {
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<266)
                     {
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else if(x<267)
                     {
                         g[i*10+j][k].type=9;
                         g[i*10+j][k].hard=20;
                     }
                     else if(x<268)
                     {
                         g[i*10+j][k].type=10;
                         g[i*10+j][k].hard=22;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
                 if(i==3){
                     int x=rand()%1000;
                     if(x<100)
                     {
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<150)
                     {
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<190)
                     {
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<230)
                     {
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<260)
                     {
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<280)
                     {
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<300)
                     {
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<310)
                     {
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else if(x<315)
                     {
                         g[i*10+j][k].type=9;
                         g[i*10+j][k].hard=20;
                     }
                     else if(x<316)
                     {
                         g[i*10+j][k].type=10;
                         g[i*10+j][k].hard=22;
                     }
                     else if(x<317)
                     {
                         g[i*10+j][k].type=11;
                         g[i*10+j][k].hard=24;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
                 if(i==4){
                     int x=rand()%1000;
                     if(x<80){
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<130){
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<170){
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<210){
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<250){
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<270){
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<290){
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<310){
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else if(x<320){
                         g[i*10+j][k].type=9;
                         g[i*10+j][k].hard=20;
                     }
                     else if(x<325){
                         g[i*10+j][k].type=10;
                         g[i*10+j][k].hard=22;
                     }
                     else if(x<330){
                         g[i*10+j][k].type=11;
                         g[i*10+j][k].hard=24;
                     }
                     else if(x<331){
                         g[i*10+j][k].type=12;
                         g[i*10+j][k].hard=26;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
                 if(i==5){
                     int x=rand()%1000;
                     if(x<50){
                         g[i*10+j][k].type=1;
                         g[i*10+j][k].hard=4;
                     }
                     else if(x<80){
                         g[i*10+j][k].type=2;
                         g[i*10+j][k].hard=6;
                     }
                     else if(x<110){
                         g[i*10+j][k].type=3;
                         g[i*10+j][k].hard=8;
                     }
                     else if(x<140){
                         g[i*10+j][k].type=4;
                         g[i*10+j][k].hard=10;
                     }
                     else if(x<170){
                         g[i*10+j][k].type=5;
                         g[i*10+j][k].hard=12;
                     }
                     else if(x<200){
                         g[i*10+j][k].type=6;
                         g[i*10+j][k].hard=14;
                     }
                     else if(x<230){
                         g[i*10+j][k].type=7;
                         g[i*10+j][k].hard=16;
                     }
                     else if(x<260){
                         g[i*10+j][k].type=8;
                         g[i*10+j][k].hard=18;
                     }
                     else if(x<280){
                         g[i*10+j][k].type=9;
                         g[i*10+j][k].hard=20;
                     }
                     else if(x<295){
                         g[i*10+j][k].type=10;
                         g[i*10+j][k].hard=22;
                     }
                     else if(x<310){
                         g[i*10+j][k].type=11;
                         g[i*10+j][k].hard=24;
                     }
                     else if(x<315){
                         g[i*10+j][k].type=12;
                         g[i*10+j][k].hard=26;
                     }
                     else
                     {
                         g[i*10+j][k].type=0;
                         g[i*10+j][k].hard=4;
                     }
                 }
             }
         }
     }
 }
 int main()
 {
     srand(time(NULL));
     make();
     print();
     for(int i=1;i<=100;i++)
     {
         g[0][i].type=-1;
         g[0][i].hard=0;
     }
     while(1)
     {
         char c;
         cin>>c;
         switch(c)
         {
             case 'w':if(yy!=0){
                 if(g[yy-1][xx].hard<=strong){
                     yy--;
                     backpack[g[yy][xx].type]++;
                     g[yy][xx].type=-1;
                     g[yy][xx].hard=0;
                     hunger--;
                 }
                 else
                 {
                     g[yy-1][xx].hard-=strong;
                     hunger--;
                 }
                 if(yy==0){
                     hunger=100;
                 }
             }
             break;
             case 's':
                 if(g[yy+1][xx].hard<=strong){
                     yy++;
                     backpack[g[yy][xx].type]++;
                     g[yy][xx].type=-1;
                     g[yy][xx].hard=0;
                     hunger--;
                 }
                 else
                 {
                     g[yy+1][xx].hard-=strong;
                     hunger--;
                 }
             if(yy==0){
                 hunger=100;
                 
             }
             break;
             case 'a':if(xx!=0){
                 
                 if(g[yy][xx-1].hard<=strong){
                     xx--;
                     backpack[g[yy][xx].type]++;
                     g[yy][xx].type=-1;
                     g[yy][xx].hard=0;
                     hunger--;
                 }
                 else
                 {
                     g[yy][xx-1].hard-=strong;
                     hunger--;
                 }
                 if(yy==0){
                     hunger=100;
                 }
                 
             }
             break;
             case 'd':
                 if(g[yy][xx+1].hard<=strong){
                     xx++;
                     backpack[g[yy][xx].type]++;
                     g[yy][xx].type=-1;
                     g[yy][xx].hard=0;
                     hunger--;
                 }
                 else
                 {
                     g[yy][xx+1].hard-=strong;
                     hunger--;
                 }
                 if(yy==0){
                     hunger=100;
                 }
                 break;
             case 'm':sell();break;
             case 'e':make(),g[yy][xx].type=-1,g[yy][xx].hard=0,hunger-=20;break;
             case 'b':buy();break;
             case 'c':if(backpack[16]!=0){hunger+=25;backpack[16]--;}break;
             case 'u':if(money>=upgradeprice){money-=upgradeprice;strong++;upgradeprice*=2;}break;
         }
         if(hunger<=0)
         {
             cout<<"你死了";
             return 0;
         }
         print();
     }
     return 0;
 }
#include <bits/stdc++.h>
using namespace std;
struct block{
	int type,hard;
};
int xx=7,yy=0,hunger=100,money=0,strong=1;
int price[100]={1,5,8,8,10,12,30,60,100,170,130,170,300,180,220,400,20};
int bprice[100]={20};
int upgradeprice=20;
block g[101][301]={{0}};
int backpack[100]={0};
void out(int i,int j){
	block x=g[i][j];
	if(i==yy&&j==xx)
	{
		cout<<" 你  ";
		return ;
	}
	switch (x.type)
	{
		case -1:cout<<"     ";break;
		case 0:cout<<"石头 ";break;
		case 1:cout<<"煤炭 ";break;
		case 2:cout<<"铁矿 ";break;
		case 3:cout<<"铝矿 ";break;
		case 4:cout<<"铜矿 ";break;
		case 5:cout<<"锡矿 ";break;
		case 6:cout<<"银矿 ";break;
		case 7:cout<<"金矿 ";break;
		case 8:cout<<"祖绿 ";break;
		case 9:cout<<"水晶 ";break;
		case 10:cout<<"石油 ";break;
		case 11:cout<<"钻石 ";break;
		case 12:cout<<"合金 ";break;
		case 13:cout<<"电石 ";break;
		case 14:cout<<"气石 ";break;
		case 15:cout<<"明铁 ";break;
	}
}
void print(){
	cout<<"控制键:wasd上左下右,m卖东西(ad切换卖的东西,y确认,s全卖),e刷新地图"<<endl;
	cout<<"b买东西(ad切换买的东西,y确认,最后输入买的个数),c吃面包,u升级"<<endl;
	cout<<"钱:"<<money<<"  "<<"饥饿:"<<hunger<<" 强度:"<<strong<<" 升级花费:"<<upgradeprice<<endl;
	cout<<"石"<<backpack[0]<<" ";
	cout<<"煤"<<backpack[1]<<" ";
	cout<<"铁"<<backpack[2]<<" ";
	cout<<"铝"<<backpack[3]<<" ";
	cout<<"铜"<<backpack[4]<<" ";
	cout<<"锡"<<backpack[5]<<" ";
	cout<<"银"<<backpack[6]<<" ";
	cout<<"金"<<backpack[7]<<" ";
	cout<<"绿"<<backpack[8]<<" ";
	cout<<"晶"<<backpack[9]<<" ";
	cout<<"油"<<backpack[10]<<" ";
	cout<<"钻"<<backpack[11]<<" ";
	cout<<"合"<<backpack[12]<<" ";
	cout<<"电"<<backpack[13]<<" ";
	cout<<"气"<<backpack[14]<<" ";
	cout<<"明"<<backpack[15]<<" ";
	cout<<"面包"<<backpack[16]<<endl;
	for(int i=1;i<=max(9-yy,0);i++)
	{
		cout<<endl;
	}
	cout<<"    ";
	for(int i=max(xx-10,1);i<=min(xx+10,100);i++)
	{
		if(yy==0&&xx==i)
		{
			cout<<" 你  ";
		}
		else
		{
			cout<<"     ";
		}
	}
	cout<<endl;
	for(int i=max(yy-4,1);i<=yy+6;i++)
	{
		if(i<10)
		{
			cout<<"  "<<i<<":";
		}
		else if(i<100)
		{
			cout<<" "<<i<<":";
		}
		else if(i<1000)
		{
			cout<<i<<":";
		}
		for(int j=max(xx-10,1);j<=min(xx+10,100);j++)
		{
			out(i,j);
		}
		cout<<endl;
		
		if(i<10)
		{
			cout<<"  "<<i<<":";
		}
		else if(i<100)
		{
			cout<<" "<<i<<":";
		}
		else if(i<1000)
		{
			cout<<i<<":";
		}
		for(int j=max(xx-10,1);j<=min(xx+10,100);j++)
		{
			out(i,j);
		}
		cout<<endl;
	}
}
void sellprint(int x){
	if(x==0){
		cout<<"选择石头 ";
	}
	else cout<<"石"<<backpack[0]<<" ";
	if(x==1){
		cout<<"选择煤炭 ";
	}
	else cout<<"煤"<<backpack[1]<<" ";
	if(x==2){
		cout<<"选择铁矿 ";
	}
	else cout<<"铁"<<backpack[2]<<" ";
	if(x==3){
		cout<<"选择铝矿 ";
	}
	else cout<<"铝"<<backpack[3]<<" ";
	if(x==4){
		cout<<"选择铜矿 ";
	}
	else cout<<"铜"<<backpack[4]<<" ";
	if(x==5){
		cout<<"选择锡矿 ";
	}
	else cout<<"锡"<<backpack[5]<<" ";
	if(x==6){
		cout<<"选择银矿 ";
	}
	else cout<<"银"<<backpack[6]<<" ";
	if(x==7){
		cout<<"选择金矿 ";
	}
	else cout<<"金"<<backpack[7]<<" ";
	if(x==8){
		cout<<"选择祖绿 ";
	}
	else cout<<"绿"<<backpack[8]<<" ";
	if(x==9){
		cout<<"选择水晶 ";
	}
	else cout<<"晶"<<backpack[9]<<" ";
	if(x==10){
		cout<<"选择石油 ";
	}
	else cout<<"油"<<backpack[10]<<" ";
	if(x==11){
		cout<<"选择钻石 ";
	}
	else cout<<"钻"<<backpack[11]<<" ";
	if(x==12){
		cout<<"选择合金 ";
	}
	else cout<<"合"<<backpack[12]<<" ";
	if(x==13){
		cout<<"选择电石 ";
	}
	else cout<<"电"<<backpack[13]<<" ";
	if(x==14){
		cout<<"选择气石 ";
	}
	else cout<<"气"<<backpack[14]<<" ";
	if(x==15){
		cout<<"选择明铁 ";
	}
	else cout<<"明"<<backpack[15]<<endl;
}
void sell(){
	char c;
	int ch=1;
	sellprint(ch);
	cin>>c;
	while(c!='y')
	{
		switch(c)
		{
			case 'a':if(ch!=0){ch--;}break;
			case 'd':if(ch!=15){ch++;}break;
			case 's':for(int i=0;i<=15;i++){money+=backpack[i]*price[i],backpack[i]=0;}cout<<"兑换成功"<<endl;return ;
		}
		sellprint(ch);
		cin>>c;
	}
	cout<<"兑换成功"<<endl;
	money+=backpack[ch]*price[ch];
	backpack[ch]=0;
}
void buyprint(int x){
	if(x==0)
	{
		cout<<"选择面包 ";
	}
	else
	{
		cout<<"面包"<<bprice[0];
	}
	cout<<endl;
}
void buy(){
	char c;
	int ch=0;
	buyprint(ch);
	cin>>c;
	while(c!='y')
	{
		switch(c)
		{
			case 'a':if(ch!=0){ch--;}break;
			case 'd':if(ch!=0){ch++;}break;
		}
		buyprint(ch);
		cin>>c;
	}
	int num;
	cin>>num;
	if(money>=num*bprice[ch])
	{
		money-=num*bprice[ch];
		backpack[ch+16]+=num;
		cout<<"购买成功"<<endl;
		return ;
	}
	else
	{
		cout<<"余额不足"<<endl;
		return ;
	}
}
void make(){
	
	for(int i=0;i<=13;i++){
		for(int j=1;j<=10;j++){
			for(int k=1;k<=100;k++){
				if(i==0){
					int x=rand()%1000;
					if(x<100)
					{
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<130)
					{
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<140)
					{
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<145)
					{
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<147)
					{
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<148)
					{
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<149)
					{
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<150)
					{
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
				if(i==1){
					int x=rand()%1000;
					if(x<100)
					{
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<150)
					{
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<180)
					{
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<195)
					{
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<205)
					{
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<210)
					{
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<211)
					{
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<212)
					{
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else if(x<213)
					{
						g[i*10+j][k].type=9;
						g[i*10+j][k].hard=20;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
				if(i==2){
					int x=rand()%1000;
					if(x<100)
					{
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<150)
					{
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<200)
					{
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<230)
					{
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<250)
					{
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<260)
					{
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<265)
					{
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<266)
					{
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else if(x<267)
					{
						g[i*10+j][k].type=9;
						g[i*10+j][k].hard=20;
					}
					else if(x<268)
					{
						g[i*10+j][k].type=10;
						g[i*10+j][k].hard=22;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
				if(i==3){
					int x=rand()%1000;
					if(x<100)
					{
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<150)
					{
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<190)
					{
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<230)
					{
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<260)
					{
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<280)
					{
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<300)
					{
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<310)
					{
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else if(x<315)
					{
						g[i*10+j][k].type=9;
						g[i*10+j][k].hard=20;
					}
					else if(x<316)
					{
						g[i*10+j][k].type=10;
						g[i*10+j][k].hard=22;
					}
					else if(x<317)
					{
						g[i*10+j][k].type=11;
						g[i*10+j][k].hard=24;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
				if(i==4){
					int x=rand()%1000;
					if(x<80){
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<130){
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<170){
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<210){
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<250){
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<270){
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<290){
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<310){
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else if(x<320){
						g[i*10+j][k].type=9;
						g[i*10+j][k].hard=20;
					}
					else if(x<325){
						g[i*10+j][k].type=10;
						g[i*10+j][k].hard=22;
					}
					else if(x<330){
						g[i*10+j][k].type=11;
						g[i*10+j][k].hard=24;
					}
					else if(x<331){
						g[i*10+j][k].type=12;
						g[i*10+j][k].hard=26;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
				if(i==5){
					int x=rand()%1000;
					if(x<50){
						g[i*10+j][k].type=1;
						g[i*10+j][k].hard=4;
					}
					else if(x<80){
						g[i*10+j][k].type=2;
						g[i*10+j][k].hard=6;
					}
					else if(x<110){
						g[i*10+j][k].type=3;
						g[i*10+j][k].hard=8;
					}
					else if(x<140){
						g[i*10+j][k].type=4;
						g[i*10+j][k].hard=10;
					}
					else if(x<170){
						g[i*10+j][k].type=5;
						g[i*10+j][k].hard=12;
					}
					else if(x<200){
						g[i*10+j][k].type=6;
						g[i*10+j][k].hard=14;
					}
					else if(x<230){
						g[i*10+j][k].type=7;
						g[i*10+j][k].hard=16;
					}
					else if(x<260){
						g[i*10+j][k].type=8;
						g[i*10+j][k].hard=18;
					}
					else if(x<280){
						g[i*10+j][k].type=9;
						g[i*10+j][k].hard=20;
					}
					else if(x<295){
						g[i*10+j][k].type=10;
						g[i*10+j][k].hard=22;
					}
					else if(x<310){
						g[i*10+j][k].type=11;
						g[i*10+j][k].hard=24;
					}
					else if(x<315){
						g[i*10+j][k].type=12;
						g[i*10+j][k].hard=26;
					}
					else
					{
						g[i*10+j][k].type=0;
						g[i*10+j][k].hard=4;
					}
				}
			}
		}
	}
}
int main()
{
	srand(time(NULL));
	make();
	print();
	for(int i=1;i<=100;i++)
	{
		g[0][i].type=-1;
		g[0][i].hard=0;
	}
	while(1)
	{
		char c;
		cin>>c;
		switch(c)
		{
			case 'w':if(yy!=0){
				if(g[yy-1][xx].hard<=strong){
					yy--;
					backpack[g[yy][xx].type]++;
					g[yy][xx].type=-1;
					g[yy][xx].hard=0;
					hunger--;
				}
				else
				{
					g[yy-1][xx].hard-=strong;
					hunger--;
				}
				if(yy==0){
					hunger=100;
				}
			}
			break;
			case 's':
				if(g[yy+1][xx].hard<=strong){
					yy++;
					backpack[g[yy][xx].type]++;
					g[yy][xx].type=-1;
					g[yy][xx].hard=0;
					hunger--;
				}
				else
				{
					g[yy+1][xx].hard-=strong;
					hunger--;
				}
			if(yy==0){
				hunger=100;
				
			}
			break;
			case 'a':if(xx!=0){
				
				if(g[yy][xx-1].hard<=strong){
					xx--;
					backpack[g[yy][xx].type]++;
					g[yy][xx].type=-1;
					g[yy][xx].hard=0;
					hunger--;
				}
				else
				{
					g[yy][xx-1].hard-=strong;
					hunger--;
				}
				if(yy==0){
					hunger=100;
				}
				
			}
			break;
			case 'd':
				if(g[yy][xx+1].hard<=strong){
					xx++;
					backpack[g[yy][xx].type]++;
					g[yy][xx].type=-1;
					g[yy][xx].hard=0;
					hunger--;
				}
				else
				{
					g[yy][xx+1].hard-=strong;
					hunger--;
				}
				if(yy==0){
					hunger=100;
				}
				break;
			case 'm':sell();break;
			case 'e':make(),g[yy][xx].type=-1,g[yy][xx].hard=0,hunger-=20;break;
			case 'b':buy();break;
			case 'c':if(backpack[16]!=0){hunger+=25;backpack[16]--;}break;
			case 'u':if(money>=upgradeprice){money-=upgradeprice;
                        strong++;upgradeprice*=2;}break;
		}
		if(hunger<=0)
		{
			cout<<"你死了";
			return 0;
		}
		print();
	}
	return 0;
}









