Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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 矩阵岛生成算法JS_Javascript_Algorithm_Matrix - Fatal编程技术网

Javascript 矩阵岛生成算法JS

Javascript 矩阵岛生成算法JS,javascript,algorithm,matrix,Javascript,Algorithm,Matrix,我试图找出如何在0s的海洋中生成1s的随机岛,这是一个有点像战舰的游戏。我最初的想法是计算给定条件下的邻居数量。例如,大小为1的岛屿没有邻居。2的孤岛对于每个单元只有一个邻居。然后我想也许我可以递归地检查每个新的细胞是否接触到一个现有的岛 然后,我调查了现有的解决方案,结果发现,找到这样的岛屿是一个相当标准的算法问题,通过深度优先搜索解决 然而,产生这种岛屿的问题没有很好的记录。例如,如果我想要1个单元格的2个岛,2个单元格的2个岛和3个单元格的1个岛,我将如何处理 为了证明最初的劳动,我构建了

我试图找出如何在
0
s的海洋中生成
1
s的随机岛,这是一个有点像战舰的游戏。我最初的想法是计算给定条件下的邻居数量。例如,大小为1的岛屿没有邻居。2的孤岛对于每个单元只有一个邻居。然后我想也许我可以递归地检查每个新的细胞是否接触到一个现有的岛

然后,我调查了现有的解决方案,结果发现,找到这样的岛屿是一个相当标准的算法问题,通过深度优先搜索解决

然而,产生这种岛屿的问题没有很好的记录。例如,如果我想要1个单元格的2个岛,2个单元格的2个岛和3个单元格的1个岛,我将如何处理

为了证明最初的劳动,我构建了这个应用程序来帮助计算给定条件下的邻居:

我不知道这个解决方案有多有用,但它给了我一个起点

也许解决方案包括生成随机配置,直到满足需求为止?这是一种可行的方法,还是有一种更确定的方法来解决这个问题


一如既往,任何帮助都值得赞赏。

我想你需要把这些岛屿看作是一组细胞,而不是1个细胞构成一个岛,可以有一个由2个细胞组成的小岛或者3个细胞在一起,因此,在创建孤岛并通过发送孤岛坐标读取邻居的逻辑中,必须通过一个过滤函数,该函数聚合坐标(单元格)以将孤岛作为一组单元格返回,然后将其传递给邻居()以找到其邻居。您需要具有特定大小(例如大小2)的孤岛吗,或者你只是想让它们看起来“自然”,就像一张地理地图,大小和形状都有随机变化?具体来说。就像有许多不同大小船只的战列舰,但是有“<代码> 1”/代码>代表人,而不只是直线。我猜你需要把这些岛屿看作是一组细胞,而不是1个细胞构成一个岛,可以有一个由2个细胞组成的小岛或者3个细胞在一起,因此,在创建孤岛并通过发送孤岛坐标读取邻居的逻辑中,必须通过一个过滤函数,该函数聚合坐标(单元格)以将孤岛作为一组单元格返回,然后将其传递给邻居()以找到其邻居。您需要具有特定大小(例如大小2)的孤岛吗,或者你只是想让它们看起来“自然”,就像一张地理地图,大小和形状都有随机变化?具体来说。就像战列舰,有一定数量的不同大小的战舰,但有一组代表人的
1
s,而不仅仅是直线。