繁体   English   中英

脱节集和迷宫创建

[英]Disjoint set and maze creation

我正在尝试使用预制的不相交集合类创建迷宫。 我创建了一个Cell类,其中包含四个壁中每个壁的布尔变量。 问题是,如何创建不相交的单元格对象集? 这样,我可以合并单元格并相应地更改布尔变量。

http://users.cis.fiu.edu/~weiss/dsaajava3/code/DisjSets.java

那是不相交集的代码

不相交的集合数据结构不适合此特定问题。

试图强迫您的解决方案使用它只会给您糟糕的代码和糟糕的设计。

更不用说有一个更简单,更优雅的解决方案。

为了生成一个完美的(任意两点之间的唯一路径)迷宫:

  1. 创建一个由N个单元格组成的N个数组,跟踪每个单元格中的每个墙
  2. 随机选择一个单元
  3. 从您当前的单元格(A)中选择一个未访问的邻居(B),如果没有这样的邻居,请返回您以前访问的单元格,然后从步骤(3)开始
  4. 打破A和B之间的墙
  5. 将B标记为当前单元格(或将其推送到列表或类似的数据结构中)
  6. 如果已经访问了所有单元,则结束。 否则回到步骤(3)

您只需要一个网格和一个列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM