面向物件,使用者互動的練習
阿新 • • 發佈:2018-12-24
-
設計王者榮耀中的英雄類,每個英雄物件可以對其他英雄物件使用技能
-
具備以下屬性
和Q_hurt,W_hurt,E_hurt 三個屬性,表示各技能的傷害量
-
-
具備以下技能
Q W E
-
三個技能都需要一個敵方英雄作為引數
-
-
當敵方血量小於等於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)