我试图在路径寻找脚本(javascript)上添加间隙计算。
我真的不知道如何以编程方式实现这一目标......
我使用的是AStar脚本,所以我有一个带有这样的图块的双维数组:
[
[0,0,0,0,0,1],
[0,1,0,1,1,1],
[0,1,1,1,0,1],
[1,1,1,0,0,1],
[1,1,0,1,0,1],
[1,0,0,0,0,1]
]
这里,0表示"墙",1表示"路径"。 1是默认间隙。
如何循环每个图块(从左上角到右下角计算)以获得最大间隙,如此方案中所示:
https://aigamedev.com/open/tutorials/clearance-based-pathfinding/#TheTrueClearanceMetric
唯一的问题是"循环格式",我需要测试当前磁贴是0还是1,以存储最大间隙
非常感谢!
修改
对于那些无法看到网站的人,我的意思是一些方案:
计算清除的步骤
完整结果的示例
答案 0 :(得分:0)
您仍然需要外部嵌套for循环来遍历每个正方形,如jsfiddle.net/uctsf755代码,但在每个正方形内,您要进行宽度优先搜索以找到最近的墙。一旦你找到一个,你可以实际更新你沿途看到的所有方块,因为与这些方块最近的墙将是同一面墙。记住你去过哪些,所以你不必再对它们进行bfs。
总复杂度将在O(n ^ 2)左右,因为您应该只访问每个方块一次。
祝你好运!