【发布时间】:2019-02-15 02:16:42
【问题描述】:
[最后更新了我的问题] 我正在创建一个发生在迷宫内的 2d 多人 RTS 游戏。我使用Growing Tree algorithm 随机生成迷宫。我认为迷宫对每个团队来说都是公平,只要每个团队解决迷宫的最短路径与另一个团队相同。我通过在我的游戏中制定一条规则来确保这一点,该规则规定每支球队的起点都是另一支球队的终点,反之亦然,因此最短路径对于两支球队来说总是相等的。但在实践中,我注意到了别的东西。
当我尝试使用 solution,特别是 @tobias-k 的答案将由此产生的完美迷宫变成非完美迷宫时,我突然想到了这个问题。
如果您已经有一个从开始到目标的单一路径形式的迷宫,请使用此变体:
从起点和终点进行广度优先搜索,并为迷宫中的每个单元格记录该单元格离开的步数 从起点到目标。
通过将所有靠近起点的单元格放入起点组和所有靠近目标的单元格来细分迷宫 进入目标设定。
移除两个区域之间的墙以添加从起点到目标的额外路径。
生成的路径可能在 常见,但它们应该是从开始到目标的唯一无循环路径。 这是第一种情况的说明:
但是,当我使用 BFS 计算从起点到终点的所有距离时,并且在移除一堵墙以创建一个不完美的迷宫之前,我大多会得到这样的结果:
在这张图片中,336 个单元格距离红队起点较近,只有 105 个单元格距离蓝队起点较近。 即使移除这两个部分之间的一堵墙(或不止一堵墙)也无济于事。
我的游戏是关于收集随机分布在迷宫中的宝藏并在另一队退出迷宫之前离开,这样产生的迷宫是完全不公平的,因为它让一个团队有更高的机会更快地到达迷宫中的更多宝藏与其他球队相比。
所以我的问题是:
- 上面提到的生长树迷宫生成器的结果是否意味着迷宫对于多人游戏不公平(为简单起见,让我们假设游戏发生在两个玩家之间)?
- 我是否需要将我的迷宫生成器更改为产生均匀纹理的东西,例如 Wilson 或 Aldous-Broder 算法? (这是基于Astrolog引入的算法)
- @btilly 建议使用对称迷宫来解决迷宫公平的问题,但现在我不得不问哪一个可以保证创建公平的随机迷宫:对称方法(like the one proposed in this article 或制服一个(比如Wilson's algorithm)?
【问题讨论】:
-
这与编程没有直接关系。我认为你最好在Math 或GameDevelopment 上问这个问题
-
也许尝试用棋盘的对角线一半生成一个迷宫,然后为其他团队复制它
-
@derHugo 感谢您的建议。我实际上考虑过 GameDev 堆栈交换,但我从未想到过数学。我是新手,不知道是否允许或不赞成在另一个堆栈交换站点上提出相同的问题。我该怎么办?
-
其实我也不清楚使用
in need of moderator intervention提出自己的问题,并请推动者将您的问题转移到另一个社区。span> -
我投票决定将此问题作为离题结束,因为它与编程没有直接关系。
标签: algorithm graph language-agnostic maze