我做的一个挖矿小游戏,后面会改进一些读入与输出,有建议的话记得评论区留言。
上代码:
#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; }