我试图在路径查找脚本(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,以存储最大间隙。
非常感谢!
编辑
对于那些看不见网站的人来说,我的意思是:
计算间隙的步骤

完整结果的示例

发布于 2015-07-23 02:25:33
您仍然需要嵌套的外部for循环集来遍历每个正方形,就像在您的/uctsf755 755代码中一样,但是在每个方块中,首先要进行宽度搜索,以找到最近的墙。一旦你找到一个,你实际上可以更新所有的方块,你已经看了沿途,因为最近的墙与这些广场将是同一堵墙。记住你访问过的是哪些,这样你就不用再对它们做bfs了。
总复杂度将在O(n^2)左右,因为您应该只访问每个广场一次。
祝好运!
https://stackoverflow.com/questions/31533965
复制相似问题