猫狗大战----类的实例化和继承,带你看懂类方法的使用

本文通过一个猫狗大战的小游戏,详细讲解了Python中类的实例化和继承,以及类方法的运用。游戏涉及猫和狗的属性设置(如昵称、品种、攻击力、生命值、速度),它们之间的攻击、补给、速度变化等功能,通过不同组合调用相应函数实现多情节解析。通过实例代码,帮助读者深入理解Python面向对象编程的概念和实践。
摘要由CSDN通过智能技术生成

用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 &
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值