canvas并查集画随机迷宫

网友投稿 594 2022-05-28

之前学习不想交集合(并查集)的数据结构,看了很多大老用窗体画出随机迷宫,感觉挺震撼的,下心学习了一下。

这个过程想着不太复杂,就是做起来挺麻烦,需要自己一点点处理。大概步骤如下

1:定义好不想交集合的基本类和方法(search,union等)

2:数组初始化,每一个数组元素都是一个集合,值为-1

3:随机查找一个格子(一维数据要转换成二维,有点麻烦),在随机找一面墙(也就是找这个格子的上下左右),还要判断找的格子出没出界。

4:判断两个格子是否在一个集合。如果在,则重新找,如果不在,那么把墙挖去

5:把墙挖去有点繁琐,需要考虑奇偶判断它那种墙,然后擦掉。(根据数组转换成真实距离)

6:最终得到一个完整的迷宫。

js的代码如下:

MyHtml.html