Python案例——决战紫禁之巅

问题分析

  • 决战紫禁之巅有两个人物,西门吹薛以及叶孤毕

    • 属性

      • name玩家的名字

      • blood玩家血量

    • 方法

      • tong()捅对方一刀,对方掉血10滴

      • kanren()砍对方一刀,对方掉血15滴

      • chiyao()吃一颗药,补血10滴

      • __ str __打印玩家状态

实现步骤

  • 1、定义类,创建__ init __ 方法

     import time #导入时间的库
     #创建类
     class Hero(object):
         #创建初始化方法
         def __init__(self, name):
             """
             定义name,blood属性
             :param name:角色名
             """
             self.name = name
             self.blood = 100

  • 2、创建玩家技能方法

     def tong(self,enemy):
         """
         捅对方一刀
         :param enemy:敌人
         :return:
         """
         enemy.blood -= 10
         info = '%s 捅了 %s 一刀'%(self.name,enemy.name)
         print(info)
     ​
     def kanren(self,enemy):
         """
         砍对方一刀
         :param enemy:敌人
         :return:
         """
         enemy.blood -= 15
         info = '%s 砍了 %s 一刀'%(self.name,enemy.name)
         print(info)
         
     def chiyao(self):
         """
         吃药补血
         :return:
         """
         self.blood += 10
         info = '%s 吃了一颗补血药,加10滴血'%(self.name)
         print(info)

  • 3、创建__ str__ 方法,输出玩家状态

     def __str__(self):
         return '%s 还剩下%s血'%(self.name,self.blood)

  • 4、创建西门吹薛以及叶孤毕两个人物

     xbw = Hero('西门吹薛')
     bwh = Hero('叶孤毕')

  • 5、两个人开始互砍

     while True:
         if bwh.blood <= 0 or xbw.blood <= 0:
             #满足条件 就退出循环
             break
         xbw.tong(bwh)   #薛捅了毕一刀
         print(bwh)
         print(xbw)      #打印两者的状态
         print('*' * 30) #分隔
         bwh.kanren(xbw) #毕砍了薛一刀
         print(bwh)
         print(xbw)      #打印两者的状态
         print('*' * 30) #分隔
         xbw.chiyao()    #薛吃药补血
         print(bwh)
         print(xbw)      #打印两者的状态
         print('*' * 30) #分隔
         time.sleep(1)   #休眠一秒钟
         
     print('————————————对战结束————————————')

运行结果:

完整代码:

import time #导入时间的库
#创建类
class Hero(object):
    #创建初始化方法
    def __init__(self, name):
        #定义name,blood属性
        self.name = name
        self.blood = 100

    def tong(self, enemy):
        """
        捅对方一刀
        """
        enemy.blood -= 10
        info = '%s 捅了 %s 一刀'%(self.name, enemy.name)
        print(info)


    def kanren(self, enemy):
        """
        砍对方一刀
        """
        enemy.blood -= 15
        info = '%s 砍了 %s 一刀'%(self.name, enemy.name)
        print(info)


    def chiyao(self):
        """
        吃药补血
        """
        self.blood += 10
        info = '%s 吃了一颗补血药,加10滴血'%self.name
        print(info)

    def __str__(self):
        return '%s 还剩下%s血'%(self.name,self.blood)

xbw = Hero('西门吹薛')
bwh = Hero('叶孤毕')
while True:
    if bwh.blood<=0 or xbw.blood<=0:
        # 满足条件 就退出循环
        break
    xbw.tong(bwh)  # 薛捅了毕一刀
    print(bwh)
    print(xbw)  # 打印两者的状态
    print('*'*30)  # 分隔
    bwh.kanren(xbw)  # 毕砍了薛一刀
    print(bwh)
    print(xbw)  # 打印两者的状态
    print('*'*30)  # 分隔
    xbw.chiyao()  # 薛吃药补血
    print(bwh)
    print(xbw)  # 打印两者的状态
    print('*'*30)  # 分隔
    time.sleep(1)  # 休眠一秒钟

print('————————————对战结束————————————')



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值