用python编写程序,实现猫狗大战小游戏情景,让你更好的了解类方法的使用!
要求:
1.可创建多个猫和狗的对象,并初始化每只猫和狗(包括昵称、品种、攻击力、生命值,速度等属性)。
2.猫可以攻击狗,狗的生命值会根据猫的攻击力而下降;同理狗可以攻击猫,猫的生命值会根据狗的攻击力而下降。
3.猫和狗可以通过吃来增加自身的生命值。
4.猫和狗可以通过提高速度来追击或逃避敌方的攻击。
5.当猫或狗的生命值小于等于0时,表示已被对方杀死。
6.根据不同出战的动物来调用不同的函数,实现多情节解析。
好了,话不多说,正式进入正文。
(1)先判断出战的动物,这里猫的一族有英短(小小)和加菲(菲菲);狗的一族有金毛(翠花)和二哈(百万);为什么这样取名,从抖音看到的宠物哈哈哈。
print('猫之一族中小小和菲菲是好朋友,狗之一族中百万和翠花是一对')
a = str(input('请选择猫的品种,猫的品种有加菲和英短:'))
b = str(input('请选择狗的品种,狗的品种有金毛和二哈:'))
class Check:
#判断出战的动物
if a == '加菲':
print('出战的是菲菲')
elif a == '英短':
print('出战的是小小')
if b == '金毛':
print('出战的是翠花')
elif b == '二哈':
print('出战的是百万')
(2)定义猫和狗两个类的一些基本属性,比如种类,昵称,攻击力、生命值、速度。先让猫和狗的角色属性定为cat和dog,方便后续使用。
def __init__(self,kind,name,attack,life,quick):
self.kind = kind #种类
self.name = name #名字
self.attack = attack #攻击力
self.life = life #生命
self.quick = quick #速度
role = 'cat' #猫的角色属性都是猫
role = 'dog' #狗的角色属性都是dog
(3)定义猫攻击狗的函数,让狗的生命值随猫的攻击而下降。
def attacked1(self,dog):
#定义猫攻击狗的函数
print("当猫攻击狗时:")
dog.life -= self.attack #狗的生命值会根据猫的攻击力而下降
同理,狗攻击猫的函数也一样,猫的生命值随狗的攻击而下降。
def attacked2(self,cat):
#定义狗攻击猫的函数
print("当狗攻击猫时:")
cat.life -= self.attack #猫的生命值会根据狗的攻击力而下降
(4)接着定义生命值函数,判断生命值的余值,当生命值小于0时,该动物被敌方杀死。
def health(self):
#判断生命值
if self.life <= 0:
print(self.name, "已被杀死")
else:
print(self.name, '的生命值还剩下', self.life)
(5)定义一个能量补给函数,当猫或狗吃到补给时会回血,增加生命值。
def eat(self):
print('------得到能量补充!------')
self.life += 30
(6)定义猫和狗速度函数,当猫或狗处于某种状态时速度会增加。代码如下:
def quick1(self):
#增加翠花奔跑的速度
self.quick +=20
print('飞快奔跑速度达到', dog1.quick)
def quick6(self):
#增加百万奔跑的速度
self.quick +=30
print('飞快奔跑速度达到', dog2.quick)
def quick3(self):
#增加百万追击的速度
print('但百万的速度达到',dog2.quick,'很快追上菲菲')
self.quick += 40
def quick2(self):
#增加菲菲逃命的速度
self.quick += 20
print(cat2.name,'见状急速逃亡速度达到',cat2.quick)
def quick4(self):
#增加小小追击的速度
self.quick +=30
print(cat1.name,'飞速追赶速度达到',cat1.quick)
def quick5(self):
#增加菲菲追击的速度
self.quick += 20
print(cat2.name, '飞速追赶速度达到', cat2.quick)
(7)实例化对象,给猫和狗赋值。
#实例化对象
cat1 = Cat("英短",'小小',80,300,50)
cat2 = Cat("加菲",'菲菲',70,500,80)
dog1 = Dog('金毛','翠花',50,500,60)
dog2 = Dog('二哈','百万',100,400,50)
(8)有了上面这些功能就可以开始我们的小游戏了,回到最开始对出战动物的判断那里,当我们选择的出战动物是小小和翠花时,也就是英短猫和金毛,会触发Cat1()这个函数。
代码如下:
if a == cat1.kind and b &