编程题
编写程序,模拟猫狗大战要求:
(1)可创建多个猫和狗的对象,并初始化每只猫和狗(包括昵称、品种、攻击力、生命值等属性)
(2)猫可以攻击够,狗的生命值会根据猫的攻击力而下降;同理狗可以攻击猫,猫的生命值会根据狗的攻击力而下降。
(3)猫和狗可以通过吃来增加自身的生命值。
(4)当生命值小于等于0时,表示已被对方杀死。
编程思路
根据要求,可定义两个类Cat类和Dog类。Cat类中包含一个构造方法用于初始化各个属性(包括昵称、品种、攻击力、生命值等),一个攻击狗的方法(攻击狗使得狗的生命值下降),一个吃的方法(调用一次可使自身的生命值增加),一个判断是否死亡的方法(如果生命值小于等于0,表示已被对方杀死,否则输出当前的生命值)。用类似的方式定义Dog类。然后创建对象,开始战斗。
编程实现#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author : 青松
# @Time : 2020/4/28 11:01
# @Site : www.itclub16.com
#定义一个猫类
class Cat:
role = 'cat' #猫的角色属性都是猫
#构造方法初始化猫
def __init__(self, name, breed, aggressivity, life_value):
self.name = name #每一只猫都有自己的昵称
self.breed = breed #每一只猫都有自己的品种
self.aggressivity = aggressivity #每一只猫都有自己的攻击力
self.life_value = life_value #每一只猫都有自己的生命值
#定义猫攻击狗的方法
def attack(self,dog):
dog.life_value -= self.aggressivity #狗的生命值会根据猫的攻击力而下降
#定义增长生命值的方法
def eat(self):
self.life_value += 50
#定义判断是否死亡的方法
def die(self):
if self.life_value <= 0: #如果生命值小于等于0表示已被对方杀死
print(self.name,'已被杀死!')
else:
print(self.name,'的生命值还有',self.life_value)
#定义一个狗类
class Dog:
role = 'dog' #狗的角色属性都是狗
#构造方法初始化狗
def __init__(self, name, breed, aggressivity, life_value):
self.name = name #每一只狗都有自己的昵称
self.breed = breed #每一只狗都有自己的品种
self.aggressivity = aggressivity #每一只狗都有自己的攻击力
self.life_value = life_value #每一只狗都有自己的生命值
#定义狗攻击猫的方法
def bite(self,cat):
cat.life_value -= self.aggressivity #猫的生命值会根据狗的攻击力而下降
#定义增长生命值的方法
def eat(self):
self.life_value += 30
#定义判断是否死亡的方法
def die(self):
if self.life_value <= 0: #如果生命值小于等于0表示已被对方杀死
print(self.name,'已被杀死!')
else:
print(self.name,'的生命值还有',self.life_value)
#创建实例
cat_1 = Cat('Mily','波斯猫',30,1500) #创造了一只实实在在的猫
dog_1 = Dog('Lucky','哈士奇',50,900) #创造了一只实实在在的狗
cat_1.die() #输出猫的当前状态
dog_1.die() #输出狗的当前状态
print('------开始战斗-----')
cat_1.attack(dog_1) #猫攻击狗一次
dog_1.bite(cat_1) #狗攻击猫一次
cat_1.die() #输出猫的当前状态
dog_1.die() #输出狗的当前状态
for i in range(29): #循环实现,猫攻击狗29次
cat_1.attack(dog_1)
dog_1.die() #输出狗的当前状态
cat_1.eat() #猫吃东西一次
cat_1.die() #输出猫的当前状态
运行结果