Python 简单的龟鱼游戏
游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程
- 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10
- 游戏生成1只乌龟和10条鱼
- 他们的移动方向均随机
- 乌龟的最大移动能力是2(乌龟可以随机选择移动是1还是2),鱼的最大移动能力是1
- 当移动到场景边缘,自动向反方向移动
- 乌龟初始化体力为100(上限)
- 乌龟每移动一次,体力消耗1
- 当乌龟和鱼重叠,乌龟吃掉鱼,乌龟体力增加20
- 鱼不计算体力
- 当乌龟体力值为0或者鱼的数量为0时,游戏结束
import random as r class Turtle(object):
def __init__(self):
self.power = 100 # 初始化乌龟的位置
self.x = r.randint(0,10)
self.y = r.randint(0,10) def move(self):
new_x = r.choice([1,2,-1,-2]) + self.x
new_y = r.choice([1,2,-1,-2]) + self.y # 判断 乌龟的移动是否超出了边界 if new_x < 0:
self.x = 0 - (new_x - 0)
elif new_x > 10:
self.x = 10 - (new_x - 10)
else:
self.x = new_x if new_y < 0:
self.y = 0 - (new_y -0)
elif new_y > 10:
self.y = 10 - (new_y - 10)
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(object): def __init__(self):
self.x = r.randint(0,10)
self.y = r.randint(0,10) def move(self):
new_x = self.x + r.choice([1,-1])
new_y = self.y + r.choice([1,-1]) if new_x < 0:
self.x = 0 - (new_x - 0)
elif new_x > 10:
self.x = 10 - (new_x - 10)
else:
self.x = new_x if new_y < 0:
self.y = 0 -(new_y - 0)
elif new_y > 10:
self.y = 10 - (new_y - 10)
else:
self.y = new_y return (self.x,self.y) turtle = Turtle()
fish = []
for i in range(10):
new_fish = Fish()
fish.append(new_fish) while True:
if not len(fish):
print("鱼被吃完了,游戏结束")
break
if not turtle.power:
print("乌龟体力被耗尽了,游戏结束")
break pos = turtle.move() # 在迭代中做列表的删除元素是非常危险的,经常会出现一些意想不到的问题,因为迭代器是直接引用列表元素的数据做的操作
# 所以 我们这里把列表拷贝一份传给迭代器,然后再对原列表做操作
for each_fish in fish[:]:
if each_fish.move() == pos:
turtle.eat()
fish.remove(each_fish)
print("有一条鱼被吃掉了")
Python 简单的龟鱼游戏的更多相关文章
- python 简单的猜数字游戏
!/usr/bin/env python --encoding:utf-8-- import random think=random.randint(1,10) print ("...... ...
- Python---面向对象---龟鱼游戏
一.定义一个门票系统 门票的原价是100元 当周末的时候门票涨价20% 小孩子半票 计算2个成人和1个小孩的平日票价 ----------------------------------------- ...
- 【python小练习】简单的猜数字游戏
简单的猜数字游戏 前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩. 此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改.经过测试,由于难度过大,我在其中加 ...
- Python简单介绍以及Python环境搭建(入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6400694.html 本文出自:[Edwin博客园] Python 简单介绍 适合领域: Web网站和各种网 ...
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...
- 亲身试用python简单小爬虫
前几天基友分享了一个贴吧网页,有很多漂亮的图片,想到前段时间学习的python简单爬虫,刚好可以实践一下. 以下是网上很容易搜到的一种方法: #coding=utf-8 import urllib i ...
- GJM : Python简单爬虫入门(二) [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
随机推荐
- 201871030108-冯永萍 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...
- 「HTML+CSS」--自定义加载动画【016】
前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...
- kubernetes-copyFromPod
import com.google.common.io.ByteStreams; import io.kubernetes.client.Copy; import io.kubernetes.clie ...
- PowerBI开发 第十八篇:行级安全(RLS)
PowerBI可以通过RLS(Row-level security)限制用户对数据的访问,过滤器在行级别限制数据的访问,用户可以在角色中定义过滤器,通过角色来限制数据的访问.在PowerBI Serv ...
- NodeJS中的LRU缓存(CLOCK-2-hand)实现
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.codeproject.com/Articles/5299328/LRU- ...
- OD调试程序常用断点大全
常用断点 拦截窗口: bp CreateWindow 创建窗口 bp CreateWindowEx(A) 创建窗口 bp ShowWindow 显示窗口 bp UpdateWindow 更新 ...
- php isset()与empty()的使用
PHP isset函数作用 isset函数是检测变量是否设置. 格式:bool isset( mixed var [, mixed var [, ...]] ) 返回值: 若变量不存在则返回FALSE ...
- 【hugo】- hugo 博客 添加鼠标单击特效
hugo 博客 监听鼠标点击事件,添加动画效果 js下载 链接:https://pan.baidu.com/s/1SZu76WdEXRxLCfqJ2lbbtQ 密码:r056 移入hugo博客中 打开 ...
- Redis 的持久化
原文链接:https://www.changxuan.top/?p=1386 Redis 是一个非关系型的内存数据库,使用内存存储数据是它能够进行快速存取数据的原因之一. 在实际应用中,常有人提倡把 ...
- Access denied for user '电脑用户名'@'localhost'
之前没有碰到这个问题,但是这次从gitee上面拉取代码运行,发现存在bug 错误描述 java.sql.SQLException: Access denied for user '10134'@'lo ...