如何在随机生成的六边形地图中找到岛屿?

J3n*_*ngs 2 algorithm hex map

我正在使用Codigniter和JQuery编写类似风险的游戏.我想出了一种方法来创建随机生成的地图,通过制作完整的瓷砖布局然后删除随机的.然而,这有时会产生我称之为岛屿的东西.

在风险中,你只能攻击一个空间.因此,如果一个玩家碰巧拥有一个岛屿,他们就永远无法自拔.

我试图找到一种方法,我可以在游戏开始之前检查它是否有岛屿.

我已经提出了一个函数来找出每个空间有多少相邻空间,但我不知道如何实现它以便找到岛屿.

每个丢失的地点也被识别为"水".

我不允许使用图片标签:http: //imgur.com/xwWzC.gif

Chr*_*isW 8

这个问题有一个标准名称,但是我的头脑中可能会有以下情况:

  • 随机挑选任何瓷砖
  • 给它上色
  • 给邻居上色
  • 给邻居的邻居上色
  • 给邻居的邻居染上邻居等.

当你完成时(即当所有邻居都被着色时),循环遍历所有图块的列表以查看是否有任何静止/未着色(如果是,它们是岛屿).

  • 这样可行,但描述并不能完全解释问题,特别是"如果是这样,它们就是一个岛屿".最初选择的瓷砖可能是岛屿的一部分,而未着色的瓷砖是"大陆"的一部分.如果您在找到岛屿时重新生成整个地图,这是可以的,但如果您计划仅重新生成受影响的区域,则可能会出现问题. (2认同)