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

用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 == c
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
PyTorch是一个基于Python的开源深度学习框架,被广泛应用于各种研究和工业项目中。大战是一个经典的图像分任务,旨在通过训练一个分网络来区分的图像。 在PyTorch中,我们可以使用torchvision包提供的数据集来加载和预处理图像数据。通过使用torchvision.datasets.ImageFolder函数,我们可以轻松地将图像数据集划分为两个别,并进行必要的预处理操作,如裁剪、缩放和归一化等。 接下来,我们可以定义一个卷积神经网络(CNN)作为分器。CNN是一种适用于图像处理任务的深度学习模型,其中包含多个卷积层、池化层和全连接层。我们可以使用PyTorch提供的nn.Module创建一个自定义的CNN模型,并在其中定义前向传播函数。 然后,我们可以使用训练集对CNN模型进行训练。在训练过程中,我们需要定义损失函数和优化器。损失函数用于衡量模型输出与真实标签之间的差异,常用的损失函数包括交叉熵损失函数。优化器用于更新网络参数以最小化损失函数,常用的优化器包括随机梯度下降(SGD)和Adam。 通过迭代训练和优化,我们可以逐渐改善模型的分性能。可以通过在验证集上评估模型的准确率、精确率和召回率等指标来评估模型的性能。一般情况下,我们会将训练集划分为训练集和验证集,并使用验证集上的性能作为模型调优的依据。 最后,在模型训练完成后,我们可以使用测试集对模型进行测试。通过计算模型在测试集上的准确率,我们可以评估模型在真实数据上的分性能。 总结来说,PyTorch可以很好地支持大战网络的构建和训练。通过灵活的接口和丰富的工具库,PyTorch使得深度学习任务更加简单和高效。通过不断调整网络结构和优化算法,我们可以提高模型的性能,并在大战任务中取得更好的分结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值