20231108陈震浩《Python程序设计》实验四报告
20231108 2023-2024-2 《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 2311
姓名: 陈震浩
学号:20231108
实验教师:王志强
实验日期:2023年5月28日
必修/选修: 公选课
1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
本实验通过pygame实现了贪吃蛇游戏可多人PK版
2. 实验过程及结果
最最开始,我们先引入有关的模块,初始化以及定义游戏界面大小和颜色

然后,让我们思考一个问题:如何在游戏界面中实现一条扭动的线条,它会在吃到目标的时候加长自身的长度。对于这个问题,我们可以把蛇看作一个列表,储存三个元素:蛇头,x方向长度和y方向长度。起始蛇头和食物目标一样大小,在吃到食物时添加蛇的长度,同时随机产生食物目标(注意添加效果为x方向和y方向长度之和)倘若没有撞墙,就改变x和y的改变值大小


定义一个循环体,用于键盘指示上下左右指挥蛇头移动,其中event为pygame库中的指令集,在这里我们使用它作为读取键入的工具

如果很不幸你触壁了,那么就进入选择界面,继续玩或者退出


至此,我们完成了贪吃蛇的基本框架,该部分完整代码如下

演示视频
然后,我们添加多人游戏的代码,思路上也很简单,就是多添加一组读取键入的指令集,以及由此需要进行的一系列改动

然后我们也对键盘输入做一些调整

进行修改后的完整代码如下

运行视频如下
3. 实验过程中遇到的问题和解决过程
- 问题1:引用pygame模块时发现不知道怎么下载
- 问题1解决方案:通过查找资料发现在终端下载pip install pygame即可
- 问题2:界面显示退出时显示的字不全
- 问题2解决方案:通过调整显示字的起点位置将提示字样调到中间
- 问题3:编写贪吃蛇程序时会出现已经碰壁但没有退出程序的情况
- 问题3解决方案:最终调试发现碰壁退出程序块在循环体外面,经过调整后能够实现碰壁退出效果
- 问题4:多人模式会出现闪退现象
- 问题4解决方案:还是在判断碰墙的程序块里,由于序列没有设置长度上限,因而一开始系统就自动判定双方碰墙,游戏结束,自动退出,经过对出墙判定程序的修改最后成功实现了运行
4. 本次实验的感想与收获
贪吃蛇作为经典的游戏深得大众喜爱。但是真正轮到自己来编写这个简单而原始的游戏的时候也是遇到了不少的困难。我的基本想法是先搭建一个能跑的通的贪吃蛇框架,再添加亿些小细节,但是一开始不光框架都跑不通,小细节也没能达到理想的效果。在翻看资料,学习新知后编写代码的过程中,我也对于pygame模块有了更深的了解,学会了很多新的函数,也尝试着利用这些函数为自己的代码添加细节。总之这是一次非常有收获的编程实践。
5. 课程总结
(1)课程感悟与思考
犹记得上个学期末提前蹲在教学楼蹭网只为能抢上王老师的Python课,也因此失去了选择其他一些我喜欢的热门公选课的机会。但是经过这一个学期的学习,我可以宽慰自己说:血赚不亏。作为大一的小盆友,或许知识体系不够完善,或许对于编程的能力尚未功夫到家,一开始接触Python我只感到困难重重。面向对象三要素,序列与Socket,于我而言都是陌生的概念;而且它们都抽象而难懂。但好在王老师生动具象的讲解让我得以明白概念背后的丰富意涵以及代码实现。甚至在最后一节课,我们还了解了爬虫技术。这在我看来已经是“高级科技黑”了。学习内容高级,老师讲解深入浅出,浅显易懂,选修这门课难道还不幸运吗?同时,Python语言的学习也可以与必修课中的C语言学习相互补充,相互促进。总之,本学期的Python公选课我打满分。在本期课程结束之后我也将继续练习Python编程,提高自己的本领。
(2)意见与建议
如果一定要说有什么建议的话,希望在平时老师能给回答问题正确的同学加分,因为仅仅靠期末那一节课回答问题加分对于没有抢到机会的同学有点可惜。平时积极回答问题的同学有可能最后一节没有回答问题,这样分数就没有加上了。
参考资料
- 学习通Python课程资料第13章《Pygame游戏编程》
- 零基础学python电子书318页至327页
相关推荐
政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx
政府科技管理者如何提升科技成果转化项目进场交易的备案效率?
山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md
【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 CSDN 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 CSDN 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 CSDN 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 CSDN 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。
高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md
【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 CSDN 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 CSDN 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 CSDN 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 CSDN 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。
ti-cgt-c2000-22.6.0.LTS-windows-x64-installer
ti-cgt-c2000-22.6.0.LTS-windows-x64-installer
光伏板太阳能板尘土灰尘脏污检测数据集VOC+YOLO格式1006张3类别.md
【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 CSDN 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 CSDN 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 CSDN 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 CSDN 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。



