(此游戏为小甲鱼设计,这里进行一下小的改编)
要求:编写一个乌龟吃鱼小游戏:

游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10

游戏生成1只乌龟和10条鱼

它们的移动方向均随机

乌龟的最大移动能力为2(可以随机选择1还是2),鱼儿的最大移动能力为1

当移动到场景边缘,自动向反方向移动

乌龟初始化体力为100(上限)

乌龟每移动一次,体力消耗1

当乌龟和鱼坐标重叠,乌龟吃掉鱼,乌龟体力增加20

鱼不计算体力

当乌龟体力值为0(挂掉)或鱼儿的数量为0游戏结束

代码如下:

import random as r
class Turtle:def __init__(self):self.power = 100self.x=r.randint(1,10)self.y=r.randint(1,10)def move(self):new_x=self.x+r.choice([1,2,-1,-2])new_y=self.y+r.choice([1,2,-1,-2])if new_x<0:self.x=0-new_xelif new_x>10:self.x=10-(new_x-10)else:self.x=new_xif new_y<0:self.y=0-new_yelif new_y>10:self.y=10-(new_y-10)else:self.y=new_yself.power-=1return(self.x,self.y)def eat(self):self.power+=20if self.power>100:self.power=100class Fish:def __init__(self):self.x=r.randint(1,10)self.y=r.randint(1,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_xelif new_x>10:self.x=10-(new_x-10)else:self.x=new_xif new_y<0:self.y=0-new_yelif new_y>10:self.y=10-(new_y-10)else:self.y=new_yreturn(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('乌龟把鱼都吃完了,游戏结束')breakif not turtle.power:print('乌龟体力耗尽了,游戏结束')breakprint('乌龟移动前坐标:(%d,%d)'%(turtle.x ,turtle.y))turtle.move()print('乌龟移动后坐标:(%d,%d)'%(turtle.x ,turtle.y))for num in fish:print('小鱼移动前坐标:(%d,%d)'%(num.x ,num.y))num.move()print('小鱼移动后坐标:(%d,%d)'%(num.x ,num.y))if num.x==turtle.x and num.y==turtle.y:turtle.eat()fish.remove(num)print('乌龟吃了一条鱼')print('乌龟的体力值为:%d'%turtle.power)

昨天学习了Easygui的一些方法,这里通过改进程序来应用:(鱼的数量改为了一条)

import random as r
import sys
import easygui as gclass Turtle:def __init__(self):self.power = 100self.x=r.randint(1,10)self.y=r.randint(1,10)def move(self):new_x=self.x+r.choice([1,2,-1,-2])new_y=self.y+r.choice([1,2,-1,-2])if new_x<0:self.x=0-new_xelif new_x>10:self.x=10-(new_x-10)else:self.x=new_xif new_y<0:self.y=0-new_yelif new_y>10:self.y=10-(new_y-10)else:self.y=new_yself.power-=1return(self.x,self.y)def eat(self):self.power+=20if self.power>100:self.power=100class Fish:def __init__(self):self.x=r.randint(1,10)self.y=r.randint(1,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_xelif new_x>10:self.x=10-(new_x-10)else:self.x=new_xif new_y<0:self.y=0-new_yelif new_y>10:self.y=10-(new_y-10)else:self.y=new_yreturn(self.x,self.y)
title='乌龟吃鱼小游戏'
text=''
if g.ccbox('下面要开始游戏吗?',title,choices=('开始','退出')):turtle=Turtle()fish=[]for i in range(1):new_fish=Fish()fish.append(new_fish)while True:if not len(fish):text+='乌龟把鱼都吃完了,游戏结束\n'breakif not turtle.power:text+='乌龟体力耗尽了,游戏结束\n'breaktext+='乌龟移动前坐标:(%d,%d)\n'%(turtle.x ,turtle.y)turtle.move()text+='乌龟移动后坐标:(%d,%d)\n'%(turtle.x ,turtle.y)for num in fish:text+='小鱼移动前坐标:(%d,%d)\n'%(num.x ,num.y)num.move()text+='小鱼移动后坐标:(%d,%d)\n'%(num.x ,num.y)if num.x==turtle.x and num.y==turtle.y:turtle.eat()fish.remove(num)text+='乌龟吃了一条鱼\n'text+='乌龟的体力值为:%d\n'%turtle.powerg.textbox('游戏开始',title,text)


小乌龟太可怜了,总是吃不到鱼,这里我们把鱼也设置体力为10,移动一次体力减1,选择让小乌龟再来吃鱼:
改了的部分:

class Fish:def __init__(self):self.power = 10self.x=r.randint(1,10)self.y=r.randint(1,10)def move(self):if self.power:new_x=self.x+r.choice([1,-1])new_y=self.y+r.choice([1,-1])if new_x<0:self.x=0-new_xelif new_x>10:self.x=10-(new_x-10)else:self.x=new_xif new_y<0:self.y=0-new_yelif new_y>10:self.y=10-(new_y-10)else:self.y=new_yself.power-=1
在这里插入代码片


学习更多基本python知识可点击主页关注,一起学习!

python乌龟吃鱼小游戏(类和对象及Easygui应用)相关推荐

  1. JavaScript实现猫吃鱼小游戏

    贪吃猫小游戏 作为一名前端人员,撸猫我决定使用面向对象的方式书写贪吃猫小游戏,灵感来自有贪食蛇小游戏. 我们可以把整个游戏看成是一个游戏类,游戏类可以有各种各样的属性. 我们可以把贪吃猫中的猫作为一个 ...

  2. 用python编写吃苹果小游戏

    一.游戏简介 本次小游戏的玩法没有那么复杂,通过键盘的"↑","↓","←","→"控制人物上下左右的移动,人物碰到苹果 ...

  3. Python开发摸鱼小游戏——兔獾大战,越玩越上瘾

    前阵子看到国外一个12岁的孩子写的兔獾大战游戏,心生敬佩,想当年我还是12岁的时候还不知电脑为何物,连小霸王都未曾玩过.自己也未曾想去搞游戏开发,纯属自娱自乐.在此心态下,依葫芦画瓢重新架构了一下该游 ...

  4. 基于 Python 制作吃豆豆小游戏(文档和源码~)

    游戏简介: 玩家通过 ↑↓←→ 键控制游戏的主角吃豆人吃掉藏在迷宫内的所有豆子,并且不能被鬼魂抓到. 若能顺利吃完迷宫内的所有豆子并且不被鬼魂抓到,则游戏胜利,否则游戏失败. 实现过程~: Step1 ...

  5. python 苹果试玩_python实现吃苹果小游戏

    本文实例为大家分享了python实现吃苹果小游戏的具体代码,供大家参考,具体内容如下 1.公共类模块 import pygame from pygame.rect import Rect def pr ...

  6. python小鱼_Python面向对象练习-通过pygame改良乌龟吃鱼

    先看看最后效果 图片的话是从网上小鱼儿那个案例里面拿的,实现的功能如下: 是通过方向键操作乌龟,进行吃鱼 吃鱼的时候根据乌龟的x,y坐标和鱼的x,y进行检测,在碰撞区域则干掉这条鱼 背景音乐和吃鱼音乐 ...

  7. Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 贪吃蛇 ...

  8. Python-小游戏-乌龟吃鱼

    #讲道理乌龟吃鱼的嘛? 先上代码,虽然感觉很多地方可以优化 import random import timeclass Tortoise:x = random.randint(0,10)y = ra ...

  9. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

  10. 【python小游戏】用python写一款小游戏--贪吃蛇

    大家好,我是爱吃饼干的小白鼠,今天给大家分享一款自制小游戏.如何用python编写贪吃蛇. 今天,突发奇想的想用python写一款小游戏--贪吃蛇.相信大家都玩过,那么玩一款自己写的是一种什么样的体验 ...

最新文章

  1. 【动态规划】loj#2485. 「CEOI2017」Chase
  2. 机器学习知识点(三十二)微积分基础
  3. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
  4. 自媒体时代的主流媒体不可替代
  5. 吴恩达deeplearning资源汇总帖
  6. tensorflow随笔-不动点迭代求一元方程
  7. 05-图像的平滑处理(不同的滤波操作)
  8. NO.54 在禅道里建立部门结构、添加用户
  9. Flume Channel
  10. oracle数据泵导入 锁,Oracle数据泵expdp导出,impdp导入
  11. 微信交友unicloud云开发小程序
  12. 【数值分析实验】线性代数方程组的直接解法:列主元高斯消去法、LU分解法、LU分解法求矩阵的逆(python)
  13. leetcode第12题Python版整数转罗马字符串
  14. HBase2.4.10 踩坑笔记
  15. 2021-05-10
  16. 解锁前端密码框常见功能做法
  17. java实现树形菜单_Java构建树形菜单的实例代码(支持多级菜单)
  18. 尚硅谷【韩顺平】 | Java数据结构和算法【详细笔记】(持续更新)
  19. 角点检测和匹配之Harris与FAST角点检测
  20. 非平稳的原始序列通过协整检验可以用来建立VAR模型吗?

热门文章

  1. 使用html表单制作简单网页(加表单详细知识点)
  2. android 2个 微信,手机挂2个微信可以吗?安卓手机挂2个微信以上教程
  3. Cocos Creator + TiledMap制作瓦片地图部分经验总结
  4. 爱自己,实现财务自由
  5. 如何用PowerPoint压缩ppt文件大小
  6. 已知棱长求三棱锥的表面积和体积
  7. html 动态文本框的值,HTML Javascript动态添加和删除文本框
  8. java纯数字正则表达式_java正则表达式匹配所有数字的案例
  9. easyui合并单元格封装
  10. MATLAB去除多余点的命令,如何清除matlab命令窗口中已有的内容