josephAronChan / -

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

-软件写作作业

一开始想用01矩阵生成迷宫,这也是大部分迷宫类算法的核心,但是这个算法不是经典的01矩阵迷宫算法

这个算法的核心的构造了一个包含迷宫所有边的列表(这个算法不是独创的,只是相对比较少见)

用列表来表示迷宫中方格的四条边,然后对于通路,见这条边画成白色,非通路将这条边变成黑色

整个算法的核心是找到还没有访问过的放个,然后在方格之间不断找公共边,去掉公共边构成通路

算法正确性如下:

1.对于找到唯一通路之前的步骤,如果唯一通路之前就能找到通路,则不会有唯一通路在后面出现,因为通路前的方格必定已经被访问过,无法再继续访问一次,无法在唯一通路之外的其他方格中与最终方格打通,不可能有通路;

2.对于找到唯一通路之后,算法只会往还没访问过的方格去递归,这种情况下这些路不可能与原来的通路有公共边被打通,因为原来的路的方格都已经被访问过,故这部分通路既无法去到出口的方格,也无法通过之前的路,故不可能有整个迷宫的通路出现。

算法正确性证明如上

About


Languages

Language:Python 100.0%