[Python] 纯文本查看 复制代码# 游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10

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

# 它们的移动方向均随机

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

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

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

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

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

# 鱼暂不计算体力

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

import random

import time

# 最大最小边界(由于算法关系x和y分别的MAX和MIN差最小为1)

MAP_MIN_X = 0

MAP_MAX_X = 10

MAP_MIN_Y = 0

MAP_MAX_Y = 10

# 符号 正 负

SYMBOL = ['+','-']

# 方向 水平 垂直

DIRECTION = ['horizontal','vertical']

# 鱼群

# 鱼群堆

SHOAL_OF_FISH = []

# 最大数量

MAX_FISH = 10

# 乌龟

# 移动次数

TORTOISE_MOVE_MAX = 2

# 最大体力

TORTOISE_SPIRIT_MAX = 100

class Ainmal():

def __init__(self):

self.x = random.randint(MAP_MIN_X,MAP_MAX_X)

self.y = random.randint(MAP_MIN_Y,MAP_MAX_Y)

def move(self):

self.symbol = SYMBOL[random.randint(0,1)]

self.direction = DIRECTION[random.randint(0,1)]

if self.direction == 'horizontal':

if self.symbol == '+':

self.x = self.x + 1

if self.x > MAP_MAX_X:

self.x = MAP_MAX_X * 2 - self.x

elif self.symbol == '-':

self.x = self.x - 1

if self.x < MAP_MIN_X:

self.x = abs(self.x)

if self.direction == 'vertical':

if self.symbol == '+':

self.y = self.y + 1

if self.y > MAP_MAX_Y:

self.y = MAP_MAX_Y * 2 - self.y

elif self.symbol == '-':

self.y = self.y - 1

if self.y < MAP_MIN_X:

self.y = abs(self.y)

class Tortoise(Ainmal):

def __init__(self,spirit):

Ainmal.__init__(self)

self.spirit = spirit

self.name = '乌龟'

def move(self):

Ainmal.move(self)

self.blood(-1)

self.touch()

def print_position(self):

print("{0}\t({1},{2})\t体力:{3}".format(str(self.name),str(self.x),str(self.y),str(self.spirit)))

def blood(self,flag):

self.spirit = self.spirit + flag

if self.spirit > TORTOISE_SPIRIT_MAX:

self.spirit = TORTOISE_SPIRIT_MAX

def touch(self):

shoal_of_fish_to_move = []

if SHOAL_OF_FISH:

for fish in SHOAL_OF_FISH:

if fish.x == self.x and fish.y == self.y:

shoal_of_fish_to_move.append(fish)

self.blood(20)

for fish_move in shoal_of_fish_to_move:

SHOAL_OF_FISH.remove(fish_move)

class Fish(Ainmal):

def __init__(self,number):

Ainmal.__init__(self)

self.name = '鱼儿 ' + str(number)

def move(self):

Ainmal.move(self)

def print_position(self):

print("{0}\t({1},{2})".format(str(self.name),str(self.x),str(self.y)))

def main():

wugui = Tortoise(TORTOISE_SPIRIT_MAX)

for i in range(0,MAX_FISH):

SHOAL_OF_FISH.append(Fish(i))

while 1:

tortoise_move = random.randint(1,TORTOISE_MOVE_MAX)

for i in range(0,tortoise_move):

wugui.move()

wugui.print_position()

for fish in SHOAL_OF_FISH:

fish.move()

fish.print_position()

print('场上还剩{0}条小鱼'.format(len(SHOAL_OF_FISH)))

print('===============================')

time.sleep(0.5)

if wugui.spirit == 0:

print('小鱼存活,乌龟扑街')

break

elif len(SHOAL_OF_FISH) == 0:

print('小鱼灭绝,乌龟WIN!\t剩余体力:{0}'.format(wugui.spirit))

break

if __name__ == '__main__':

main()

