地牢生成方法

Gus*_*eld 5 java random algorithm generator

我一直在研究一个好的地下城算法,但我遇到了几个问题.我正试图在疯狂之神的境界和地牢爬虫之间进行混合.我的设计布局是走廊,彼此分开,房间里装满了怪物.到目前为止,我已经根据这个算法建立了一个地下城发电机:http://www.roguebasin.com/index.php?title = Dungeon-Building_Algorithm.我的第一个问题是,由于我的走廊不是1个宽度,所以它们看起来经常彼此切断,这不是预期的效果.

你可以在这里看到我在说什么.

我一直在考虑改变一代,以便将它存储在一个数组列表中,以便它可以用它来查找每个段落应该如何连接,我也想过尝试不同的算法,但我是犹豫不决,因为不先尝试解决这个问题会感到浪费.任何建议都有帮助,因为我对此比较陌生!

注意:玩家必须有一个特殊的房间和一个Boss房间.就此而言,我不确定如何始终确保将这些房间连接在一起,也许是其他一切完成后的最后一代?

Cla*_*dio 0

也许更简单(但不完整)的解决方案是存储您构建的每个“房间/功能”的一些元数据。如果您选择走廊尽头的墙作为某些新要素的放置,则排除“走廊”作为有效要素。

它无法解决所有地图不一致问题,如果您有两种不同类型的走廊(较宽的走廊和较窄的走廊),您将永远不会看到走廊变得更宽或更窄,但这是一个简单的修复,而且相当快速。

当然有更好的解决方案,但我需要有关该算法的更多详细信息。我在您发送的链接中看到它的作用是选择墙砖作为放置并在其后面放置一个功能。也许在决定放置位置时,您不需要只观察随机选择的墙砖,而是需要观察其周围的整个连续墙:

  1. 选择一个随机特征(通过示例构建走廊)
  2. 在某处随机选择一块墙砖
  3. 从每个特征你就会知道它的开口有多大。
  4. 比较下方(或右侧)是否有足够的墙砖来整齐地放置其开口,如果没有,请选择您原来选择的上方/右侧的墙,然后重试。你可以遇到不可能这样做的场景,你可以从第 1 点重新开始,然后再试一次。

这只是我的想法,当然还有其他解决方案。但这可能足以让您开始。