利用递归法和pygame实现迷宫寻路的动态展示_Prj002

本文介绍了如何使用递归算法和pygame库创建一个动态展示迷宫寻路过程的程序。通过对比原书中基于turtle的版本,演示了如何用pygame减少加载时间并提升视觉效果。文章详细解析了程序的各个部分,包括迷宫类的构造、动态显示更新及核心的递归寻路函数。提供了一个改进版的pygame实现程序链接。
摘要由CSDN通过智能技术生成


        在《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.读入迷宫的点阵文件 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值