20254303 刘鑫 《Python程序设计》实验四报告
20254303 2025-2026-2 《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 2543
姓名: 刘鑫
学号:20254303
实验教师:王志强
实验日期:2026年5月25日
必修/选修: 公选课
1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
- 实验过程及结果
一.环境准备
在终端输入:pip install pygame-ce

二.设计代码
(1)整体框架
开发平台:PyCharm
开发技术:Python + Pygame
(2)程序整体结构
1.全局参数、颜色、游戏配置定义
2.main() 主函数:游戏初始化、流程调度
3.init_game():游戏板初始化、随机布雷
4.draw_board():绘制游戏界面(格子、数字、旗子、地雷)
5.绘图函数:绘制网格、数字、旗子、地雷
6.逻辑判断函数:空白展开、胜利判定、坐标获取
7.结束重置函数、程序退出函数
(3)具体程序
1.main主函数 - 程序入口初始化


2.init_game() - 初始化游戏板与布雷

- draw_board() - 绘制游戏界面


- reveal_blank() - 自动展开空白区域

- check_win() - 胜利判定

- get_cell() - 获取点击的格子坐标

三.游戏玩法
(1)游戏目标
找出所有不是地雷的格子
(2)操作方法
鼠标左键点击揭开格子

鼠标右键点击打叉号标记地雷

(3)成功
揭开所有不是地雷的格子 显示You Win 胜利

(4)失败
左键点到地雷 显示Game Over 失败

- 实验过程中遇到的问题和解决过程
问题1:安装pygame时出现安装失败,提示“Getting requirements to build wheel did not run successfully”
问题1解决方案:由于Python 3.14版本过新,官方pygame尚未适配,改用pygame-ce替代,执行pip install pygame-ce命令,成功安装后即可正常导入使用。
问题2:运行代码时出现pygame.error: 字体文件找不到,提示“No font 'simhei' found”
问题2解决方案:将字体设置从pygame.font.SysFont("simhei", 20)改为pygame.font.Font(None, 24),使用pygame默认字体,无需依赖系统字体文件,彻底解决字体报错问题。
问题3:截取扫雷成功的图时总是失败
问题3解决方案:扫了半个小时雷,终于成功
4.操作视频
点击观看扫雷游戏演示视频
5.其他(感悟、思考等)
本次基于Python和Pygame的扫雷小游戏开发,让我对图形化编程有了更直观的理解。扫雷游戏虽然看起来简单,但涉及二维数组操作、随机布雷、数字计算、鼠标事件处理等知识点,把这些功能一个个实现出来,很有成就感。
开发过程中遇到的问题不少,比如Python版本太新导致pygame装不上,字体设置报错,空白区域展开时卡顿等。这些问题让我学会了查资料、试错、找替代方案,也明白了编程不只是写代码,解决问题同样重要。
最后的扫雷环节锻炼了我的思考能力。
6.课程总结
通过Python课程学习,在王志强老师的教导下,我从零开始掌握了Python编程的基础知识。相比C++,Python语法更简单,写起来更快,第三方库也特别多,做什么都能找到现成的工具。
课程内容从基础语法到网络编程、爬虫、游戏开发,一步步深入,让我对编程有了更完整的认识。以前写代码只会照着书敲,现在学会了遇到问题先分析、再查资料、最后自己动手解决。
实践环节我做了计算器,图书管理系统,剪刀石头布,扫雷游戏等程序,从搭框架到调细节,整个过程锻炼了我的逻辑思维和动手能力。虽然过程中遇到不少报错,但每次解决后都学到新东西,印象也更深刻。
总的来说,这门课很有意思,动手机会多,学完真的能自己写点东西出来。感谢老师的耐心指导。
建议:
1.刚开始下载pcharm与托管代码到gitte花了好长时间才弄好,建议出个视频指导
2.部分代码难度较高,有点跟不上,建议讲慢一点
参考资料
《Java程序设计与数据结构教程(第二版)》
《Java程序设计与数据结构教程(第二版)》学习指导
...

浙公网安备 33010602011771号