20243315 《Python程序设计》实验四报告

Python综合实践实验报告
课程:《Python程序设计》
班级: 2433
姓名: 梁雨晗
学号:20243315
实验教师:王志强
实验日期:2025年5月14日
必修/选修: 公选课
一、实验分析
本次实验源于之前实验课中老师讲述的分类来带的简单的对战例子,而作为一个与卡牌对战有点缘分的我便已经筹备起来完善一下这样的卡牌对战游戏,用以训练编程,闲来无事也可消遣。
本次实验主要应用了类通过对卡牌的定义,赋值,对角色定义赋值,从而实现一个简易的卡牌对战小游戏。
二、实验过程
首先便是对玩家卡以及作战卡的分类并由此对其进行数值分配:


在这之中还包括了对卡牌使用的限制,即“行动值”,以次来实现对卡牌强度的区分和限制。同时对轮换事宜进行了简单的描述,对护盾,伤害,治疗进行了简单的区分,限制了最大生命值上限。
在此之后便是对回合的轮换,其中包括了行动值的不断增加,以及护盾的限制:即仅仅存在一回合。


然后是回合的轮换以及对回合的过程中的行动的操作:

本次实验还包含了电脑的对战,玩家对战电脑时,由于电脑操作不易,使用random函数随机出牌可能使得游戏体验出现较差的体验,便使用了如下的代码

在这样结束后,由于发现这样的游戏玩起来实在单一无聊,卡牌简单,选择空间较小,这里选择了“无尽模式”,使玩家能够更长久地游玩,并在这样的操作后使得每一场战斗的胜利都能够选择收益,以更好地面对将来的电脑。



三、实验结果
这是与电脑对战的第一回合:

这是电脑使用了护盾类功能后的效果:

这是游戏胜利后的样子:

四、实验遇到的问题和解决方法
1.实验过程中出现了对战卡牌越抽越多,导致手牌越来越多,而实际使用到的卡牌却是越来越少,甚至出现了抽牌越来越少,甚至后来干脆没有牌可以抽,只剩下玩家和电脑面面相觑:


这里使每次牌库清空后重置牌库,使玩家与电脑双方有长久作战的能力。
2.在上述过程中介绍了游戏中护盾效果,但是最开始的护盾效果形同虚设,甚至加了护盾,挨打时却是结结实实地受到了全额伤害
而修改后还出现了护盾成为有了便是免伤的效果,加上玩家伤害本来就低于电脑防御,导致玩家慢慢变成机器,重复攻击却无济于事。


可以看到9点的护盾收到了12点的伤害仍是岿然不动,而行动值却是糟了老罪。

这里调整后便正常了。

五、实验感悟
本次实验最初是使用AI的力量生成的大致的模型,在初次使用后便出现了一系列的问题,问题很多,知识点也有很多,我在AI的力量帮助下,逐步搞懂了这些内容,也开始了解了这些奇妙内容的用法。
同时,这次实验过程中也让我明白了做游戏不易,对数值的参考较难,对游戏预期很大,也在不断完善的过程中不断产生了新的bug。
在实验过程中,我也明白了学python有意思,很难,却让人痛并快乐着。王老师的python课很有意思,也很值得认真学习。

posted @ 2025-06-08 18:00  d余寒b  阅读(38)  评论(0)    收藏  举报