我的世界

#include <iostream> // 5O2
#include <fstream>
#include <conio.h> // 6\3
#include <ctime> // 4
#include <windows.h> // how to dig
#define SWJHENW printf("\a");
using namespace std;
unsigned char a[256][500],c;
int hard[256][500];
int item[10];//S x D G C F f g W;
int x=2,y=3,ks1=1000,js1,ks_dig=1000,js_dig;
int g=0;
char ite,carft[3][4]={' ',' ',' ','\0',' ',' ',' ','\0',' ',' ',' ','\0'};
int breaak,unbreak;
bool b;
long long int tec;
int weizhi=0;
int check()
{
int i;
for(i=1;i<=g;i++)
{
if(a[x+i][y]!=' ') {g=0;break;}
}
g++;
return i-1;
}

int block_hard(char gjf)
{
switch(gjf)
{
case 'S':return 12;
case 'x':return 14;
case 'D':
case 'G':return 5;
case 'W':return 7;
default:return 0;
}
}

void block_GET(char gjf)
{
switch(gjf)
{
case 'S':item[0]++;break;
case 'x':item[1]++;break;
case 'D':item[2]++;break;
case 'G':item[3]++;break;
case 'g':item[7]++;break;
case 'W':item[8]++;break;
}
}

int block_item(char gjf)
{
switch(gjf)
{
case 'S':return 0;
case 'x':return 1;
case 'D':return 2;
case 'G':return 3;
case 'g':return 7;
case 'W':return 8;
default:return 0;
}
}
void use()
{
if(tec%2==1) cout<<"你有熔炉科技\n";
else return;
cout<<"你选择 1:熔炉科技\n";
int nnn;
cin>>nnn;
switch(nnn)
{
case 1:
for(;;)
{
printf("石头:%d 矿石:%d 草方块:%d 泥土:%d 草木灰:%d 生铁:%d 熟铁:%d 钢铁:%d\n",item[0],item[1],item[3],item[2],item[4],item[5],item[6],item[7]); cout<<"填充燃料G\n"<<"你有"<<item[3]<<"个。";
cout<<"你要放几个?\n";
int fuel;
cin>>fuel;
if(fuel==0||item[3]<fuel) return;
item[3]-=fuel;
cout<<"填充燃烧物\n";
cin>>ite;
if(ite=='G') {cout<<"你获得了"<<fuel+1<<"个草木灰\n";item[4]+=fuel+1;fuel=0;}
if(ite=='x')
{
cout<<"请放入碳\n";
if(item[4]>0) {item[4]--;cout<<"获得生铁\n";item[4]+=fuel;item[5]++;}
else cout<<"你没有碳\n";
Sleep(500);
}
if(ite=='F')
{
printf("石头:%d 矿石:%d 草方块:%d 泥土:%d 草木灰:%d 生铁:%d 熟铁:%d 钢铁:%d\n",item[0],item[1],item[3],item[2],item[4],item[5],item[6],item[7]); cout<<"填充燃料G\n"<<"你有"<<item[3]<<"个。";
cout<<"制作熟铁 1\\炼钢 2\n";
int ds;
cin>>ds;
if(ds==1&&item[5]!=0)
{
item[4]+=fuel;
item[5]--;
item[6]++;
cout<<"熟铁制作成功";
Sleep(500);
}
else
{
if(item[6]<0) cout<<"你没有熟铁\n";
else
{
item[6]--;
item[5]--;
item[7]+=2;
item[4]+=fuel;
cout<<"冶炼成功\n"; 

Sleep(500);
}
}
b=true;
}
break;
default: return;

return;
}
void carfting()
{
system("cls"); 
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE |FOREGROUND_INTENSITY);
printf("合成吧!\n输入你放物品的x、y然后输入物品\n0,0:结束;\n0,1,x,y:移走一个\n\n");
printf("-1-2-3-\n");
printf("1%c|%c|%c|\n",carft[0][0],carft[0][1],carft[0][2]);
printf("-------\n");
printf("2%c|%c|%c|\n",carft[1][0],carft[1][1],carft[1][2]);
printf("-------\n");
printf("3%c|%c|%c|\n",carft[2][0],carft[2][1],carft[2][2]);
printf("-------\n");
int itex=1,itey=1;
//cin>>itex>>itey;
//if(itex==0&&itey==0) return;

while(itex!=0||itey!=0)
{
cin>>itex>>itey;
if(itex==0&&itey==0)
{
b=true;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN |FOREGROUND_INTENSITY);
system("cls");

return;
}
if(itex==0&&itey==1) 
{
cin>>itex>>itey;
item[block_item(carft[itex-1][itey-1])]++;
carft[itex-1][itey-1]=' ';
}
else 
{
cin>>ite;
if(item[block_item(ite)]>0&&carft[itex-1][itey-1]==' ') {carft[itex-1][itey-1]=ite;item[block_item(ite)]--;}
}
system("cls");
printf("石头S:%d 矿石x:%d 草方块G:%d 泥土D:%d 钢g:%d\n",item[0],item[1],item[3],item[2],item[7]);
printf("-1-2-3-\n");
printf("1%c|%c|%c|\n",carft[0][0],carft[0][1],carft[0][2]);
printf("-------\n");
printf("2%c|%c|%c|\n",carft[1][0],carft[1][1],carft[1][2]);
printf("-------\n");
printf("3%c|%c|%c|\n",carft[2][0],carft[2][1],carft[2][2]);
printf("-------\n");
if(strcmp(carft[0],"SSS")==0&&strcmp(carft[1],"S S")==0&&strcmp(carft[2],"SSS")==0)
{
cout<<"科技 熔炉\n";
char t;
cin>>t;
if(t=='Y') 
{
for(int i=0;i<3;i++) for(int j=0;j<3;j++) carft[i][j]=' ';
if(tec%2==0) tec++;
}
}
if(strcmp(carft[0],"gg ")==0&&strcmp(carft[1]," W ")==0&&strcmp(carft[2]," W ")==0)
{
cout<<"科技 耕地\n";
char t;
cin>>t;
if(t=='Y') 
{
for(int i=0;i<3;i++) for(int j=0;j<3;j++) carft[i][j]=' ';
if((tec/2)%2==0) tec+=2;
}
}
}
return;
}
struct crea
{
int kind;

};
crea creatre;
int main()
{
srand(time(0));
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE |FOREGROUND_INTENSITY);
printf("\t\t\tM I N E C R A F T 2D\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
printf("\t\t\t\t\t\tall by C++!\n\n\n\n\n\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
printf("\t\t\tPress any key to begin! a:creave s:survive\n\n\n\n\n\n\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_INTENSITY);
printf("\t\tZ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_INTENSITY);
printf("Q");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_INTENSITY);
printf("F ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
printf("m");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY);
printf("a");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
printf("d");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_INTENSITY);
printf("e");
char zz;
bool wzt;
x:
zz=getch();

switch(zz)
{
case 'a':wzt=true;break;
case 's':wzt=false;break;
default:goto x;
}
for(int j=0;j<500;j++)
{a[255][j]='J';a[0][j]='@';hard[0][j]=hard[255][j]=10000;}
for(int i=0;i<255;i++)
{hard[i][0]=hard[i][499]=(a[i][0]=a[i][499]='|')+10000;}
for(int i=1;i<255;i++) for(int j=1;j<499;j++) a[i][j]=' ';
int k=50;
for(int i=1;i<499;i++)
{
k+=rand()%3-1;
int yjt=rand()%8;
if(k<=0) k=1;
a[k][i]='G';
hard[k][i]=5;
if(yjt==0&&k>=5&&a[k-1][i-1]!='W')
{
for(int j=1;j<6;j++) 
{
a[k-j][i]='W';hard[k-j][i]=7;
if(j>=3) for(int t=1;t<7-j;t++) {if(a[k-j][i+t]==' ') {a[k-j][i+t]='G';hard[k-j][i+t]=5;}if(a[k-j][i-t]==' '){a[k-j][i-t]='G';hard[k-j][i-t]=5;}}
}
a[k-6][i]='G';
}
for(int j=k+1;j<k+4;j++) 
{
a[j][i]='D'; 
hard[j][i]=5;
}
for(int j=k+4;j<255;j++) 
{
switch(rand()%5)
{
case 0:a[j][i]='S';hard[j][i]=10;break;
case 1:a[j][i]='S';hard[j][i]=10;break;
case 2:a[j][i]='x';hard[j][i]=8;break;
case 3:a[j][i]='S';hard[j][i]=10;break;
case 4:a[j][i]='S';hard[j][i]=10;break;
}
}
}
int kk[8]={130,140,150,160,170,180,190,200};
for(int i=1;i<499;i++)
{
cout<<i<<" ";
for(int j=0;j<8;j++)
{
kk[j]+=rand()%3-1;
if(kk[j]<=0) kk[j]=1;
if(kk[j]>=251) kk[j]=250;
}
for(int jj=0;jj<8;jj++)
{
if ((a[kk[jj]+1][i-1]==' '||a[kk[jj]][i-1]==' '||a[kk[jj]-1][i-1]==' ')&&rand()%50!=0) //1
for (int j=kk[jj]+1;j<kk[jj]+4+rand()%2;j++) 

if(a[j][i]!='W') {a[j][i]=' '; 
hard[j][i]=0;}
}
else if (rand()%40==0)
for (int j=kk[jj]+1;j<kk[jj]+4;j++) 

if(a[j][i]!='W') {a[j][i]=' '; 
hard[j][i]=0;}
}
}
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN |FOREGROUND_INTENSITY);
y=rand()%498+1;
while(a[x+1][y]==' ') x++;
int l=0>y-30?0:y-30;
int r=499<y+30?499:y+30;
int d=0>x-18?0:x-18;
int u=255<x+18?255:x+18;
a[x][y]='$';
a[x-1][y]=1;
//system("color f0");
system("cls");
for(int i=d;i<=u;i++) 
{
for(int j=l;j<=r;j++) printf("%c",a[i][j]);
printf("\n");
}
item[0]=8;
item[1]=100;
item[2]=0;
item[3]=100;
item[4]=100;
for(;;)
{
b=false;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN |FOREGROUND_INTENSITY);
int timeover = 1;
int start = clock(); 
// while((timeover=(clock()-start<=1))&&!kbhit());
//如果有键按下或时间超过自动前进时间间隔则终止循环
// if(timeover){
// c=getch();
//b=true;
// }
if(kbhit()) c=getch();
else c='@';
js_dig=js1=clock();
b=false;
switch(c)
{
case 'a':
if(y>1&&a[x][y-1]==' '&&a[x-1][y-1]==' ') 
{
a[x][y]=a[x-1][y]=' ';
y--;b=true;
}
break;
case 'd':
if(y<499&&a[x][y+1]==' '&&a[x-1][y+1]==' ') 
{
a[x][y]=a[x-1][y]=' ';
y++;
b=true;
}
break;
case 'u':
use();break;
case 'p':
carfting();break;
case ' ':
if(a[x-2][y]==' ') {a[x-1][y]=a[x][y]=' ';x--;b=true;g=0;ks1=js1;c='@';}
break;
// default:
// if(a[x+1][y]==' '&&js1-ks1>500) {a[x][y]=a[x-1][y]=' ';x++;b=true;ks1=js1;}

}
int t=1;
switch(c)
{
case '1':
t=2;
while(t<=4&&a[x-t][y]==' ') t++;
if(a[x-t][y]!=' '&&a[x-t][y]!='@') 
{
if(hard[x-t][y]) {hard[x-t][y]--;breaak=hard[x-t][y];unbreak=block_hard(a[x-t][y]);break;}
block_GET(a[x-t][y]);a[x-t][y]=' ';b=true;ks_dig=js_dig;
}
break;
case '2':
t=1;
while(t<=4&&a[x-1][y+t]==' ') t++;
if(a[x-1][y+t]!=' '&&a[x-1][y+t]!='|') 
{
if(hard[x-1][y+t]) {hard[x-1][y+t]=0;breaak=hard[x-1][y+t];unbreak=block_hard(a[x-1][y+t]);break;}
block_GET(a[x-1][y+t]);a[x-1][y+t]=' ';b=true;ks_dig=js_dig;
}
break;
case '3':
t=1;
while(t<=4&&a[x][y+t]==' ') t++;
if(a[x][y+t]!=' '&&a[x-1][y+t]!='|') 
{
if(hard[x][y+t]) {hard[x][y+t]--;breaak=hard[x][y+t];unbreak=block_hard(a[x][y+t]);break;}
block_GET(a[x][y+t]);a[x][y+t]=' ';b=true;ks_dig=js_dig;
}
break;
case '4':
t=1;
while(t<=4&&a[x+t][y]==' ') t++;
if(a[x+t][y]!=' '&&a[x+t][y]!='J') 
{
if(hard[x+t][y]) {hard[x+t][y]--;breaak=hard[x+t][y];unbreak=block_hard(a[x+t][y]);break;}
block_GET(a[x+t][y]);a[x+t][y]=' ';b=true;ks_dig=js_dig;
}
break;
case '5':
t=1;
while(t<=4&&a[x-1][y-t]==' ') t++;
if(a[x-1][y-t]!=' '&&a[x-1][y-t]!='|') 
{
if(hard[x-1][y-t]) {hard[x-1][y-t]--;breaak=hard[x-1][y-t];unbreak=block_hard(a[x-1][y-t]);break;}
block_GET(a[x-1][y-t]);a[x-1][y-t]=' ';b=true;ks_dig=js_dig;
}
break;
case '6':
t=1;
while(t<=4&&a[x][y-t]==' ') t++;
if(a[x][y-t]!=' '&&a[x-1][y-t]!='|') 
{
if(hard[x][y-t]) {hard[x][y-t]--;breaak=hard[x][y-t];unbreak=block_hard(a[x][y-t]);break;}
block_GET(a[x][y-t]);a[x][y-t]=' ';hard[x][y-t]=0;b=true;ks_dig=js_dig;
}
break; 
case 27: 
char finame[13];
int ttt=time(0);
finame[0]=ttt/int(1e9)+48;
finame[1]=ttt/int(1e8)%10+48;
finame[2]=ttt/int(1e7)%10+48;
finame[3]=ttt/int(1e6)%10+48;
finame[4]=ttt/int(1e5)%10+48;
finame[5]=ttt/int(1e4)%10+48;
finame[6]=ttt/int(1e3)%10+48;
finame[7]=ttt/int(1e2)%10+48;
finame[6]=ttt/int(1e1)%10+48;
finame[7]=ttt%10+48;
finame[8]='.';
finame[9]='t';
finame[10]='x';
finame[11]='t';
finame[12]='\0';
ofstream fout(finame);
l=0>y-30?0:y-30;
r=499<y+30?499:y+30;
d=0>x-18?0:x-18;
u=255<x+18?255:x+18;
a[x][y]='$';
a[x-1][y]='@';
unsigned char pic[50][62];
for(int i=d;i<=u;i++) 
{
int j;
for(j=l;j<=r;j++) 
{
pic[i-d][j-l]=a[i][j];
}
pic[i-d][j-l]='\0';
fout<<pic[i-d]<<endl;
}
fout<<"foot:x="<<y<<" y="<<255-x<<"\n";
fout<<"石头:"<<item[0]<<" 矿石:"<<item[1]<<" 草方块:"<<item[3]<<" 泥土:"<<item[2]<<" 草木灰:"<<item[4]<<" 生铁:"<<item[5]<<" 熟铁:"<<item[6]<<" 钢铁:"<<item[7]<<"木材"<<item[8]<<"\n";
a[x][y]='$';
a[x-1][y]=1;
fout.close();
break;
}
if(a[x+1][y]!=' ') ks1=js1,g=0;
else if(!g) g=1;
if(c!='4') ks_dig=js_dig;
if(g&&js1-ks1>(500/g)) {a[x][y]=a[x-1][y]=' ';x++;g++;b=true;ks1=js1;}
int l=0>y-30?0:y-30;
int r=499<y+30?499:y+30;
int d=0>x-18?0:x-18;
int u=255<x+18?255:x+18;
a[x][y]='$';
a[x-1][y]=1;
if(b)

system("cls"); 
unsigned char pic[50][62];
for(int i=d;i<=u;i++) 
{
int j;
for(j=l;j<=r;j++) 
{
pic[i-d][j-l]=a[i][j];
}
pic[i-d][j-l]='\0';
printf("%s\n",pic[i-d]);
}
printf("foot:x=%d y=%d\n",y,255-x);
printf("石头:%d 矿石:%d 草方块:%d 泥土:%d 草木灰:%d 生铁:%d 熟铁:%d 钢铁:%d 木材:%d\n",item[0],item[1],item[3],item[2],item[4],item[5],item[6],item[7],item[8]);
}
printf("\r%d\\%d ",unbreak-breaak,unbreak);
}
return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值