python小乌龟编程_新手学python ——《小乌龟吃小鱼》小游戏 第二版
[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 ——《小乌龟吃小鱼》小游戏 第二版相关推荐
- 新手学python书籍推荐_新手学python看哪本书
对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍! 1.<PYTHON基础教程(第 ...
- python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...
从4月21日起,大陈开始教初一的学生学Python,目前已经上了2节课.学生基本掌握了表达式的构建以及赋值语句.变量的使用,以及input(输入函数).print(输出函数)的使用方法. 以下是大陈在 ...
- 学习python用的什么编辑器_新手学Python用什么编辑器比较好?
新手学Python用什么编辑器比较好?工欲善其事必先利其器,选好工具学习更高效.市面上流行的编辑器众多,根据自己的需求选择适合自己.p小白可以选择pycharm配置简单功能强大使用起来省时省心,对初学 ...
- 学python编程_少儿学Python编程的一些思考
自从孩子上了初中,孩子妈就开始盯着各种真假难辨的中考.高考新政传言.当她从铺天盖地的少儿编程广告里获悉,编程将纳入中考,高考范围,并且2018年高考,多个省份的数学卷甚至都出现了编程题时,就变得异常兴 ...
- 老男孩学python多少钱_老男孩学Python编程后薪资待遇高吗?
1. 人工智能语言Python是黄金的人工智能.这是自然选择人工智能作为就业方向,就业前景是很好的,工资普遍较高.在Lagou.com上,人工智能的起薪工程师通常是20 k-35k.当然,如果你是一个 ...
- 只会python怎么挣钱_业余学python有用吗
Python的火热我就不细说了,大家都是编程老司机,对最前沿最火热的编程语言肯定比我还了解. 前几天,我看了一篇"如何用Python制造一个抖音小姐姐发掘器?",阅读量竟然比头条上 ...
- 小白学python需要多久_小白学Python | 你还在说你入不了门吗
收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...
- 怎么解决python遇到问题_新手常见Python错误及异常解决处理方案
新手常见Python错误及异常解决处理方案,异常,错误,语句,子句,代码 新手常见Python错误及异常解决处理方案 易采站长站,站长之家为您整理了新手常见Python错误及异常解决处理方案的相关内容 ...
- python怎样编程_怎么自学python编程
如何自学Python编程?一堆的Python教程却感觉无从下手呢?我想这应该是很多Python初学者正在纠结的问题. 今天想要分享给大家的是如何自学Python编程,学习这件事 还真不是人人都擅长的, ...
最新文章
- Python学习:数据结构
- Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。
- aws terraform_在AWS第1部分中使用Terraform自动缩放组:基本步骤
- java:Map借口及其子类HashMap五,identityHashMap子类
- Android中JNI 的一些常用说明 JNI_OnLoad registerNatives registerNativeMethods
- Android N 调用相册crash- FileUriExposedException
- 知乎周源微信_每周源代码41-搜索代码,共享代码和阅读代码(和注释)
- 大数据毕设/课设 - 基于大数据的公司业务监控大数据平台设计与实现
- VR全景制作教程|VR全景拍摄和制作竟如此简单
- DBeaver打开sql文件中文乱码问题解决
- 集团企业税务管理浅析
- Unity Rect.OverLaps(Rect other) 改进
- 短视频SDK测试tips
- 国际清算银行称:央行数字货币可能导致银行挤兑
- 探究添加水印的多种方式
- PC epub阅读器推荐
- 阿里云MAVEN/华为MAVEN/腾讯云MAVEN 仓库地址
- 链表ADT设计模板的简单应用——链表的ADT的实现C++版
- 弘辽科技:大裁员之后,京东最新财报来了
- 第一次当管理时,为啥会有很强的挫败感?