目录

    1. 什么是对象?什么是类?

      对象就是变量

      类时一系列对象相同的特征与技能的结合体

    2. 绑定方法的有什么特点

      对象的绑定方法,是由对象来调用的,特殊之处就是把对象当做第一个参数传入该方法中

    3. 基于面向对象设计一个对战游戏

      基础的枪械游戏:

      class Saisi:
          def __init__(self,name,shooting1,life):
              #对象的所有特征
              self.name = name
              self.shooting1 = shooting1
              self.life = life
      
          #枪击的role方法
          def shooting(self, role):
              if role.life <= 0:
                  return True
      
              if self.life:
                  #role掉血
                  role.life -= self.shooting1
                  print(
                      f'''
                      Saisi:[{self.name}]击中Role:[{role.name}]
                      role掉血:[{self.shooting1}]
                      role还剩血量:[{role.life}]
                      ''')
      
      class Role:
          def __init__(self, name,shooting1, life):
              self.name = name
              self.shooting1 = shooting1
              self.life = life
      
           #role枪击saisi方法
          def shooting(self,saisi):
              if saisi.life <= 0:
                  return True
      
              if self.life:
                  # saisi掉血
                  saisi.life -= self.shooting1
                  print(
                      f'''
                      role:[{self.name}]击中saisi:[{saisi.name}]
                      saisi掉血:[{self.shooting1}]
                      saisi还剩血量:[{saisi.life}]
                      '''
                  )
      
      saisi1 = Saisi('qianlonger', 47, 100)
      role1=Role('tong', 50, 100)
      
      while True:
          flag1 = saisi1.shooting(role1)
          if flag1:
              break
          flag2 = role1.shooting(saisi1)
          if flag2:
              break
      

      王者玩法

      class Monkey:
          camp='Noxus'
          def __init__(self,nickname,
                       Doeshurt=315,
                       HP=625,
                       money=16000,
                       shield=2):
              self.nickname=nickname
              self.Doeshurt=Doeshurt
              self.HP=HP
              self.money=money
              self.shield=shield
          def attack(self,enemy):
              damage_value=self.Doeshurt-enemy.shield
              enemy.HP-=damage_value
      
      
      class Thyme:
          camp='Demacia'
          def __init__(self,nickname,
                       Doeshurt=385,
                       HP=500,
                       money=17000,
                       shield=1):
              self.nickname=nickname
              self.Doeshurt=Doeshurt
              self.HP=HP
              self.money=money
              self.shield=shield
          def attack(self,enemy):
              damage_value=self.Doeshurt-enemy.shield
              enemy.HP-=damage_value
      
      class BlackCleaver:
          def __init__(self,price=475,aggrev=9,HP=100):
              self.price=price
              self.aggrev=aggrev
              self.HP=HP
          def update(self,obj):
              obj.money-=self.price #换装备花钱
              obj.Doeshurt+=self.aggrev #普攻增加
              obj.HP+=self.HP #回血
          def fire(self,obj): #火攻
              obj.HP-=2000 #真伤2000
      
      r1=Monkey('越兵线猴')
      g1=Thyme('视野百里')
      b1=BlackCleaver()
      
      print(r1.Doeshurt,r1.HP,r1.money) #r1的伤害,血量,护盾
      
      if r1.money > b1.price:
          r1.b1=b1
          b1.update(r1)
      
      
      print(r1.Doeshurt,r1.HP,r1.money) #r1的伤害,血量,护盾
      
      print(g1.HP)
      r1.attack(g1) #普攻
      print(g1.HP)
      r1.b1.fire(g1) #物理法穿装备伤害
      print(g1.HP) #血量没有就黑屏