- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试用 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/
我是一名优秀的程序员,十分优秀!