gpt4 book ai didi

c# - 创建(真实)随机迷宫的最佳逻辑

转载 作者:太空狗 更新时间:2023-10-30 00:00:35 27 4
gpt4 key购买 nike

我一直在尝试制作一个简单的小游戏来测试我的逻辑,这是一个简单的迷宫,它很丑,而且到目前为止很糟糕。

引擎工作得很好,考虑到迷宫已经存在(矩阵),它甚至可以愉快,但我无意绘制一堆 map ,这可能是在 400 (20x20) 个字段上设置值一个矩阵。不好笑。

然后我创建了一个函数来随机化它,为每个区域设置地板/墙壁,并且(我预计)并非每张 map 都可以获胜。然后我创建了另一个功能来检查 map 是否可玩(接收两个点,并检查它们之间是否存在有效路径,然后我只传递开始和结束。非常漂亮)并且它起作用了。

如果您没有注意到,这是一种非常愚蠢的创建随机迷宫的方法,原因如下:

1 - 它可能很容易出来(巨大的地板岛,或者一堆墙在一起,只形成一条非常明显的路径,创造一个愚蠢的(虽然有效)迷宫
2 - 这可能是有史以来创建完美随机迷宫的最快方法,但同时它也可能是最慢的方法,耗时……无限长。当我将网格设置为 30x30 或更大时(当某些东西没有溢出时),这种差异会更加明显
3 - 这很愚蠢,而且违反了逻辑本身。

在我的辩护中,我并没有计划从一开始就这样做,正如所描述的那样,一件事导致另一件事。

所以我开始考虑如何制作一个美丽的(充满路径、棘手且可获胜的)迷宫,然后我考虑制作带有预先设计入口的微型(比方说)5x5 block ,并将它们安装在一个它适合的方式,但这违背了我真实的随意的愿望,也违背了我不愿意手工绘制它的意愿。

然后我想到了一个函数来创建一个随机路径,运行一次到终点,然后运行几次到接近终点的某个地方,还有一些十字路口和其他东西,一些创造死胡同,这似乎更好对我来说,但我无法想象它会创造一个像样的迷宫。

You can check what I've done so far in this link.

注意:我无意用任何东西伤害任何人的电脑。
第一个打开它的人,请在这里评论说它是安全的。 - 完成(谢谢 Jonno_FTW)

如果您仍然不信任它,请使用虚拟机。

OBS:我知道这不是开发任何东西的最佳方式。我应该得到一个像样的游戏引擎,bla bla bla,这对我自己来说是一种挑战。

最佳答案

我已经完成了迷宫生成。您不想随机放置东西并进行验证。相反,您从一个起点生成它。

选择一个起点,沿随机方向移动。有一个随机概率选择一个新的方向。永远不要进入一个被占领的广场,如果你撞到一个当前的足迹就结束了。如果当前路径结束,请选择一个您已经访问过的方 block 并选择一个新方向并像您在第一个方 block 中所做的那样随机行走。重复,直到迷宫达到您想要的程度。

方向改变的概率应该是一个输入参数,因为它有很大的不同。请注意,如果您正在玩 3D 迷宫,垂直转弯的几率应该比水平移动的几率低很多。

关于c# - 创建(真实)随机迷宫的最佳逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com