天天看點

Python基礎之面向對象實戰小遊戲

# 亞瑟和後羿兩個人站着互相對打,每打一下都扣血,誰先沒血就輸了
# 亞瑟(戰士)
class YaSe:
    def __init__(self, nickname):
        self.nickname = nickname
        self.blood = 400  # 血量
        self.aggressivity = 20  # 攻擊值
        self.armor = 0  # 防禦值
        self.money = 300  # 預設錢數是300

    def attack(self, obj):
        value = self.aggressivity - obj.armor
        obj.blood -= value
        print('%s--亞瑟,攻擊了%s一下,%s掉血%s' % (self.nickname, obj.nickname, obj.nickname, value))


# 後裔(射手)
class HouYi:
    def __init__(self, nickname):
        self.nickname = nickname
        self.blood = 150  # 血量
        self.aggressivity = 40  # 攻擊值
        self.armor = 0  # 防禦值
        self.money = 300  # 預設錢數是300

    def attack(self, obj):
        value = self.aggressivity - obj.armor
        obj.blood -= value
        print('%s--後裔,攻擊了%s一下,%s掉血%s' % (self.nickname,obj.nickname,obj.nickname,value))


ys=YaSe('alex')
hy=HouYi('jenny')
while True:
    if ys.blood<=0 or hy.blood<=0:
        print('亞瑟血量:',ys.blood)
        print('後裔血量',hy.blood)
        print('遊戲結束')
        break
    ys.attack(hy)
    hy.attack(ys)
    print('%s-亞瑟的血量還剩%s'%(ys.nickname,ys.blood))
    print('%s-後裔的血量還剩%s'%(hy.nickname,hy.blood))
           

繼續閱讀