一、定义一个门票系统

门票的原价是100元

当周末的时候门票涨价20%

小孩子半票

计算2个成人和1个小孩的平日票价

----------------------------------------------------------

class Ticket():    def __init__(self, weekend=False, child=False):        self.exp = 100        if weekend:            self.inc = 1.2        else:            self.inc = 1

        if child:            self.discount = 0.5        else:            self.discount = 1

    def cal_price(self, num):        return self.exp * self.inc * self.discount * num

adult = Ticket()child = Ticket(child=True)

print("两个成年人和一个小孩子平日的价格是{}".format(adult.cal_price(2)+ child.cal_price(1)))-------------------------------------------游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程一、假设游戏场景为范围(x,y)为0<=x<=10,0<=y<=10二、游戏生成1只乌龟和10条鱼三、他们的移动方向均随机四、乌龟的最大移动能力是2(乌龟可以随机选择移动是1还是2),鱼的最大移动能力是1五、当移动到场景边缘,自动向反方向移动六、乌龟没移动一次,体力消耗1七、当乌龟和鱼重叠,乌龟吃掉鱼,乌龟体力增加20八、鱼不计算体力九、当乌龟体力值为0或者鱼的数量为0时,游戏结束-------------------------------------------
import random as r

class Turtle(object):    def __init__(self):        self.power = 100

        #初始化乌龟的位置        self.x = r.randint(0, 10)        self.y = r.randint(0, 10)

    def move(self):        new_x = r.choice([1, 2, -1, -2]) + self.x        new_y = r.choice([1, 2, -1, -2]) + self.y

        # 判断   乌龟的移动是否超出了边界

        if new_x < 0:            self.x = 0 - (new_x - 0)        elif new_x > 10:            self.x = 10 - (new_x - 10)        else:            self.x = new_x

        if new_y < 0:            self.y = 0 - (new_y - 0)        elif new_y > 10:            self.y = 10 - (new_y - 10)        else:            self.y = new_y

        self.power -= 1        return (self.x, self.y)

    def eat(self):        self.power += 20        if self.power >= 100:            self.power = 100

class Fish(object):

    def __init__(self):        self.x = r.randint(0, 10)        self.y = r.randint(0, 10)

    def move(self):        new_x = self.x + r.choice([1, -1])        new_y = self.y + r.choice([1, -1])

        if new_x < 0:            self.x = 0 - (new_x - 0)        elif new_x > 10:            self.x = 10 - (new_x - 10)        else:            self.x = new_x

        if new_y < 0:            self.y = 0 - (new_y - 0)        elif new_y > 10:            self.y = 10 - (new_y - 10)        else:            self.y = new_y

        return (self.x, self.y)

turtle = Turtle()fish = []for i in range(10):    new_fish = Fish()    fish.append(new_fish)

while True:    if not len(fish):        print("鱼被吃完了,游戏结束")        break    if not turtle.power:        print("乌龟体力被耗尽了,游戏结束了")        break

    pos = turtle.move()

    # 在迭代中做列表的删除元素是非常危险的,经常会出现一些意想不到的问题,因为迭代器是直接引用列表元素的数据做的操作    # 所以 我们这里把列表拷贝一份传给迭代器,然后再对原列表做操作    for each_fish in fish[:]:        if each_fish.move() == pos:            turtle.eat()            fish.remove(each_fish)            print("有一条鱼被吃掉了")-----------------------------------------定义一个点(point)和直线(Line)类,使用getLen方法获取两点构成直线的长度-----------------------------------------
import math

class Point(object):    def __init__(self, x=0, y=0):        self.x = x        self.y = y

    def get_x(self):        return self.x

    def get_y(self):        return self.y

class Line(object):    def __init__(self, p1, p2):        self.x = p1.get_x() - p2.get_x()        self.y = p1.get_y() - p2.get_y()

        self.len = math.sqrt(self.x*self.x + self.y*self.y)

    def get_len(self):        return self.len

p1 = Point(2,3)p2 = Point(5,7)line = Line(p1, p2)line.get_len()

转载于:https://www.cnblogs.com/niaocaizhou/p/10996368.html

