地牢生成算法

时间:2014-12-28 20:07:55

标签: algorithm

我正在尝试创建一个算法,该算法将使用以下规则生成地牢:

  • 中心是2x2细胞起始区域。走廊只能进入一侧(见蓝色方块)
  • 地图包含两个3x3区域。在布置地图时,它们充当走廊。 (见绿色方块)
  • 每个房间都是3x2格子矩形。
  • 每个房间必须有一个走廊的入口(门)。
    • 如果没有可用的走廊,房间的入口点可以是邻近房间的秘密通道。 (见红色方块)
  • 没有房间可以有多个秘密通道。
  • 任何一个走廊都不能有任何一个单元格的宽度。
  • 地图中没有单元格可以保持未使用状态。
  • 地图是具有预定尺寸的矩形

最后两个条件是给我带来问题的。除了迭代和/或随机方法之外,我无法想出如何处理它,这两种方法都充其量只是极其缓慢。在合理的时间内处理这个 dungeon效率问题的好方法是什么?

以下是地图大小为24x21的此类地牢的示例:

Dungeon layout

1 个答案:

答案 0 :(得分:0)

  1. 对于•地图中没有单元格可以保持未使用状态可能会执行一个后处理,将所有这些单元格转换为隐藏的房间,并随机创建隐藏的出口/条目。
  2. 对于•地图是具有预定尺寸的矩形可能建立最小房间宽度,并且在接近两倍的分配限制内时,将下一个房间的宽度设置为剩余空间。
  3. 游戏编程中许多效率挑战的关键是选择对玩家不可见(或几乎如此)的合适近似值。