python,练习乌龟吃鱼
'''
1.首先要有一个画布
2.随机乌龟和鱼的位置
3.移动
'''
import random as r
list_x = [0,10]
list_y = [0,10]
class Turtle:
def __init__(self):
#初始体力
self.power=100
#初始位置
self.x = r.randint(list_x[0],list_x[1]) # 这里重点知道 randint
self.y = r.randint(list_y[0],list_y[1]) 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<list_x[0]:
self.x = list_x[0]-(new_x-list_x[0])
elif new_x>list_x[1]:
self.x = list_x[1]-(new_x-list_x[1])
else:
self.x = new_x
#检查是否超出Y轴
if new_y<list_y[0]:
self.y = list_y[0]-(new_y-list_y[0])
elif new_y>list_y[1]:
self.y = list_y[1]-(new_y-list_y[1])
else:
self.y = new_y
#移动完毕,就需要
self.power -= 1
#返回移动后的位置
return (self.x,self.y)
def eat(self):
self.power += 20
if self.power>100:
self.power=100 class Fish:
def __init__(self):
#初始位置
self.x = r.randint(list_x[0],list_x[1])
self.y = r.randint(list_y[0],list_y[1]) def move(self):
# 随机移动位置
new_x = self.x+r.choice([1,-1])
new_y = self.y+r.choice([1,-1])
#检查移动后是否超出区域
if new_x<list_x[0]:
self.x = list_x[0]-(new_x-list_x[0])
elif new_x>list_x[1]:
self.x = list_x[1]-(new_x-list_x[1])
else:
self.x = new_x
#检查是否超出Y轴
if new_y<list_y[0]:
self.y = list_y[0]-(new_y-list_y[0])
elif new_y>list_y[1]:
self.y = list_y[1]-(new_y-list_y[1])
else:
self.y = new_y
#返回移动后的位置
return (self.x,self.y) t = Turtle()
fish = []
for i in range(10):
new_fish = Fish()
fish.append(new_fish) while True:
if not len(fish):
print("鱼儿被吃完了,游戏结束")
break
if not t.power:
print("乌龟体力耗尽,牺牲了")
break
pos = t.move()
for each_fish in fish[:]:
if each_fish.move() ==pos:
#鱼儿被吃掉
t.eat()
fish.remove(each_fish)
print("有一条鱼被吃了")
python,练习乌龟吃鱼的更多相关文章
- 【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 我们一同在前几期的博客中已经学到了很多pygame的基本知识了,现在该做个小游戏实战一下了. 前几期博客链接 ...
- Python 简单的龟鱼游戏
游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...
- 洛谷 P1736 创意吃鱼法 Label:dp || 前缀和
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 洛谷P1736 创意吃鱼法
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- L1-063 吃鱼还是吃肉
国家给出了 8 岁男宝宝的标准身高为 130 厘米.标准体重为 27 公斤:8 岁女宝宝的标准身高为 129 厘米.标准体重为 25 公斤. 现在你要根据小宝宝的身高体重,给出补充营养的建议. 输 ...
- P1736 创意吃鱼法 图的DP
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 洛谷 P1736 创意吃鱼法
题目描述 题目链接:https://www.luogu.org/problemnew/show/P1736 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢( ...
- P1736 创意吃鱼法
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 洛谷P1736 创意吃鱼法 dp
正解:dp 解题报告: 早就想写dp的题目辣!我发现我的dp好差啊QAQ所以看到列表的小朋友写dp的题目就跟着他们的步伐做下题好辣QwQ 这题的话没有那——么难,大概说下趴QwQ 首先说下题意 前面一 ...
随机推荐
- ABA问题
CAS:对于内存中的某一个值V,提供一个旧值A和一个新值B.如果提供的旧值V和A相等就把B写入V.这个过程是原子性的.CAS执行结果要么成功要么失败,对于失败的情形下一班采用不断重试.或者放弃. AB ...
- (最小生成树) codeVs 1231 最优布线问题
题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的.为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外 ...
- css 中 position属性
position属性详解 文档流 1.html中的布局方式分为三种: 标准流(顺序布局):因为html中的元素大体可以分为两大类(a:块级元素:div .H1-H6. table表格 有序级无序列表 ...
- 一键开启MacOS HiDPI
完整文件下载:一键开启MacOS HiDPI 引言 作为一个黑苹果用户,追求黑果的体验是当然的,当各个硬件都驱动完善后,要做的就是细节的优化了,毕竟装上是拿来用的,可不能因为体验差苦了自己啊.机器毕竟 ...
- M1-Flask-Day2
内容概要: 1.flask - 蓝图 - 中间件 - 闪现 2.扩展 - session - wtfrom 3.上下文管理 - local-threading 4.websocket - 轮训 - 长 ...
- jenkins 构建
自动触发构建 远程构建 本地默认情况下是能够自动构建的,因为浏览器已经登录 了jenkins,如果从别的地方调用的话需要加上用户名和密码做认证,方法如下 curl -u a:a http://Jenk ...
- spring XML配置参数替代properties文件
xml中配置BEAN与参数 <bean id="beanXXX" class="com.benXXXX" init-method="initia ...
- STM32学习笔记:【003】GPIO
版本:STM32F429 Hal库v1.10 在STM32中,最常用到的功能莫过于GPIO(General Purpose Input Output .通用输入/输出)了,在STM32中,除了除去AD ...
- 02-Unity深入浅出(二)
一. Unity声明周期 Unity容器为我们提供了6种生命周期,便于我们根据项目需求来选择使用. (1). 瞬时.默认省略即为瞬时,无论单线程还是多线程,每次都重新创建对象.new Transien ...
- IDAPython教程(二)
继续我们的主题—使用IDAPython 让逆向工程师的生活变得更美好. 这一部分,我们将着手处理一个非常常见的问题:shellcode和恶意软件使用hash算法混淆加载的函数和链接库,这项技术被广泛使 ...