20232415 2025-2026-2 《Python程序设计》实验4报告

20232415 2025-2026-2 《Python程序设计》实验4报告

课程:Python程序设计
班级:2324
姓名:孙鸿淼
学号:20232415
实验教师:王志强
实验日期:2026年6月15日
必修 / 选修:公选课


 

一、实验题目

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。

例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。

例如:利用公开数据集,开展图像分类、恶意软件检测等

例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。

例如:爬取天气数据,实现自动化微信提醒

例如:利用爬虫,实现自动化下载网站视频、文件等。

例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等

注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。


 

二、实验内容

本次实验使用Python自带的窗口工具开发扫雷小游戏,能够实现地雷随机生成、雷数计算、鼠标开格插旗、游戏胜负判定等玩法。支持一键重开、自由切换难度、计时等功能,本地成绩存档能够自动记录通关用时与最佳战绩。

三、实验环境

项目 说明
操作系统 Windows11
python版本 python3.14
开发工具 PyCharm

四、实验过程与结果

4.1 总体设计

本次实验基于Python自带的tkinter图形库开发扫雷小游戏。界面布局+游戏逻辑+数据存储分层设计,以二维列表存储游戏地图数据,结合鼠标事件完成人机交互。支持一键重开、自由切换难度、计时等功能。

4.2 关键模块说明

1. 核心游戏模块:主要实现地雷随机生成、格子雷数计算、鼠标交互、自动扩空与胜负判定。
(1)地雷随机生成

image

通过循环+随机数遍历棋盘,在空白位置随机生成地雷并标记为-1,保证每局地雷位置不重复、随机分布。
(2)格子雷数计算

image

八方向遍历算法,统计每个格子周边地雷数量,点击空白格子时自动连片展开
(3)空白扩展

image

 点击空白格子时自动连片展开

(4)胜负判定

image

根据安全格子开垦数量判定游戏输赢。
2. 计时与存档模块:实现对局实时计时,通关自动保存战绩,本地文件永久存档并智能排序榜单。

image

利用after定时器实现实时计时,对局结束自动停止计时。通过JSON文件读写实现本地数据存储,每局通关后自动收录难度与用时数据,通过排序算法筛选前十最优战绩,重启程序数据不丢失,可随时查看排行榜。

4.3 运行结果

游戏进入界面

image

 游戏界面

image

 踩雷,游戏结束

image

 排行榜

image

4.4 运行视频

演示视频

4.5上传源代码至Gitee仓库

实验源代码


五、实验中遇到的问题与解决方法

 其实不是很会做扫雷小游戏,设计思路参考了AI

六、实验分析与思考

本次实验使用Python完成扫雷小游戏的开发,熟练运用了tkinter界面设计、随机数算法、列表存储和文件读写等知识点,完整实现了游戏功能开发、调试优化的全过程。
实验过程中我发现,看似简单的小游戏,实际开发对逻辑严谨性要求很高。初期程序存在只能单次游玩、计时错乱、无法重置对局等问题,排查后发现是游戏状态、计时器和界面数据没有彻底重置导致。通过优化重置逻辑,清空地图数据、刷新界面、关闭定时器,成功实现无限重开、自由切换难度的功能,让我明白交互式程序开发中,状态管理和重置逻辑十分重要。
本次项目采用模块化编写,将地雷生成、数值计算、计时存档、界面设计分开实现,代码结构清晰,方便后期新增难度模式、排行榜和美化界面,无需大幅修改原有代码,让我认识到规范编程和模块化设计能有效提升代码的可维护性和拓展性。
调试阶段,我解决了界面排版混乱、多难度适配异常、数据记录重复等问题,不仅修复了程序漏洞,也提升了自身的问题排查与程序优化能力。同时意识到编程开发不仅要实现基础功能,还要兼顾程序稳定性和使用体验。
通过本次实验,我掌握了Python图形化程序的开发流程,实操能力得到有效提升。后续还可以新增音效、自定义棋盘、暂停计时等功能,进一步完善游戏效果。

七、实验总结

本次实验基于Python的tkinter库完成扫雷小游戏的设计与开发,无需依赖第三方库,程序可独立运行。实验主要完成了游戏核心逻辑编写、功能拓展与界面优化等工作,顺利实现了扫雷经典玩法,包括随机生成地雷、数字提示、鼠标插旗、自动展开空白格子和游戏胜负判断等基础功能。
在基础功能之上,本次实验新增多档难度模式,包含简易四格迷你模式,支持一键重开、自由切换难度,解决了单次运行只能游玩一次的问题,实现程序打开后可无限对局。同时增加计时统计和本地排行榜存档功能,能够自动记录并保存玩家通关用时,实现数据持久化。最后对游戏界面进行美化,统一界面配色、字体与布局,使程序界面整洁、运行流畅。
本次实验采用模块化思路开发,代码结构清晰、易于修改和拓展。通过不断调试修复了计时错乱、界面排版异常、游戏重置失效等问题,有效提升了我的代码编写、问题排查和程序优化能力,加深了对图形化编程、数据存储和事件交互原理的理解,圆满完成本次实验任务。

八、参考资料

豆包


九、课程总结

通过本学期Python课程的学习,我系统掌握了Python程序设计的基础语法与编程思想,理解了模块化编程、代码调试、逻辑设计的基本思路。
课程上老师手把手带我们写代码,很耐心,也让我们有更多时间消化理解知识。

十、感想与体会

  强哥的python课程很有趣,特别有意思

十一、意见与建议

 
posted @ 2026-06-15 17:05  幕后的黑鸡爪  阅读(0)  评论(0)    收藏  举报