变态推箱子,求助,是不是设计失误
答案:2 悬赏:10 手机版
解决时间 2021-01-29 13:28
- 提问者网友:不要迷恋哥
- 2021-01-29 02:17
变态推箱子,求助,是不是设计失误
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-01-29 02:42
把地图抽象成二维数组,当需要判断人是否能过去的时候,必定知道人的当前坐标和目标坐标,然后用广探法求解。广探法具体思路如下:
创建一个存储行列坐标的数据结构POS,
创建一个POS队列queue,初始为空(有关队列的知识请自行baidu),
构造一个函数bool canGo(POS,direction),能够实现判断从给定pos是否可以向direction方向前进一步,比如pos是(1,2),direction是向左,那么目标pos就是(1,1),这时候判断一下(1,1)处是不是可行走路径即可
核心算法如下:
POS start(人的当前位置)
POS dst(目标位置)
bool go = false;
queue.push(start)
while(!queue,empty()):
if tmp==dst:
go = true
break
POS tmp = queue.dequeue();
for i in range(四个方向):
if canGo(tmp,i):
POS next = 用方向去处理tmp,和上面的例子一样
queue.enqueue(next)
循环结束后,如果go是true,那么可以移动,反之不能
创建一个存储行列坐标的数据结构POS,
创建一个POS队列queue,初始为空(有关队列的知识请自行baidu),
构造一个函数bool canGo(POS,direction),能够实现判断从给定pos是否可以向direction方向前进一步,比如pos是(1,2),direction是向左,那么目标pos就是(1,1),这时候判断一下(1,1)处是不是可行走路径即可
核心算法如下:
POS start(人的当前位置)
POS dst(目标位置)
bool go = false;
queue.push(start)
while(!queue,empty()):
if tmp==dst:
go = true
break
POS tmp = queue.dequeue();
for i in range(四个方向):
if canGo(tmp,i):
POS next = 用方向去处理tmp,和上面的例子一样
queue.enqueue(next)
循环结束后,如果go是true,那么可以移动,反之不能
全部回答
- 1楼网友:野慌
- 2021-01-29 03:50
应该不是吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