20244103 实验四《Python程序设计》实验报告
课程:《Python程序设计》
班级: 2441
姓名: 张乐
学号:20244103
实验教师:王志强
实验日期:2025年5月31日
必修/选修:公选课
1.实验要求
(1)作业要求:Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
2.实验过程及结果
本次结课作业中,我选择设计《打地鼠》这款游戏。这是一款经典的休闲小游戏,凭借简单易上手的玩法和即时反馈的趣味性,成为许多人的童年记忆。在学习了一学期的《Python 程序设计》课程后,我掌握了基础的编程语法、事件处理和图形界面开发等知识,希望通过复刻这款经典游戏来检验学习成果。
基本介绍:玩家需要在限定时间内点击随机出现的地鼠,点击成功得分,时间结束后显示最终分数。
(1)导入必要的库

(2)定义游戏常量
设置游戏窗口参数、颜色常量和帧率



(3)设计游戏逻辑
设定三个游戏状态:开始界面、游戏中、结束界面。
设定游戏时间,地鼠显示时间和地鼠间隔时长等基本信息
根据游戏状态,管理游戏,包括分数、时间和地鼠是否生成


(4)控制地鼠状态
控制地鼠,使其在几个固定的地鼠洞位置随机生成,通过比较与上次生成间隔时间和原定间隔时间,控制地鼠生成;记录当前时间和已设定的显示时间,消失时间为二者相加,以此控制地鼠消失。

如果锤子打中(鼠标点击)地鼠,则地鼠立即消失,获得一分,并且在新的位置生成另一只地鼠。

如果未打中,则持续原状态,超过原定显示时长,则地鼠消失,不得分,并且在新的位置生成另一只地鼠。整个过程需检查游戏是否结束,结束后切换为“结束界面”,地鼠不再生成
(5)绘制游戏画面
根据游戏状态制作不同的游戏画面,包括开始界面、游戏界面和结束界面


(6)控制游戏的主循环
控制游戏的主循环,确保游戏逻辑、界面更新和帧率控制

(7)创建游戏入口,开始主循环、

运行视频如下:
【python作业】https://www.bilibili.com/video/BV1tH7NzsEL2?vd_source=840f588424fa039fc007ac426982b7cd
3. 实验过程中遇到的问题和解决过程
(1)问题:碰撞检测不准确:点击地鼠但未得分
解决过程:地鼠洞绘制时包含边框,但碰撞检测未计入边框宽度。于是增加边框宽度并且相应扩大判定范围
(2)问题:游戏结束后点击重新开始,地鼠未刷新或分数未清零,以及开始界面点击无效。
解决过程:仅切换状态未重置游戏数据,后来在切换游戏状态时,将数据初始化。
4. 其他(收获、感悟)
时光匆匆,一学期的 Python 选修课已然结束。作为一名大一文科生,起初选择这门课程时,我内心满是忐忑与迷茫 —— 从未接触过编程的我,不知该如何跨越这道看似厚重的 “理科门槛”。然而,在王老师的悉心教导下,python课程学习并没有成为负担和压力。在历次实验中,王老师都亲自编写代码并讲解每一行代码的用意,通过实例教授我们知识,我得以“摸着石头过河”。王老师的课堂永远充满包容,每当同学上手遇到困难询问时,总会反复详尽地讲解,那份专注和耐心让我非常感动。
这门课程不仅让我从零开始掌握了 Python 的基础技能,更让我对编程思维和数字化时代有了全新的认知:这门课带给我的远不止是代码知识。作为习惯了文字表达的文科生,我渐渐发现编程是一种截然不同的 “叙事方式”:它要求用清晰的逻辑链串联每一个步骤,用精准的语法表达每一个指令,这种思维训练让我在其他学科学习中也颇有收益。
最后感谢王老师一学期的悉心教导,您用幽默的讲解让代码不再冰冷,用耐心的指导让文科生也能在编程世界里找到方向。这段学习经历让我明白,无论哪个学科,保持好奇心和学习力才是最重要的。未来,我或许不会成为编程高手,但这份用代码解决问题的思维、面对挑战不退缩的勇气,都将成为我大学时光里宝贵的财富。谢谢您,王老师!愿您永远带着这份热忱,照亮更多学生的求知之路。
浙公网安备 33010602011771号