Python面向对象——架构设计【2】

本文通过Python面向对象编程展示了小明使用手机和座机打电话的场景,以及游戏角色系统中玩家与敌人之间的攻击、受伤和死亡机制。
摘要由CSDN通过智能技术生成

 练习1:打电话

请使用面向对象思想描述下列情景:

    小明使用手机打电话,还有可能使用座机....

class People:
    def __init__(self,name):
        self.name = name

    def call_up(self,tool):
        print(self.name,end="")
        tool.call()
        

class Tools:
    def __init__(self,way):
        self.way = way

    def call(self):
        print(f"使用{self.way}通话")

zs = People("张三")
ls = People("李四")
phone = Tools("手机")
landline = Tools("座机")
zs.call_up(phone)
ls.call_up(landline)

 练习2:游戏角色系统

玩家攻击敌人,敌人受伤(头顶爆字,减少血量),还有可能死亡(加分).

敌人攻击玩家,玩家受伤(碎屏,减少血量),还有可能死亡(充值).

体会:

    攻击完全相同

    受伤部分相同

    死亡完全不同

要求:

    增加了其他角色,敌人/玩家不变

class Role:
    def __init__(self, hp=0, atk=0):
        self.hp = hp
        self.atk = atk

    def attack(self, target):
        print("发起攻击")
        target.get_hurt(self.atk)

    def get_hurt(self, other_atk):
        self.hp -= other_atk
        if self.hp <= 0:
            self.death()

    def death(self):
        pass

class Player(Role):
    def get_hurt(self, other_atk):
        print("碎屏")
        super().get_hurt(other_atk)

    def death(self):
        print("充值")

class Enemy(Role):
    def get_hurt(self, other_atk):
        print("头顶爆字")
        super().get_hurt(other_atk)

    def death(self):
        print("加分")


# --------------测试--------------
p = Player(200, 50)
e = Enemy(100, 10)
p.attack(e)
e.attack(p)

p.attack(e)

 

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值