Python小甲鱼课后习题 乌龟吃小鱼
按以下要求定义一个乌龟类和鱼类并尝试编写游戏
学习内容:
按以下要求定义一个乌龟类和鱼类并尝试编写游戏。
#1、假设游戏场景为范围(x,y)为0<= x <=10,0<= y <=10
#2、游戏生成1只乌龟和10条鱼
#3、它们的移动方向是随机的
#4、乌龟的最大移动能力是2(它可以随机选择移动1还是2),鱼儿的最大移动能力是1
#5、当移动到场景边缘,自动反方向移动
#6、乌龟初始化体力为100(上限)
#7、乌龟每移动一次,体力消耗1
#8、当乌龟和鱼坐标重叠,乌龟吃掉鱼,乌龟体力增加20
#9、鱼暂不计体力
#10、当乌龟体力值为0(挂掉)或者鱼儿的数量为0游戏结束
学习产出:
#游戏编程:按以下要求定义一个乌龟类和鱼类并尝试编写游戏。
#1、假设游戏场景为范围(x,y)为0<= x <=10,0<= y <=10
#2、游戏生成1只乌龟和10条鱼
#3、它们的移动方向是随机的
#4、乌龟的最大移动能力是2(它可以随机选择移动1还是2),鱼儿的最大移动能力是1
#5、当移动到场景边缘,自动反方向移动
#6、乌龟初始化体力为100(上限)
#7、乌龟每移动一次,体力消耗1
#8、当乌龟和鱼坐标重叠,乌龟吃掉鱼,乌龟体力增加20
#9、鱼暂不计体力
#10、当乌龟体力值为0(挂掉)或者鱼儿的数量为0游戏结束import random as rclass Turtle:def __init__(self):self.num=1self.power=100self.x=r.randint(0,9)self.y=r.randint(0,9)print("乌龟初始位置是:(%d %d)"%(self.x,self.y))def move(self):random_move=r.randint(1,4) #产生1向左移动,2向右移动,3向上移动,4向下移动if random_move ==1: self.x -=r.randint(1,2)elif random_move ==2:self.x +=r.randint(1,2)elif random_move ==3:self.y +=r.randint(1,2)else:self.y -=r.randint(1,2)self.power -=1print("乌龟随机移动后的位置是:(%d %d),乌龟体力值:%d"%(self.x,self.y,self.power))#如果乌龟移动到边缘,则进行自动反方向移动if self.x==0 or self.x==10 or self.y==0 or self.y==10:if self.x==0:self.x +=r.randint(1,2)elif self.x ==10:self.x -=r.randint(1,2)elif self.y ==0:self.y +=r.randint(1,2)elif self.y ==10:self.y -=r.randint(1,2)self.power -=1print("乌龟运动到边缘,反向移动后的位置是:(%d %d),乌龟体力值:%d"%(self.x,self.y,self.power))return (self.x,self.y)def eat(self):self.power +=20if self.power >100:self.power=100print("现在乌龟的体力值:",self.power)
class Fish:def __init__(self):self.num=10self.x=r.randint(0,9)self.y=r.randint(0,9)print("小鱼鱼初始位置是:(%d %d)"%(self.x,self.y))def move(self):random_move=r.randint(1,4) #产生1向左移动,2向右移动,3向上移动,4向下移动if random_move ==1: self.x -=1elif random_move ==2:self.x +=1elif random_move ==3:self.y +=1else:self.y -=1print("小鱼鱼随机移动后的位置是:(%d %d)"%(self.x,self.y))#如果小鱼鱼移动到边缘,则进行自动反方向移动if self.x==0 or self.x==10 or self.y==0 or self.y==10:if self.x==0:self.x +=1elif self.x ==10:self.x -=1elif self.y ==0:self.y +=1elif self.y ==10:self.y -=1print("小鱼鱼运动到边缘,反向移动后的位置是:(%d %d)"%(self.x,self.y))return (self.x,self.y) #类的实例化对象
a=Turtle()#产生10条小鱼的坐标————
fish=[]for i in range(0,10):b=Fish()fish.append(b)#游戏编程
while True:turtle=a.move()for each_fish in fish[:]:xiaoyu=each_fish.move()if xiaoyu==turtle:a.eat()fish.remove(each_fish)print("有条鱼被吃啦!,现在还剩下%d 条鱼"%(len(fish)))if not a.power:print("乌龟的体力值用完啦!游戏结束")breakif not len(fish):print("小鱼鱼的数量为0,游戏结束")break
Python小甲鱼课后习题 乌龟吃小鱼相关推荐
- 【Python】小甲鱼课后习题第20、21讲--函数(中)
问答题 1. 在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字? 答:nonlocal 关键字.举例如下: >>> def Fun1():x = 5def ...
- 【Python】小甲鱼课后习题第17、18、19讲--函数(上)
问答题 0. 你有听说过DRY吗? 答:DRY 是程序员们公认的指导原则:Don't Repeat Yourself. 快快武装你的思维吧,拿起函数,不要再去重复拷贝一段代码了! 1. 都是重复一段代 ...
- python小课文件_[Python]小甲鱼Python视频第030课(文件系统:介绍一个高大上的东西)课后题及参考解答...
# -*- coding: utf-8 -*- """ Created on Fri Mar 8 15:49:32 2019 @author: Administrator ...
- python小甲鱼笔记
提示:python小甲鱼笔记 文章目录 前言 〇.函数 1.常用基本函数 2.常用表函数 3.常用子函数 4.输入.输出 5.字符串函数 5.快捷键 一.常用函数案例 1.文本输出 2.猜数 if 实 ...
- Python小甲鱼学习笔记31-35
31永久存储pickle模块 一.pickle模块 0.pickle的实质是什么? a.将对象数据以二进制形式保存在文件中 b.将对象数据以二进制形式从文件中读取 输入输出二进制流 1.使 ...
- python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇
Python 小甲鱼教程 Easygui 篇 终于有点实质性可以看到摸到的界面了,搜了一下虽然easygui用的不多,但是作为一个起步,z,----,先了解一下吧,e,毕竟道理想通. 下面按照小甲鱼的 ...
- 我要大学答案-大学生都在用的小程序 课后习题答案|实验报告|考研资料|期末真题~
我要大学答案-大学生都在用的小程序 课后习题答案|实验报告|考研资料|期末真题~ 小程序信息 分类:教育学习.信息查询 所属平台:微信 体验方式 使用手机微信APP扫描页面上方二维码体验: 在手机微信 ...
- python语言程序设计课后习题(嵩天老师)
嵩天老师的python语言程序设计课后习题记录 用以记录自己写过的题 四位玫瑰数 四位玫瑰数是4位数的自幂数.自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身. ...
- (第二版)零基础入门Python小甲鱼-笔记-第三章-p5
(第二版)零基础入门Python小甲鱼-笔记-第三章-p5 变量和字符串(下) 上节课讲了有些字符比如换行符.TAB制表符还有单引号.双引号等等...可以通过转义字符来实现,今天来谈谈原始字符串 1. ...
- 小甲鱼python零基础课后习题001我和Python的第一次亲密接触
一.测试题: 0. python是什么语言? 1. IDLE是什么? 2. print()的作用是什么? 3. python中表示乘法的符号是什么? 4. 为什么print("i love ...
最新文章
- mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)
- 【c语言】查找200以内既是3的倍数又是5的倍数的数
- ST公司STM32F4与STM32F1的区别
- python文件操作二
- C++学习笔记-----std::pair作为unordered_map的key
- javascript --- 利用节点关系访问HTML元素
- 同步服务老是报错_悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因? | 学步园...
- 5 天 6 亿 3000 万数据泄露,怎么做才能跑赢骗子?
- php验证码图片看不清更换代码,php如何实现验证码看不清换一张的效果
- 【软件使用技巧】二(Word文档损坏)
- apache2 python mysql_Ubuntu配置Django+ Apache2+ mysql
- python编程题字符串的美化_Python编程题15--RGB字符串排序
- NSIS 第一个安装程序
- UNIX环境高级编程学习总结
- 那些年Android面试官常问的知识点,快来收藏!
- hdu 3625 Examining the Rooms
- MIUI11Android系统耗电,小米MIUI系统升级11,网友表示很费电,学习这个省电方法够你用三天!...
- 电脑常识——屏幕亮度无法调节
- ping ip和端口
- 机器视觉中的光源选型