猫咪藏在哪个房间python作业_【Python】每日一练:猫狗大战

编程题

20200428110830158804331033179.jpeg

编写程序,模拟猫狗大战要求:

(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() #输出猫的当前状态

运行结果

202004281588042963629764.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值