20231108陈震浩《Python程序设计》实验四报告

2301_80466089 2024-05-29 22:46:26

20231108 2023-2024-2 《Python程序设计》实验四报告

课程:《Python程序设计》
班级: 2311
姓名: 陈震浩
学号:20231108
实验教师:王志强
实验日期:2023年5月28日
必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
本实验通过pygame实现了贪吃蛇游戏可多人PK版

2. 实验过程及结果

最最开始,我们先引入有关的模块,初始化以及定义游戏界面大小和颜色
​​​​

img

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

img

img

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

img

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

img

img

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

img

演示视频

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

img

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

img

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

img

运行视频如下

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页

...全文
276 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文系统研究了开关频率大于谐振频率(fs>fr)工况下,移相混合控制LLC谐振变换器在低压增益区域的工作特性,深入分析其在变频与移相结合控制模式下的调制机理、工作模态划分及损耗分布规律。通过Simulink平台构建高保真仿真模型,对变换器在不同负载和输入条件下的电压增益、转换效率、关键器件电压电流应力等性能指标进行了全面仿真验证,重点探讨了其在低增益区间的软开关实现能力与效率优化潜力,旨在提升LLC变换器在宽范围输入输出应用中的动态响应与能源转换效率。; 适合人群:从事电力电子变换器设计、高频电源开发及相关领域的高校研究生、科研院所研究人员及企业研发工程师,要求具备扎实的电路理论基础、电力电子技术知识以及一定的Simulink仿真能力。; 使用场景及目标:①深入理解LLC谐振变换器在fs>fr条件下采用移相混合控制的内在工作机理与模态转换过程;②掌握利用Simulink搭建复杂谐振变换器精确仿真模型的方法与技巧;③分析并优化低压增益区的增益特性与损耗构成,为设计高效率、高功率密度的软开关电源提供理论依据和数据支持; 阅读建议:建议读者结合文中所述仿真模型,亲自复现仿真过程,重点观察不同控制参数(如移相比、开关频率)对电压增益曲线和关键波形的影响,并对比传统变频控制策略,深入探究混合控制在拓宽调压范围、提升轻载效率方面的优势,从而深化对现代高效谐振电源设计的理解。
内容概要:本文提出了一种基于粒子群优化算法(PSO)的配电网光伏储能双层优化配置模型,以IEEE33节点系统为标准算例,实现光伏发电单元与储能系统的协同选址与定容优化。该模型采用双层架构设计,上层以投资成本、运行经济性及网络损耗最小为目标优化设备配置方案,下层通过潮流计算评估系统在不同负荷场景下的运行性能,综合考虑电压稳定性、供电可靠性及可再生能源消纳能力,最终通过Matlab编程实现完整求解流程,为高渗透率分布式电源接入背景下的配电网规划提供了有效的技术支撑。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、高校科研人员及从事新能源并网、智能配电网规划与优化的工程技术人员。; 使用场景及目标:①研究含高比例光伏接入的配电网规划与运行协同优化问题;②掌握双层优化建模方法与粒子群算法在复杂电力系统问题中的应用技巧;③为实际工程中分布式光伏与储能系统的科学选址与容量配置提供理论依据与仿真验证平台。; 阅读建议:建议读者结合Matlab代码深入理解双层迭代求解机制,重点关注算法收敛性分析、参数敏感性测试,并可通过更换初始种群、调整权重因子或引入其他标准测试系统(如IEEE69节点)进行对比实验,进一步验证所提模型的普适性与鲁棒性。
内容概要:本文围绕双机并联虚拟同步发电机(VSG)在微电网中的功率分配、黑启动、虚拟阻抗与预同步控制展开,基于Simulink平台构建了完整的微电网系统仿真模型。重点研究了VSG在双机并联运行下的有功/无功功率均分控制策略,通过引入虚拟阻抗技术有效解决了因线路阻感比差异导致的功率分配不均问题。同时,设计了微电网黑启动流程与并网预同步控制模块,实现了待并网系统与主网在电压幅值、频率和相位上的精确同步,显著降低了并网冲击电流。系统整合了VSG控制、下垂控制、虚拟阻抗、锁相环(PLL)及预同步逻辑等关键环节,全面验证了多VSG协同运行的稳定性、自主恢复能力与并网可靠性。; 适合人群:具备电力系统、电力电子及自动控制等相关专业知识,从事微电网、分布式发电、VSG控制与并网技术研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解双机并联VSG系统中功率分配不均的机理及虚拟阻抗的补偿作用;②掌握微电网黑启动全过程及预同步控制的关键技术要点;③学习并实践基于Simulink的微电网多层次、多目标控制策略的建模与仿真方法;④为相关科研课题、毕业设计或实际工程项目提供可复现、可拓展的技术方案与仿真参考。; 阅读建议:建议结合提供的Simulink模型文件进行同步学习,重点关注VSG控制参数整定、虚拟阻抗设计原则、预同步切换逻辑等核心模块的实现细节,并可通过改变负载投切、线路参数或初始频率偏差等条件进行多工况仿真测试,以深入探究系统的动态响应特性与鲁棒性。

110

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用Python!
python3.11 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