1.用函数来解决人狗大战
# 函数实现人狗大战 def person(name,age,sex,job): data={ "name":name, "age":age, "sex":sex, "job":job } return data def dog(name,age): data={ "name":name, "age":age } return data d1 = dog("小黑",18) p1=person("小明",20,"F","开发") p2=person("小五",18,"A","测试") def bark(d): print("dog %s:wang wang wang "%d['name']) def walk(p): print("person%s:人打狗"%p['name']) bark(d1) #dog 小黑:狗大人 walk(p2) # person小五:人打狗 # 面向对象 class Person: # 定义一个类 rotel='person' # 人的角色都是人 def __init__(self,name,attack_power,hp): self.name=name #人的昵称 self.attack_power=attack_power # 人的攻击力 self.hp=hp # 血量 def attack(self,dog): # 人攻击狗,狗的生命值根据人的攻击力而下降 dog.hp -= self.attack_power egg=Person('xiaowu',10,100) print(egg.name) print(egg.attack_power) print(egg.hp) print(egg.attack())
结果如下:
面向对象解决人狗大战
class Person(): rptel="中国人" # 属性一:类属性 def __init__(self,name,attack_power,hp): self.name=name #名字 self.attack_power=attack_power # 攻击力 self.hp=hp #血量 def attack(self,dog): # 狗的血量=狗的血量减去人的攻击力 dog.hp=dog.hp-self.attack_power class Dog(): rotel='dog' def __init__(self,name,attack,hp): self.name=name self.attack=attack self.hp=hp def blbte(self,person): # 狗咬人 person.hp=person.hp-self.attack egg = Person("小明",20,100) ha2 = Dog("xiaohei", 10,50) print(egg.hp) # 查看人的血量 egg.attack(ha2) # 人打了狗一下 print(ha2.hp) # 查看狗的血量 ha2.blbte(egg) # 狗咬人 print(egg.hp) # 插件人的血量
打印结果如下:
人狗大战之RMB玩家
class Person(): rotel = "人" # 静态属性 def __init__(self, name, attack_power, hp): self.name = name # 昵称 self.attack_power = attack_power # 攻击力 self.hp = hp # 血量 def attack(self, dog): # 人打狗 dog.hp = dog.hp - self.attack_power class Dog(): rotel = "狗" def __init__(self, name, attack_power, hp): self.name = name self.attack_power = attack_power self.hp = hp def bite(self, person): # 狗咬人 person.hp = person.hp - self.attack_power zhang = Person("张三", 20, 100) ha = Dog("二哈", 10, 50) zhang.money=200 # 加入新的属性, print(zhang.money) class Weapon(): # 武器类 def __init__(self, name, price, aggr, hp): self.name = name # 武器名称 self.price=price # 价格 self.aggr = aggr # 对攻击力的加成 self.hp = hp # 对血量的加成 def updata(self, person): # 武器装备到人 person.money=person.money-self.price person.attack_power = person.attack_power + self.aggr # 人的攻击力 person.hp = person.hp + self.hp # 人的血量 def kill(self, obj): # 装备:主动技能 obj.hp = obj.hp - self.aggr wuqi = Weapon("流星锤", 55, 20, 30) if zhang.money>wuqi.price: wuqi.updata(zhang) zhang.weapon=wuqi print(ha.hp) # 查看狗的血量 print(zhang.attack_power) # 查看人的攻击力 zhang.attack(ha) # 人打狗一下 print(ha.hp) # 查看狗的血量 # 调用武器的技能 zhang.weapon.kill(ha) print(ha.hp) print(zhang.hp)
打印结果: