按以下要求定义一个乌龟类和鱼类并尝试编写游戏

学习内容:

按以下要求定义一个乌龟类和鱼类并尝试编写游戏。
#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小甲鱼课后习题 乌龟吃小鱼相关推荐

  1. 【Python】小甲鱼课后习题第20、21讲--函数(中)

    问答题 1. 在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字? 答:nonlocal 关键字.举例如下: >>> def Fun1():x = 5def ...

  2. 【Python】小甲鱼课后习题第17、18、19讲--函数(上)

    问答题 0. 你有听说过DRY吗? 答:DRY 是程序员们公认的指导原则:Don't Repeat Yourself. 快快武装你的思维吧,拿起函数,不要再去重复拷贝一段代码了! 1. 都是重复一段代 ...

  3. python小课文件_[Python]小甲鱼Python视频第030课(文件系统:介绍一个高大上的东西)课后题及参考解答...

    # -*- coding: utf-8 -*- """ Created on Fri Mar 8 15:49:32 2019 @author: Administrator ...

  4. python小甲鱼笔记

    提示:python小甲鱼笔记 文章目录 前言 〇.函数 1.常用基本函数 2.常用表函数 3.常用子函数 4.输入.输出 5.字符串函数 5.快捷键 一.常用函数案例 1.文本输出 2.猜数 if 实 ...

  5. Python小甲鱼学习笔记31-35

    31永久存储pickle模块 一.pickle模块 0.pickle的实质是什么?   a.将对象数据以二进制形式保存在文件中   b.将对象数据以二进制形式从文件中读取   输入输出二进制流 1.使 ...

  6. python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇

    Python 小甲鱼教程 Easygui 篇 终于有点实质性可以看到摸到的界面了,搜了一下虽然easygui用的不多,但是作为一个起步,z,----,先了解一下吧,e,毕竟道理想通. 下面按照小甲鱼的 ...

  7. 我要大学答案-大学生都在用的小程序 课后习题答案|实验报告|考研资料|期末真题~

    我要大学答案-大学生都在用的小程序 课后习题答案|实验报告|考研资料|期末真题~ 小程序信息 分类:教育学习.信息查询 所属平台:微信 体验方式 使用手机微信APP扫描页面上方二维码体验: 在手机微信 ...

  8. python语言程序设计课后习题(嵩天老师)

    嵩天老师的python语言程序设计课后习题记录 用以记录自己写过的题 四位玫瑰数 四位玫瑰数是4位数的自幂数.自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身.‪‬‪‬‪‬‪‬‪ ...

  9. (第二版)零基础入门Python小甲鱼-笔记-第三章-p5

    (第二版)零基础入门Python小甲鱼-笔记-第三章-p5 变量和字符串(下) 上节课讲了有些字符比如换行符.TAB制表符还有单引号.双引号等等...可以通过转义字符来实现,今天来谈谈原始字符串 1. ...

  10. 小甲鱼python零基础课后习题001我和Python的第一次亲密接触

    一.测试题: 0. python是什么语言? 1. IDLE是什么? 2. print()的作用是什么? 3. python中表示乘法的符号是什么? 4. 为什么print("i love ...

最新文章

  1. mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)
  2. 【c语言】查找200以内既是3的倍数又是5的倍数的数
  3. ST公司STM32F4与STM32F1的区别
  4. python文件操作二
  5. C++学习笔记-----std::pair作为unordered_map的key
  6. javascript --- 利用节点关系访问HTML元素
  7. 同步服务老是报错_悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因? | 学步园...
  8. 5 天 6 亿 3000 万数据泄露,怎么做才能跑赢骗子?
  9. php验证码图片看不清更换代码,php如何实现验证码看不清换一张的效果
  10. 【软件使用技巧】二(Word文档损坏)
  11. apache2 python mysql_Ubuntu配置Django+ Apache2+ mysql
  12. python编程题字符串的美化_Python编程题15--RGB字符串排序
  13. NSIS 第一个安装程序
  14. UNIX环境高级编程学习总结
  15. 那些年Android面试官常问的知识点,快来收藏!
  16. hdu 3625 Examining the Rooms
  17. MIUI11Android系统耗电,小米MIUI系统升级11,网友表示很费电,学习这个省电方法够你用三天!...
  18. 电脑常识——屏幕亮度无法调节
  19. ping ip和端口
  20. 机器视觉中的光源选型

热门文章

  1. 【数学】多元函数微分学(宇哥笔记)
  2. 《财富自由子路》李笑来
  3. 微信小程序头像怎么改变形状_微信小程序 open-data更改样式 open-data 显示头像 圆形...
  4. 将数组中的数逆序存放
  5. 关于U盘还原安装Mac系统
  6. ESP8266固件SDK开发初体验-让ESP8266打印helloworld(基于安信可ESP-07)
  7. Shopee数据获取逻辑
  8. 今日新闻简报 精选简报12条 2月1日
  9. vue 高德获取当前经纬度
  10. c语言和python前景_C语言程序员未来发展前景如何