Python面向对象:https://b23.tv/jg6FZv
片码段 dog.py
#2种狗具有不同的攻击力和防御能力。攻击强的防御弱;反之亦然; import random class Dog: dogs = [] #保存所有活着的Dog def __init__(self, name): self.name = name self.blood = 100 self.attack_power = 5 self.defense_power = 3 #攻击! def attack(self, dog2): print(f'{self.name}攻击{dog2.name},攻击力:{self.attack_power},防御力:{dog2.defense_power}') point = self.attack_power - dog2.defense_power if(dog2.blood > point): dog2.blood -= point print(f'{dog2.name}受到攻击,奋力自救,血量减少为{dog2.blood}') else: dog2.blood = 0 print(f'{dog2.name}受到攻击,失血过多,死亡!😭😭😭😭😭😭😭😭') Dog.dogs.remove(dog2) #判定狗的类型 def dog_type(self): if(isinstance(self, SheepDog)): return '牧羊犬🐑' elif(isinstance(self, PoliceDog)): return '警犬👮' else: return '普通犬' #牧羊犬 class SheepDog(Dog): def __init__(self, name): super().__init__(name) self.attack_power = random.randint(5, 10) self.defense_power = random.randint(3,5) print('🐑牧羊犬{self.name}问世!') self.dogs.append(self) #警犬 class PoliceDog(Dog): def __init__(self, name): super().__init__(name) self.attack_power = random.randint(8, 13) self.defense_power = random.randint(1,3) print('👮♀️警犬{self.name}问世!') self.dogs.append(self)主程序 game.py
#1. 首先创建100个Dog, 50个SheepDog, 50个PoliceDog #2. 每一轮游戏,随机选出2个Dog #3. dog1先攻击dog2,然后dog2攻击dog1 #3. 任何一方血量变为0就表明死亡!死亡的Dog退出游戏。 #4. 最后只有一个Dog了,游戏结束,胜利者可以吃鸡。 from dog import * import random #产生随机数字 import time #时间模块 #1.创建100条狗 for i in range(100): if(i%2==0): SheepDog(i+1) #创建1个牧羊犬 else: PoliceDog(i+1) #创建1个警犬 #2. 开始游戏循环 while(True): #判断是否只有1个Dog if(len(Dog.dogs) == 1): winner = Dog.dogs[0] print('🐔🐔🐔🐔🐔🐔🐔🐔') print('大吉大利,今晚吃鸡!') print(f'赢家是:{winner.dog_type()} {winner.name}') print('🐔🐔🐔🐔🐔🐔🐔🐔') break dog1, dog2 = random.sample(Dog.dogs, 2) # 随机选取两个 dog1.attack(dog2) dog2.attack(dog1) time.sleep(0.02) # 休眠,产生视觉效果