C语言实现推箱子游戏完整代码 (3)

如果这个理解的话,代码就非常简单了

void movew(){ if(x>0){ if(screen[x-1][y]==1){ return ;/*如果箱子的上面是墙,则地图不会发生变化,因为 推不动嘛*/ }else if(screen[x-1][y]==0){ screen[x-1][y]+=3; screen[x][y]-=3; x--;/*如果前面是空地,则需要向前移动一格,也就是原先人的位置 变成空地,前方的空地变成人,空地(0)变成人(3)需要加3, 人变成空地需要减3*/ }else if(screen[x-1][y]==4){ screen[x-1][y]+=3; screen[x][y]-=3; x--; }//一样的 else if(screen[x-1][y]==2||screen[x-1][y]==6){ if(screen[x-2][y]==0){ screen[x-2][y]+=2;//箱子前面的格变成箱子(2) screen[x-1][y]+=1;//箱子的位置变成人(3) screen[x][y]-=3;/*如果前面是空地,则需要向前移动 一格,也就是原先是箱子的格子变成人,人的位置变成空 地,原先的空地变成箱子,箱子(2)变成人(3)需要减 3,空地变成人*/ x--; }else if(screen[x-2][y]==1){ return ; }else if(screen[x-2][y]==2){ return;//如果箱子的前面是墙或者其他的箱子,则箱子推不动 }else if(screen[x-2][y]==4){ screen[x-2][y]+=2; screen[x-1][y]+=1; screen[x][y]-=3; x--; }//这个情况别漏了 } } }

其他三个方向的代码思路和这个是一样的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxgfs.html