C++实现简单推箱子小游戏
本文实例为大家分享了C++实现简单推箱子的具体代码,供大家参考,具体内容如下
游戏演示
代码展示
#include#include #include intmain(intargc,constchar*argv[]) { intcut=0; inta[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}}; intx=6,y=3; for(;;) { intcunt=0; system("clear"); for(inti=0;i<8;i++) { for(intj=0;j<8;j++) { if(a[i][j]==9) { cunt++; } switch(a[i][j]) { case0:printf("");break; case2:printf("@");break;//人 case3:printf("#");break;//墙 case4:printf("$");break;//箱子 case5:printf("o");break;//目标位置 case7:printf("@");break; case9:printf("$");break; } } printf("\n"); } if(4==cunt) { printf("成功\n步数:%d",cut); return0; } //根据数据的大小来判断当前的坐标上的情况 switch(getch()) { case183: if(0!=x&&3==a[x-1][y]) { a[x][y]=2; } elseif(5==a[x-1][y]||0==a[x-1][y]) { a[x][y]-=2; a[x-1][y]+=2; x--; cut++; } elseif((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; case184: if(0!=x&&3==a[x+1][y]) { a[x][y]=2; } elseif((5==a[x+1][y])||(0==a[x+1][y])) { a[x][y]-=2; a[x+1][y]+=2; x++;cut++; } elseif((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; case185: if(0!=x&&3==a[x][y+1]) { a[x][y]=2; } elseif(5==a[x][y+1]||0==a[x][y+1]) { a[x][y]-=2; a[x][y+1]+=2; y++;cut++; } elseif((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; case186: if(0!=x&&3==a[x][y-1]) { a[x][y]=2; } elseif(5==a[x][y-1]||0==a[x][y-1]) { a[x][y]-=2; a[x][y-1]+=2; y--;cut++; } elseif((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++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
java经典小游戏汇总
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。