在《Problem Solving with Algorithms and Data Structures》一书的141页,作者给出了一个迷宫寻路的程序。程序的核心是一段递归程序,通过不断尝试,找到从起点到终点的路。虽然不是最短路径,但程序可以动态显示寻路的过程,对于理解递归过程非常有帮助。
书中给出的程序见“http://download.csdn.net/detail/pospro/8952965”,运行之后就会发现,由于是基于turtle作图(注:turtle是python自带的一个绘图函数集),画迷宫本身就要花费太多时间,让人无法一下抓住核心。
在这里,PosPro引入pygame取代原有的turtle,大大降低了载入迷宫所花费的时间。同时利用pygame的函数产生了可以媲美turtle的动态效果。全部程序及相关资源见:http://download.csdn.net/detail/pospro/8947365
程序运行后的效果如下:
下面对程序进行逐段分析:
首先建立一个迷宫类(Maze),包含四个函数:构造函数__init__, 实现索引取数的__getitem,判断是否是迷宫出口的isExit,以及动态显示变化的updateScreen
构造函数的详细代码如下。这一段代码完成了以下工作:
1.按照pygame的要求,对屏幕进行初始化,
2.读入迷宫的点阵文件