我有创造另一个迷宫游戏的想法。然而,有一个关键的区别:迷宫在游戏中即时更改。当我想到这个问题时,我会想到以下限制:
控制(影响游戏难度)也很好:
编辑: 问题是:你能为所描述的迷宫生成/变异建议一个算法(或给出你的想法),这不会违反给定的限制吗?
答案 0 :(得分:1)
你可以:
随机阻止路径(或使用一些偷偷摸摸的标准)。
扫描迷宫,查看是否已将其划分为2个不再连接的区域。
如果断开连接,只要它与两个区域相邻,就可以随意敲墙。
如果您的迷宫在任意两点之间只有一条路径,则第2步将始终拆分迷宫,因此总是需要#3。
答案 1 :(得分:0)
制作一个图表,连接迷宫的所有细胞和它们之间的可步行连接。要修改迷宫,首先选择一个随机墙来击倒,这会在图形中生成新的边缘。然后在图中找到一个包含该边的循环,并在该循环中删除一个随机的非主路径边,这将在其他地方竖立一条边。
此算法确保如果所有单元格在开始时都可以访问,它们将保持不变。你可能想要这个功能,所以你不会被困。
答案 2 :(得分:0)
这可能非常简单。使用standard depth-first-search algorithm生成迷宫。在列表中存储从开始到退出形成(唯一)路径的单元格列表。当您决定要改变迷宫时,请执行以下操作:
第二步中的修改将确保算法首先探索现有路径,然后从那里添加旁路等。如果你不想要保留关键路径,甚至没有必要 - 你可以重新生成整个迷宫,除非用户站立,它仍然有效。
我认为这应该始终以与原始算法相同的方式生成一个有效的树,但我不能100%确定保留用户周围的单元格的含义,这可能是不要走在关键的道路上。我很肯定,重新配置的迷宫总是可以从用户所在的位置解决。
这也是一个非常巧妙的想法。我喜欢在用户不看的地方将迷宫重新排列的想法。如果您是第一人称这样做的话,甚至可以使用相机视图在用户不看的时候更换用户背后的墙壁!