c语言实现推箱子
——(经典推箱子第十三关,无图形界面,采用WASD操纵)
问题总结
- 事先未确切地分析需求,因此耗费了大量去理稀里糊涂的逻辑
- 稍不留神就忘了给某些位置加上==&用来取位置==
- 还未确切搞懂头文件的意义,因此形式大于作用
- static关键字还需理解
- 同种枚举类型两个文件只能定义一次
- 对于下个点是箱子的情况讨论要注意,目标点备份时也要注意
逻辑实现
人可能面对的情况
- 墙(不能走)
- 箱子:箱子>>箱子(不能动),箱子>>墙(不能动),箱子>>目标&箱子(不能走),箱子>>目标(能走),箱子>>空地(能走)
- 空地(直接走)
- 目标(直接走)
- 目标&箱子(与箱子情况类似)
每走一步需要的操作
- 修正人物离开后该点的元素(用2中的元素备份修正)
- 记录人物即将到达的点的元素
- (将箱子移动到下个点,只有前边是箱子时需要移动)
- 将人物移动到下个点
- 返回移动后人物的位置
代码
main.c文件
#include <stdlib.h>
#include "move.h"
#include <stdio.h>
//定义数组存储地图
int map[

最低0.47元/天 解锁文章
6228

被折叠的 条评论
为什么被折叠?



