Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
用于寻路清除的Javascript循环_Javascript_Loops_Path Finding_A Star - Fatal编程技术网

用于寻路清除的Javascript循环

用于寻路清除的Javascript循环,javascript,loops,path-finding,a-star,Javascript,Loops,Path Finding,A Star,我试图在寻路脚本(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是默认间隙 如何在每个瓷砖上循环(从左上到右下计算)以获得其

我试图在寻路脚本(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是默认间隙

如何在每个瓷砖上循环(从左上到右下计算)以获得其最大间隙,如本方案所示:

唯一的问题是“循环格式”,我需要测试当前磁贴是0还是1,以存储最大间隙

非常感谢

编辑

对于那些看不到网站的人,我的意思是:

结石清除的步骤

完整结果的示例


您仍然需要外部的嵌套for循环集才能像代码中一样穿过每个正方形,但在每个正方形内,您希望进行广度优先搜索以找到最近的墙。一旦你找到了一个,你就可以实际更新沿途看到的所有方块,因为离这些方块最近的墙就是同一堵墙。记住你访问过哪些网站,这样你就不必再对它们进行bfs了

总的复杂度大约为O(n^2),因为你应该只访问每个广场一次


祝你好运

您仍然需要嵌套for循环的外部集合通过每个正方形,就像在代码中一样,但在每个正方形中,您希望进行广度优先搜索以定位最近的墙。一旦你找到了一个,你就可以实际更新沿途看到的所有方块,因为离这些方块最近的墙就是同一堵墙。记住你访问过哪些网站,这样你就不必再对它们进行bfs了

总的复杂度大约为O(n^2),因为你应该只访问每个广场一次


祝你好运

我无法访问该站点。看起来一对嵌套的for循环就足够了?到目前为止你都做了些什么?奇怪的是,这个网站运行得很好(在谷歌上找到的,我不是所有者)。我没有什么可以给你的,我试了一些循环中的循环中的循环。。。但这对我来说是一个突破:/我不确定我使用的AStar代码是否有用。。我将发布一张我试图实现的图片:)你在这方面工作多久了?这可能需要几天或几周的时间,但我建议你继续努力自己解决它。这当然不是小事,但也不是不可能,你会从工作中获得很多知识。好吧,我找到了一种方法:但有没有更优化的方法?例如,每个对角线都测试了两次……仍然有点困惑数字的含义是什么?看起来曼哈顿离最近的墙有一段距离,但在一些墙的旁边就有'3',我无法进入那个网站。看起来一对嵌套的for循环就足够了?到目前为止你都做了些什么?奇怪的是,这个网站运行得很好(在谷歌上找到的,我不是所有者)。我没有什么可以给你的,我试了一些循环中的循环中的循环。。。但这对我来说是一个突破:/我不确定我使用的AStar代码是否有用。。我将发布一张我试图实现的图片:)你在这方面工作多久了?这可能需要几天或几周的时间,但我建议你继续努力自己解决它。这当然不是小事,但也不是不可能,你会从工作中获得很多知识。好吧,我找到了一种方法:但有没有更优化的方法?例如,每个对角线都测试了两次……仍然有点困惑数字的含义是什么?看起来曼哈顿离最近的墙很近,但有些墙旁边就有'3'