【发布时间】:2022-01-05 07:50:44
【问题描述】:
我根据本文中的信息创建了一个六边形网格 https://www.redblobgames.com/grids/hexagons/
我想在网格中有间隙,但我还需要连接所有组。本质上,我希望能够从组中的任何六边形移动到组中的任何其他六边形。
我的第一个想法是为每个组选择一个随机图块,然后为每个组添加一个相邻图块,直到一个组接触另一个组,然后可能会减少向该组添加另一个图块的机会。我对此的主要担心是,我最终可能会得到 2 个相互接触但与其他组没有连接的组。
任何想法都值得赞赏。如果您需要更多信息,请告诉我。
【问题讨论】:
-
建议:首先确定哪些十六进制将保持空白。为此,请选择一些起始的空白十六进制,并以一些概率从它们扩展。如果概率足够低,则剩余的电网将有合理的机会连接。如果剩余的网格未连接,请重置并重试。
-
然后,为每个区域随机选择一个瓦片,并扩展它们直到所有非空白网格都被填满。
-
PS:我个人不打算提供比我的两个 cmets 更精确的答案,但如果你最终得到了一个可行的算法,我很想看看;请注意,您可以发布自己问题的答案。
-
我将首先编写一个算法来删除瓷砖。然后应该很容易填充所有剩余的瓷砖。我已经编写了一个简单的函数来删除一些随机图块。我认为我的下一步是删除相邻的瓷砖。
标签: random data-structures game-development procedural-generation hexagonal-tiles