(模拟)西天取经放弃了(python类实践)

这篇博客介绍了一个Python模拟西游记角色孙悟空、猪八戒和沙僧进行战斗的实例,通过类来定义角色属性和行为,包括血量、武器和攻击力。文章提供了具体的战斗逻辑和代码实现,旨在帮助初学者理解Python类的使用。
摘要由CSDN通过智能技术生成

题意

描述
一天唐僧被妖怪抓走了,菩萨神仙都不救,悟空八戒沙僧因为要争夺最后点盘缠,打了起来,最后谁能获得夺得最终的盘缠呢?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

接着“西天取经已经放弃了(1)”和“西天取经已经放弃了(2)”,孙悟空猪八戒沙僧都准备好了,那就开战吧!!!!‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

他们三者的名字、血量、武器名称、武器攻击力的属性分别为:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

孙悟空 50 金箍棒 20
猪八戒 100 九钉耙 15
沙僧 75 降妖宝杖 10
①每次战斗输入两个数index1和index2,这两个数分别代表攻击者和被攻击者,可以编写一个函数通过输入的值返回所指向的对象(见编程模板)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

②每次战斗前要根据攻击者和被攻击者存活情况进行判断,如果攻击者没存活,打印“xxx阵亡了 不能攻击”(xxx为攻击者名字);如果被攻击者没存活,打印“xxx阵亡了 不能被攻击”(xxx为攻击者名字);如果都存活,则调用被攻击者的beAttacked函数;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

③循环体的控制条件是类的公有变量peopleNum不等于1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

④循环结束后,根据存活者打印‘xxx赢了’(xxx为存活者名字)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

输入:一次打斗输入分别是孙悟空猪八戒沙僧对应序号‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

输出:调用beAttacked方法时的打印及最终获胜的人的名字的打印

样例
输入 输出
示例 1
1
3
1
3
1
3
1
3
1
3
1
2
1
2
1
2
1
2
1
2
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量55
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量35
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量15
孙悟空用金箍棒攻击了沙僧 沙僧阵亡了
沙僧阵亡了 不能被攻击
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量80
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量60
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量40
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量20
孙悟空用金箍棒攻击了猪八戒 猪八戒阵亡了
孙悟空赢了

解:

算法都谈不上的一道水题,帮助初学者熟悉一下class的用法吧。要是接触过c的同学,可以把类理解成一种结构体吧,用熟了其实是挺好用。

代码:

class people():
    def __init__(self, name, life, weaponName, weaponPower, peopleAlive):
        self.name=name
        self.life=life
        self.weaponName=weaponName
        self.weaponPower=weaponPower
        self.peopleAlive=peopleAlive

    def beAttacked(self, pow):
        self.life = self.life-pow

    def showResult(self, attacker, weapon, live):
        print("{}用{}攻击了{}".
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值