c语言实现推箱子游戏,求详细思路,谢谢

游戏说明:玩家通过键盘录入 w,s,a,d控制小人向不同方向移动,
其中w代表向上移动,s代表向下移动,a代表向左移动,d 代表向右移动,
当小人在箱子后面的时候可以推着箱子向前移动,当箱子移动到出口的位置,玩家胜利

 地图如下:

    ##########
    #O ####  #
    # X####  #
    #        #
    ######   #
    #  ####  #
    #        #
    #   ######
    #
    ##########

    说明: # 代表墙, O代表小人 ,' ' 代表路, X代表箱子

5个回答

cheng3656aaa
cheng3656aaa 写的真长啊 ,虽然看不懂,但还是觉得很牛逼啊. 佩服
4 年多之前 回复
cheng3656aaa
cheng3656aaa 写的真长啊 ,虽然看不懂,但还是觉得很牛逼啊. 佩服
4 年多之前 回复
fandyvon
寒江独
4 年多之前 回复
fandyvon
寒江独
4 年多之前 回复
fandyvon
寒江独
4 年多之前 回复

二维数组描述游戏网格, 每个网格对应四种状态.

= 2 , O = 1 ,' ' = 0 , X = 3 , 出口 = 4

w,s,a,d 当前小人位置为a[i][j],
以w键为例:
判断a[i+1][j]的值
如果是2,return;
如果是0or4, [i][j] = 0, a[++i][j] = 1, 刷新显示;
如果是3, a[i][j] = 0, 判断a[i+2][j]的值,
如果是4, a[++i][j] = 1, a[i+1][j] = 3, 胜利
如果是0, a[++i][j] = 1, a[i+1][j] = 3 , 刷新显示

u010799934
snys98 一发出来,排版乱完了....
4 年多之前 回复

推箱子其实关键就是碰撞判断,楼上的代码啊都不错

Word文档,非常牛逼详细的教程http://pan.baidu.com/s/1boWDYWJ

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!