重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍C++实现推箱子游戏的案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联公司主营周宁网站建设的网络公司,主营网站建设方案,成都App定制开发,周宁h5微信小程序搭建,周宁网站营销推广欢迎周宁等地区企业咨询C++实现简单推箱子的具体代码具体内容如下
游戏演示
代码展示
#include#include #include int main(int argc,const char*argv[]) { int cut=0; int a[8][8]={ {0,0,3,3,3,3,0,0}, {0,0,3,5,5,3,0,0}, {0,0,3,0,5,3,0,0}, {0,3,0,0,4,5,3,0}, {3,3,0,4,0,0,3,3}, {3,0,0,3,4,4,0,3}, {3,0,0,2,0,0,0,3}, {3,3,3,3,3,3,3,3}}; int x=6,y=3; for(;;) { int cunt=0; system("clear"); for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { if(a[i][j]==9) { cunt++; } switch(a[i][j]) { case 0:printf(" ");break; case 2:printf("@ ");break;//人 case 3:printf("# ");break;//墙 case 4:printf("$ ");break;//箱子 case 5:printf("o ");break;//目标位置 case 7:printf("@ ");break; case 9:printf("$ ");break; } } printf("\n"); } if(4==cunt) { printf("成功\n步数:%d",cut); return 0; } //根据数据的大小来判断当前的坐标上的情况 switch(getch()) { case 183: if(0!=x&&3==a[x-1][y]) { a[x][y]=2; } else if(5==a[x-1][y]||0==a[x-1][y]) { a[x][y]-=2; a[x-1][y]+=2; x--; cut++; } else if((5==a[x-2][y]||0==a[x-2][y])&&(4==a[x-1][y]||9==a[x-1][y])) { a[x-2][y]+=4; a[x-1][y]-=4; a[x-1][y]+=2; a[x][y]-=2; x--;cut++; }break; case 184: if(0!=x&&3==a[x+1][y]) { a[x][y]=2; } else if((5==a[x+1][y])||(0==a[x+1][y])) { a[x][y]-=2; a[x+1][y]+=2; x++;cut++; } else if((5==a[x+2][y]||0==a[x+2][y])&&(4==a[x+1][y]||9==a[x+1][y])) { a[x+2][y]+=4; a[x+1][y]-=4; a[x+1][y]+=2; a[x][y]-=2; x++;cut++; }break; case 185: if(0!=x&&3==a[x][y+1]) { a[x][y]=2; } else if(5==a[x][y+1]||0==a[x][y+1]) { a[x][y]-=2; a[x][y+1]+=2; y++;cut++; } else if((0==a[x][y+2]||5==a[x][y+2])&&(4==a[x][y+1]||9==a[x][y+1])) { a[x][y+2]+=4; a[x][y+1]-=4; a[x][y+1]+=2; a[x][y]-=2; y++;cut++; }break; case 186: if(0!=x&&3==a[x][y-1]) { a[x][y]=2; } else if(5==a[x][y-1]||0==a[x][y-1]) { a[x][y]-=2; a[x][y-1]+=2; y--;cut++; } else if((0==a[x][y-2]||5==a[x-1][y])&&(4==a[x][y-1]||9==a[x][y-1])) { a[x][y-2]+=4; a[x][y-1]-=4; a[x][y-1]+=2; a[x][y]-=2; y--;cut++; }break; } } }