Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何打印迷宫中从源到目标的BFS路径(或如何获得第一步)?_C_Graph_Path Finding_Maze - Fatal编程技术网

C 如何打印迷宫中从源到目标的BFS路径(或如何获得第一步)?

C 如何打印迷宫中从源到目标的BFS路径(或如何获得第一步)?,c,graph,path-finding,maze,C,Graph,Path Finding,Maze,这是一个与你帮助我很多的另一个问题相关的问题 我的新问题是,有没有办法将找到的路径从源单元格打印到目标单元格?或者,有没有一种方法可以只从pred中获得第一步,而不迭代所有步骤 在我在另一个问题中得到的(非常有用)答案中,有人建议我获得从目标到源的路径,这非常有用,但为了改进我的代码,我选择了从源到目标的路径 我的问题是,我正试图编写一个类似流氓的游戏,我必须告诉一个怪物他的下一步行动是哪一步,我认为迭代所有pred数组以获得一步行动是浪费资源 提前感谢您的帮助。现在您已经绘制了路径,请在怪物旁

这是一个与你帮助我很多的另一个问题相关的问题

我的新问题是,有没有办法将找到的路径从
单元格打印到
目标
单元格?或者,有没有一种方法可以只从
pred
中获得第一步,而不迭代所有步骤

在我在另一个问题中得到的(非常有用)答案中,有人建议我获得从
目标
的路径,这非常有用,但为了改进我的代码,我选择了从
目标
的路径

我的问题是,我正试图编写一个类似流氓的游戏,我必须告诉一个怪物他的下一步行动是哪一步,我认为迭代所有
pred
数组以获得一步行动是浪费资源


提前感谢您的帮助。

现在您已经绘制了路径,请在怪物旁边查找下一个
*

if (G->nodes[T.row + A][T.col + B] == '*') {
    //kept for my sanity: pred[G->T.row*G->col + G->T.col]

    doMove(); //don't forget to change the '*' into 'T', then the old spot to ' '
}
要向上移动,请选中
a=-1;B=0
。要向下移动,请选中offsetA=1;偏移量b=0。右:
A=0;B=-1,左:
A=0;B=1

因为您的映射非常简单,而且分支不太远,所以我建议您选择一种更快的算法。BFS倾向于搜索最近的路径,对于长路径不是很有效。Djikstra是BFS的更好实现,允许将成本分配给边缘。A*是游戏中使用的最佳搜索,因为它是Djikstra的算法,在没有障碍的情况下,通过利用目标知识来加速(收敛更快)