python_类的继承

#蚂蚁追虫子-继承
import  random

class Sprite:
    step = [-2,2,-3,3]

    def __init__(self,gm,point=None):
        self.gm=gm
        if point is None:
            self.point = random.randint(0,20)
        else:
            self.point = point

    def jump(self):
        astep=random.choice(Sprite.step)
        if 0 <= self.point + astep <= 20:
            self.point += astep

class Ant(Sprite):
    def __init__(self,gm,point=None):
        super().__init__(gm,point)    #继承
        self.gm.set_point('ant',self.point)

    def jump(self):
        super().jump()
        self.gm.set_point('ant',self.point)

class Worm(Sprite):
    def __init__(self,gm,point=None):
        super().__init__(gm,point)   #继承
        self.gm.set_point('worm',self.point)

    def jump(self):
        super().jump()
        self.gm.set_point('worm',self.point)

class Gamemap:
    def __init__(self):
        self.ant_point = None
        self.worm_point = None

    def catched(self):
        print('ant:',self.ant_point,'worm:',self.worm_point)
        if self.ant_point is not None and self.worm_point is not None and self.ant_point == self.worm_point:
            return True

    def set_point(self,src,point):
        if(src == 'ant'):
            self.ant_point = point

        if(src == 'worm'):
            self.worm_point=point

if __name__ == '__main__':
    gm = Gamemap()
    worm = Worm(gm)
    ant = Ant(gm)
    while not gm.catched():
        worm.jump()
        ant.jump()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值