gpt4 book ai didi

c++ - 如何在 C++ 中为随机迷宫创建单元格或网格?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:33 25 4
gpt4 key购买 nike

我正在尝试用 C++ 创建一个随机迷宫,但我无法开始,因为我不知道如何创建网格或单元格。我怎么能创建它?而且我还想使用 ASCII 字符创建它。我怎样才能将它存储在数组中? (任何人都可以提供示例代码和一些解释,以便我更好地理解它)

另一个问题:我需要学习和使用哪些数据结构?我打算使用 Eller 算法或 Kruskal 算法。

谢谢大家帮助我!我是一名初级程序员,我想了解这一点,因为这是我项目的一部分,谢谢你变化很大!

最佳答案

你在找Maze generation algorithms吗(more)?您的问题是算法还是图形?

典型算法的工作原理是将迷宫中的每个“单元格”视为图形的顶点,从所有“墙”开始,然后移除与生成树相对应的一组墙。 (因此,为了使其随机化,他们中的许多人从随机权重开始并找到最小生成树。)至少对于小迷宫,您不需要任何特殊的数据结构来表示单元格;您可以将每个单元格视为一对 (x,y)(其坐标)。而且您也不需要任何数据结构(邻接矩阵/邻接列表)来存储图形的边缘,因为 (x,y) 的邻居只是 (x,y ±1)(x±1,y)(忽略那些落在边界之外的)。

无论如何,一旦有了生成树,您就可以确切地知道哪些墙“存在”,哪些不“存在”,因此您对迷宫有一个完整的描述。如果你要画迷宫,你知道要画哪些。

要用 ASCII 字符绘制,只需逐行通过每一行:绘制“上墙”(如果墙在 (x,y )(x,y+1) 存在),然后绘制实际行(如果 (x ,y)(x+1,y) 存在)。最后绘制底部边界。

关于c++ - 如何在 C++ 中为随机迷宫创建单元格或网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/396579/

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