Python---面向对象---龟鱼游戏相关推荐

  1. Python 简单的龟鱼游戏

    游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...

  2. Python面向对象-回合制游戏攻击模式--基础

    面向对象这里我学了几天了,一道坎,感觉有些难,分享一下我的一个作业.需求目前是达到了,但是太啰嗦. 1.使用面向对象思想,写出下列场景:玩家攻击(攻击力)敌人,敌人(血量)受伤后掉血,还可能死亡(播放 ...

  3. 用打怪游戏实例升级版,理解python面向对象

    为了能够让大家充分理解什么是面向对象,在上一章节中,我们特地讲解了python的面向过程,并用python并不擅长的面向过程的编程思想简单设计了一个打怪游戏实例.这一节,我们将正式地来介绍Python ...

  4. 【Python之旅】第四篇(四):基于面向对象的模拟人生游戏类

    需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关class的代码,代码是Alex老师写的,对进一步加深Python面向 ...

  5. 每日一题.PYTHON面向对象编写模拟人生屌丝逆袭游戏(登录类/角色类/场景类)?

    文件结构: [root@xmdevops xmdevops_limanman]# tree |grep -v ".pyc" |-- main.py                 ...

  6. 笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解

    笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解 连续贴着这个练习43的代码折腾了整整两天,把那些英文文本翻译为中文文本,重新装进这个代码之中.本想一段一段的运行,发 ...

  7. 基于Python的水母吃鱼游戏的设计与实现

    源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 基于Python的水母吃鱼游戏的设计与实现

  8. PYTHON面向对象(类)

    一.PYTHON面向对象基础 面向对象侧重于对的人,做对的事 1.类和对象的基本概念 类的介绍 对象的介绍 类和对象的关系 2.类的设计基础 类设计的三要素 3.类使用的基本语法 3.1类的定义和使用 ...

  9. Python面向对象编程:类继承和其衍生术语

    Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...

最新文章

  1. 为实现流行病预测:联邦政府在疫情暴发建模方面的努力和机遇
  2. [名词解释] RIAD磁盘阵列
  3. 没有找到合适的方法来重写_玻璃片价格太高?你可能没有找到合适的供应商
  4. 汇编-简单的条件转移指令应用-附例子:判断坐标所在象限
  5. MediaPlayer使用方法简单介绍
  6. securecrt使用_SecureCRT会话丢失原因及解决方法
  7. Mac adb 安装
  8. eclipse内存设置,tomcat内存设置,查看内存大小
  9. [Linux] ubuntu server sudo出现sudo:must be setuid root 完美解决办法
  10. django 1.11.16之环境搭建
  11. win7系统修复工具_系统哥教你如何修复win7启动引导的方法
  12. 清华刘知远:教你用HowNet在深度学习时代搞事情(附论文下载)
  13. 分布式密钥管理Nucypher
  14. %3c php 能用什么代替,Phpwind9
  15. 如何利用Python教你如何爬取高德地图!非常全面啊!
  16. 【接口篇 / Lan】(5.6) ❀ 05. 与思科交换机三层链路聚合连接 ❀ FortiGate 防火墙
  17. 因为未将计算机与远程服务,win7提示错误797未建立到远程访问服务的连接怎么办...
  18. 考研最卷的专业,我提名新传
  19. Adam学习25之读取sam生成的alignmentRecord含recordGroupDictionary
  20. 图像处理常用公式-不错

热门文章

  1. Ruby gem的proxy代理设置方法
  2. Origin绘制双Y轴图的方法
  3. 高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现
  4. 美团Java面试题,苹果手机java编程软件
  5. eSpeak TTS 中英文真人发音引擎
  6. 什么是期权股权?什么是期权股权原始股?
  7. python+大数据-MySQL-day02(黑马)
  8. 【白皮书】用于过程工业的PROFINET
  9. matlab论文答辩题目,毕业设计答辩评及参考题目.doc
  10. 吕文翰 php,自己动手打造基于 WKWebView 的混合开发框架(二)——js 向 Native 一句话传值并反射出 Swift 对象执行指定函数...