python 面向对象例题

本文通过实例演示如何使用面向对象编程创建一个简单的游戏,包括定义游戏公司、游戏名称,实例化英雄角色,并实现英雄间相互攻击直至一方死亡的游戏逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向对象小游戏

          要求:

                  1、定义游戏公司、游戏名称

                  2、实例化两个英雄(属性:HP,name,attack 攻击力,skill 技能)

                  3、定义一个普通方法:两个英雄随机用技能互相攻击直至一方死亡

class PlayGame:
    gameName = '王者荣耀'
    company = '腾讯公司'
    real_num = 0
    def __init__(self,name,HP,attack,skill):
        self.name = name
        self.HP = HP
        self.attack = attack
        self.skill = skill
        PlayGame.real_num += 1
    def action(self,hero):
        import random
        import time
        while True:
            skill_hero = random.choice(hero.skill)
            skill_hero_index = hero.skill.index(skill_hero)+1
            skill_self = random.choice(self.skill)
            skill_self_index = hero.skill.index(skill_self)+1
            print("%s 受到了 %s 的%s技能攻击,受到伤害%d,%s剩余血量%d" %(self.name,hero.name,skill_hero,30*skill_hero_index,self.name,self.HP-30*skill_hero_index))
            self.HP -= 30*skill_hero_index
            print("%s 反攻 %s ,使用%s技能攻击,造成伤害%d,%s剩余血量%d" %(self.name,hero.name,skill_self,25*skill_self_index,hero.name,hero.HP-25*skill_self_index))
            hero.HP -= 25*skill_self_index
            time.sleep(0.5)
            print("="*80)
            if hero.HP <= 0:
                print('韩超战败了')
                return 1
            if self.HP<=0:
                print('关羽战败了')
                return 0

print('产品介绍: %s 的 %s 游戏!'%(PlayGame.gameName,PlayGame.company))
print('比赛开始:-----------------------------------------------------',end='\n\n')
guanYu_skill= ['Q技能','W技能','E技能','R技能']
hanChaos_skill = ['Q技能','W技能','E技能','R技能']
guanYu = PlayGame('关羽',1500,100,guanYu_skill)
hanChao = PlayGame('韩超',1200,90,hanChaos_skill)
guanYu.action(hanChao)

 

### Python 类与对象 示例代码及练习题目 #### 创建宠物类及其子类 为了更好地理解面向对象编程中的继承概念,下面是一个简单的例子,展示了如何创建基类 `Pet` 和两个派生类 `Cat` 及 `Dog`。 ```python class Pet: """定义一个通用的宠物类""" def __init__(self, name, age): self.name = name self.age = age def show_info(self): return f'名字:{self.name}, 年龄:{str(self.age)}' class Cat(Pet): """定义猫这个具体的宠物种类""" def __init__(self, name, age, breed='未指定', color='白色'): super().__init__(name, age) self.breed = breed self.color = color def eat(self): return '正在吃鱼...' def purr(self): # 新增方法:猫咪特有的行为——发出呼噜声 return '*呼噜*' def meow(self): return '喵~' def show_info(self): base_info = super().show_info() return f'{base_info} 种类:猫, 品种:{self.breed}, 颜色:{self.color}' class Dog(Pet): """定义狗这个具体的宠物种类""" def __init__(self, name, age, breed='土狗'): super().__init__(name, age) self.breed = breed def eat(self): return '正在啃骨头...' def destroy_home(self): # 新增方法:狗狗特有的行为——拆家 return '呜...对不起主人!' def bark(self): return '汪!' def show_info(self): base_info = super().show_info() return f'{base_info} 种类:狗, 品种:{self.breed}' ``` 通过上述代码可以学习到: - 使用 `super()` 函数调用父类的方法来减少重复编码; - 子类可以根据实际需求重写或新增特定的行为[^3]; #### 练习题目建议 1. 尝试修改现有程序,在不改变原有结构的情况下增加一个新的动物类别(如鸟类),并为其添加独特的特性。 2. 实现一个名为 `Shelter` 的新类,该类能够存储多个不同类型的宠物实例,并提供相应接口用于管理这些宠物的信息显示等功能。 3. 设计一组测试案例验证各个类的功能是否正常工作,比如给定某些输入参数后能否得到预期的结果输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值