#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/14 15:07 # @Author : 大坏男孩 # @File : day8_对象的交互.py # @Software: PyCharm # @license : Copyright(C), 未来集团有限公司 # @Contact : 110@163.com # 创建一个英雄类,英雄具备名字、血量、攻击力、防御和金币特征,具备攻击 # 实例化出两个英雄,让两个英雄互相攻击,血量会减少(攻击-防御=扣除的血量) # 当某一个英雄血量为0,判定死亡 # 创建装备类,装备具备名字、血量、攻击、防御和价格,具备装备技能 # 英雄可以购买装备,英雄属性更新,金币要减少,英雄可以使用装备技能 # 英雄具备英雄技能,A英雄不能使用B英雄的技能 class Equipment(): def __init__(self,name,hp,gj,fy,price): self.name = name self.hp = hp self.gj = gj self.fy = fy self.price = price print("装备>>>{},血量为{},攻击力为{},防御力为{},价格为{}".format(self.name,self.hp,self.gj,self.fy,self.price)) def 黑切(self,obj): """暗影战斧的装备技能函数""" if "暗影战斧" in self.zb_lis: 切割 = 300 obj.hp = obj.hp - (切割 - obj.fy) # self.zb_lis[self.zb_lis.index("暗影战斧")] -->找列表zb_lis里面"暗影战斧"的索引,并调用索引 print("{}发动了{}技能切割,{}受到技能攻击,血量减少{},当前血量为{}" .format(self.name,self.zb_lis[self.zb_lis.index("暗影战斧")],obj.name,切割,obj.hp)) if obj.hp <= 0: obj.hp = 0 print("{}血量为0".format(obj.name)) self.复活(obj) # print(obj.hp) print("{}诈尸,原地复活!血量恢复为{}".format(obj.name,obj.hp)) else: print("{}未购买{},不能使用技能".format(self.name,"暗影战斧")) def 复活(self,obj): """复活的函数""" if "复活甲" in obj.zb_lis: obj.hp = obj.hp + 500 class Hero(Equipment): def __init__(self,name,hp,gj,fy,jb): self.name = name self.hp = hp self.gj = gj self.fy = fy self.jb = jb self.zb_lis = [] print("峡谷最帅的人>>>{},血量为{},攻击力为{},防御力{},金币有{}" .format(self.name,self.hp,self.gj,self.fy,self.jb)) def pk(self,obj): """两个英雄PK,self:英雄1 obj:英雄2""" obj.hp = obj.hp - (self.gj - obj.fy) print("{}被{}攻击,血量减少为{}".format(obj.name,self.name,obj.hp)) if obj.hp <= 0: print("{}死不瞑目".format(obj.name)) def purchase_equipment(self,zb): """购买装备""" if self.jb >= zb.price: self.hp = self.hp + zb.hp self.gj = self.gj + zb.gj self.fy = self.fy + zb.fy self.jb = self.jb - zb.price self.zb_lis.append(zb.name) print("{}购买{}成功,属性已更新为{} {} {} {}".format(self.name,zb.name,self.hp,self.gj,self.fy,self.jb)) else: print("金币不足,无法购买!!!") 兰陵王 = Hero("兰陵王",500,200,38,4000) 后羿 = Hero("后羿",500,70,30,3500) # # 兰陵王对后羿发起进攻 # 兰陵王.pk(后羿) # 兰陵王.pk(后羿) # 兰陵王.pk(后羿) # # 后羿对兰陵王发起进攻 # 后羿.pk(兰陵王) 暗影战斧 = Equipment("暗影战斧",0,80,0,2000) 兰陵王.purchase_equipment(暗影战斧) 兰陵王.黑切(后羿) 兰陵王.黑切(后羿) 复活甲 = Equipment("复活甲",500,0,0,2000) 后羿.purchase_equipment(复活甲) # 后羿.复活(兰陵王)