python小乌龟编程_新手学python ——《小乌龟吃小鱼》小游戏 第二版相关推荐

  1. 新手学python书籍推荐_新手学python看哪本书

    对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍! 1.<PYTHON基础教程(第 ...

  2. python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...

    从4月21日起,大陈开始教初一的学生学Python,目前已经上了2节课.学生基本掌握了表达式的构建以及赋值语句.变量的使用,以及input(输入函数).print(输出函数)的使用方法. 以下是大陈在 ...

  3. 学习python用的什么编辑器_新手学Python用什么编辑器比较好?

    新手学Python用什么编辑器比较好?工欲善其事必先利其器,选好工具学习更高效.市面上流行的编辑器众多,根据自己的需求选择适合自己.p小白可以选择pycharm配置简单功能强大使用起来省时省心,对初学 ...

  4. 学python编程_少儿学Python编程的一些思考

    自从孩子上了初中,孩子妈就开始盯着各种真假难辨的中考.高考新政传言.当她从铺天盖地的少儿编程广告里获悉,编程将纳入中考,高考范围,并且2018年高考,多个省份的数学卷甚至都出现了编程题时,就变得异常兴 ...

  5. 老男孩学python多少钱_老男孩学Python编程后薪资待遇高吗?

    1. 人工智能语言Python是黄金的人工智能.这是自然选择人工智能作为就业方向,就业前景是很好的,工资普遍较高.在Lagou.com上,人工智能的起薪工程师通常是20 k-35k.当然,如果你是一个 ...

  6. 只会python怎么挣钱_业余学python有用吗

    Python的火热我就不细说了,大家都是编程老司机,对最前沿最火热的编程语言肯定比我还了解. 前几天,我看了一篇"如何用Python制造一个抖音小姐姐发掘器?",阅读量竟然比头条上 ...

  7. 小白学python需要多久_小白学Python | 你还在说你入不了门吗

    收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...

  8. 怎么解决python遇到问题_新手常见Python错误及异常解决处理方案

    新手常见Python错误及异常解决处理方案,异常,错误,语句,子句,代码 新手常见Python错误及异常解决处理方案 易采站长站,站长之家为您整理了新手常见Python错误及异常解决处理方案的相关内容 ...

  9. python怎样编程_怎么自学python编程

    如何自学Python编程?一堆的Python教程却感觉无从下手呢?我想这应该是很多Python初学者正在纠结的问题. 今天想要分享给大家的是如何自学Python编程,学习这件事 还真不是人人都擅长的, ...

最新文章

  1. Python学习:数据结构
  2. Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。
  3. aws terraform_在AWS第1部分中使用Terraform自动缩放组:基本步骤
  4. java:Map借口及其子类HashMap五,identityHashMap子类
  5. Android中JNI 的一些常用说明 JNI_OnLoad registerNatives registerNativeMethods
  6. Android N 调用相册crash- FileUriExposedException
  7. 知乎周源微信_每周源代码41-搜索代码,共享代码和阅读代码(和注释)
  8. 大数据毕设/课设 - 基于大数据的公司业务监控大数据平台设计与实现
  9. VR全景制作教程|VR全景拍摄和制作竟如此简单
  10. DBeaver打开sql文件中文乱码问题解决
  11. 集团企业税务管理浅析
  12. Unity Rect.OverLaps(Rect other) 改进
  13. 短视频SDK测试tips
  14. 国际清算银行称:央行数字货币可能导致银行挤兑
  15. 探究添加水印的多种方式
  16. PC epub阅读器推荐
  17. 阿里云MAVEN/华为MAVEN/腾讯云MAVEN 仓库地址
  18. 链表ADT设计模板的简单应用——链表的ADT的实现C++版
  19. 弘辽科技:大裁员之后,京东最新财报来了
  20. 第一次当管理时,为啥会有很强的挫败感?

热门文章

  1. 【读书笔记】金字塔原理-构建金字塔的逻辑顺序
  2. win11壁纸怎么可以动 Windows11秒变动态壁纸的设置方法
  3. python 写入csv时添加表头,这个是亲测,最详细最傻瓜教程
  4. 今日头条(java后台开发)——实习生面试
  5. vivo T2什么时候上市 vivo T2配置怎么样
  6. 推荐几款好用的手机编程APP!
  7. 中国互联网CEO语录
  8. Java后端面试(四)
  9. 北邮 计算机学院数据库实验报告二,北邮数据库_sql实验二报告.doc
  10. React中的ref属性的使用