1. 程式人生 > >面向物件,使用者互動的練習

面向物件,使用者互動的練習

練習

  1. 設計王者榮耀中的英雄類,每個英雄物件可以對其他英雄物件使用技能

  2. 具備以下屬性

    1. 英雄名稱,等級,血量

    和Q_hurt,W_hurt,E_hurt 三個屬性,表示各技能的傷害量

  3. 具備以下技能

    Q W E

    1. 三個技能都需要一個敵方英雄作為引數

  4. 當敵方血量小於等於0時輸出角色死亡

 

一:
pass

 

二 :
class garen:
  gram = 'Demaxia'       #定義玩家的陣營
  def __init__(self,name,rank=120,attrak=420):         #預設攻擊,生命
      self.name = name
      self.rank = rank
      self.attrak = attrak
  def gim(self,enemy):       #enemy 是敵人 g1.gim(r1)
      enemy.attrak -= self.rank       #生命 = 生命 - 攻擊
      if enemy.attrak < 0:
          print('您的英雄%s被%s擊敗'%(g1.name,r1.name))
class riven:
  gram = 'Noxus'       #定義玩家的陣營
  def __init__(self,name,rank=188,attrak=500):         #預設攻擊,生命
      self.name = name
      self.rank = rank
      self.attrak = attrak
  def gim(self,enemy):       #enemy 是敵人
      enemy.attrak -= self.rank
      print('您的英雄%s被%s擊敗'%(r1.name, g1.name))
g1 = garen('蓋倫')
r1 = riven('瑞文')

g1.gim(r1)                 #g1蓋倫攻擊了一下
r1.gim(g1)                 #r1瑞文被攻擊了一下
g1.gim(r1)                 #g1蓋倫又攻擊了一下
r1.gim(g1)                 #r1瑞文又被攻擊了一下
g1.gim(r1)                 #g1蓋倫又攻擊了一下
# g1.gim(r1)                 #g1蓋倫又攻擊了一下
# g1.gim(r1)                 #g1蓋倫又攻擊了一下
print(r1.attrak)           #檢視蓋倫的血量

 

三 :
class Hero:

  def __init__(self,name,level,hp,Q_hurt,W_hurt,E_hurt):
      self.name = name
      self.level = level
      self.hp = hp
      self.Q_hurt = Q_hurt
      self.W_hurt = W_hurt
      self.E_hurt = E_hurt

  def Q(self,enemy):
      enemy.hp -= self.Q_hurt
      print("%s 對%s 釋放了 %s 技能" % (self.name,enemy.name,"Q"))
      print("造成了%s點傷害,剩餘血量%s" % (self.Q_hurt, enemy.hp))
      if enemy.hp <= 0:
          print("%s被%s弄死了" % (enemy.name,self.name))
  def W(self,enemy):
      enemy.hp -= self.W_hurt
      print("%s 對%s 釋放了 %s 技能" % (self.name, enemy.name, "W"))
      print("造成了%s點傷害,剩餘血量%s" % (self.W_hurt,enemy.hp))
      if enemy.hp <= 0:
          print("%s被%s弄死了" % (enemy.name, self.name))
  def E(self,enemy):
      enemy.hp -= self.E_hurt
      print("%s 對%s 釋放了 %s 技能" % (self.name, enemy.name, "E"))
      print("造成了%s點傷害,剩餘血量%s" % (self.E_hurt, enemy.hp))
      if enemy.hp <= 0:
          print("%s被%s弄死了" % (enemy.name, self.name))

# 建立兩個英雄
hero1 = Hero("小妲己",15,2000,50,500,600)
hero2 = Hero("小魯班",15,1500,50,500,600)
hero1.Q(hero2)
hero1.W(hero2)
hero1.E(hero2)
hero1.E(hero2)