您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要介绍C++实现推箱子游戏的案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
C++实现简单推箱子的具体代码具体内容如下
游戏演示
代码展示
#include<stdio.h> #include<stdlib.h> #include<getch.h> 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; } } }
以上是C++实现推箱子游戏的案例的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。