python小程序实现 --- 乌龟吃鱼(练习点——面向对象的特性:继承,多态,封装)

写在前面:博主python小白,新手学习。本文用于记录自己学习面向对象时的一个小练习题,仅供以后回顾。若能帮到任何人,博主倍感荣幸;若有任何错误和考虑不周之处,或有更简洁的方法,请路过的大神们不吝赐教,谢谢~~

推荐一篇写的详细的关于“面向对象的特性:继承,多态,封装” 的文章:https://www.cnblogs.com/zhaohuhu/p/9206123.html#_label0

一、编程要求:

按以下要求定义一个乌龟类和鱼类并尝试编程
1. 假设游戏场景为范围(x,y)为0<=x<=10,0<=y<=10
2. 游戏生成1只乌龟和10条鱼
3. 他们的移动方向均随机
4. 乌龟的最大移动能力是2(乌龟可以随机选择移动是1还是2),鱼的最大移动能力是1
5. 当移动到场景边缘,自动向反方向移动
6. 乌龟每移动一次,体力消耗1
7. 当乌龟和鱼重叠,乌龟吃掉鱼,乌龟体力增加20
8. 鱼不计算体力
9. 当乌龟体力值为0或者鱼的数量为0时,游戏结束 

二、实现思路: 

1. 将乌龟和鱼的共同点抽象出其父类Animal,属性为位置,方法为移动;

(1)init初始化参数

  • 位置参数 —— x,y表示坐标位置
  • 游戏边界范围—— 0到最大值10
  • 移动步长和方向 —— 初始化步长为0,边界为1,可任意设置,移动时会有数据覆盖

(2)移动方法定义

  • 定义一个标准化的move_step:每次调用都是走1步,4个方向,往每个方向走时将相应坐标值做出+1/-1的修改
  • 每个方向均考虑已移动至边界位置时的反方向移动处理
  • 打印log用于查看
class Animal(object):
    def __init__(self,name,x_value,y_value):
        self.name = name
        self.x_value = x_value
        self.y_value = y_value                      #乌龟和鱼抽象出来的共同属性是位置和移动
        self.range_max=10                           #游戏活动范围最大边界为10(x,y࿰
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值