Python来写一个童话故事

news2024/11/24 11:09:48

Python来写一个童话故事

主题:冒险,
风格:惊险,
人物:男孩,
地点:海底。

循环遍历鱼列表中的每一条鱼请添加图片描述

for fish in fishes:
    # 获取男孩和鱼的坐标和距离
    boy_x, boy_y = boy.position()
    fish_x, fish_y = fish.position()
    distance = ((boy_x - fish_x) ** 2 + (boy_y - fish_y) ** 2) ** 0.5
    # 如果距离小于男孩和鱼的大小之和,则表示碰撞发生了
    if distance < (BOY_SIZE + FISH_SIZE) / 2:
        # 播放一段音效,表示吃到了鱼
        winsound.PlaySound("eat.wav", winsound.SND_ASYNC)
        # 增加分数,并更新计分板上的分数显示
        score += SCORE_PER_FISH
        update_score()
        # 让鱼重新出现在随机位置上
        fish.goto(random.randint(-SCREEN_WIDTH / 2 + FISH_SIZE / 2, SCREEN_WIDTH / 2 - FISH_SIZE / 2), random.randint(-SCREEN_HEIGHT / 2 + FISH_SIZE / 2, SCREEN_HEIGHT / 2 - FISH_SIZE / 2))

定义一个函数,用来让男孩向左移动

请添加图片描述

def move_left():
# 获取男孩当前的x坐标,并减去男孩的速度,得到新的x坐标
x = boy.xcor() - BOY_SPEED
# 如果新的x坐标小于屏幕左边界加上男孩的大小的一半,则将新的x坐标设置为屏幕左边界加上男孩的大小的一半,防止男孩移出屏幕
if x < -SCREEN_WIDTH / 2 + BOY_SIZE / 2:
x = -SCREEN_WIDTH / 2 + BOY_SIZE / 2
# 让男孩移动到新的x坐标和原来的y坐标上
boy.goto(x, boy.ycor())

定义一个函数,用来让男孩向右移动

请添加图片描述

def move_right():
# 获取男孩当前的x坐标,并加上男孩的速度,得到新的x坐标
x = boy.xcor() + BOY_SPEED
# 如果新的x坐标大于屏幕右边界减去男孩的大小的一半,则将新的x坐标设置为屏幕右边界减去男孩的大小的一半,防止男孩移出屏幕
if x > SCREEN_WIDTH / 2 - BOY_SIZE / 2:
x = SCREEN_WIDTH / 2 - BOY_SIZE / 2
# 让男孩移动到新的x坐标和原来的y坐标上
boy.goto(x, boy.ycor())

定义一个函数,用来让男孩向上移动

def move_up():
# 获取男孩当前的y坐标,并加上男孩的速度,得到新的y坐标
y = boy.ycor() + BOY_SPEED
# 如果新的y坐标大于屏幕上边界减去男孩的大小的一半,则将新的y坐标设置为屏幕上边界减去男孩的大小的一半,防止男孩移出屏幕
if y > SCREEN_HEIGHT / 2 - BOY_SIZE / 2:
y = SCREEN_HEIGHT / 2 - BOY_SIZE / 2
# 让男孩移动到原来的x坐标和新的y坐标上
boy.goto(boy.xcor(), y)

定义一个函数,用来让男孩向下移动

def move_down():
# 获取男孩当前的y坐标,并减去男孩的速度,得到新的y坐标
y = boy.ycor() - BOY_SPEED
# 如果新的y坐标小于屏幕下边界加上男孩的大小的一半,则将新的y坐标设置为屏幕下边界加上男孩的大小的一半,防止男孩移出屏幕
if y < -SCREEN_HEIGHT / 2 + BOY_SIZE / 2:
y = -SCREEN_HEIGHT / 2 + BOY_SIZE / 2
# 让男孩移动到原来的x坐标和新的y坐标上
boy.goto(boy.xcor(), y)

定义一个函数,用来让鲨鱼自动追逐男孩,并改变方向和速度

请添加图片描述

def move_shark():
global SHARK_SPEED # 声明SHARK_SPEED是全局变量,可以在函数内部修改它的值
# 获取鲨鱼和男孩当前的角度和距离(使用数学公式)
shark_angle = shark.towards(boy.position())
shark_distance = shark.distance(boy.position())
# 计算鲨鱼需要转动多少度才能朝向男孩(使用数学公式)
angle_diff = (shark_angle - shark.heading()) % 360 - 180
# 如果角度差大于10度,则让鲨鱼转动10度,否则让鲨鱼转动角度差(使用if-else语句)
if abs(angle_diff) > 10:
shark.left(10 * angle_diff / abs(angle_diff))
else:
shark.left(angle_diff)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亿发生产管理信息化系统,生产制造型企业信息化建设

在不断发展的先进制造格局中&#xff0c;传统生产管理模式的固化限制了企业规模化生产能力。为适应这个充满活力的时代需求&#xff0c;实现战略目标&#xff0c;企业必须借助信息技术的力量加强生产过程管理&#xff0c;踏上企业生产信息化的征程。亿发生产管理信息化系统&…

Python3数据分析与挖掘建模(4)集中趋势与离中趋势、数据分布与抽样

分析理论是统计学和数据分析中的重要概念&#xff0c;它们用于描述和理解数据的集中趋势、离中趋势、数据分布以及抽样理论。下面是对这些概念的简要说明&#xff1a; 集中趋势&#xff1a; 均值、中位数与分位数、众数离中趋势&#xff1a;标准差、方差数据分布&#xff1a;偏…

[Nacos] Nacos Server与Nacos Client间的UDP通信 (十)

文章目录 1.Nacos Server与Nacos Client间的UDP通信1.1 Nacos Server向Nacos Client进行UDP推送1.2 Nacos Client接收Nacos Server的UDP推送 1.Nacos Server与Nacos Client间的UDP通信 Nacos Server向Nacos Client进行UDP推送Nacos Client接收Nacos Server的UDP推送 1.1 Naco…

黑客常用工具合集

首先恭喜你发现了宝藏。 本文章集成了全网优秀的开源攻防武器项目&#xff0c;包含&#xff1a; 信息收集工具&#xff08;自动化利用工具、资产发现工具、目录扫描工具、子域名收集工具、指纹识别工具、端口扫描工具、各种插件....etc...&#xff09;漏洞利用工具&#xff0…

枚举_源码_分析

枚举源码分析 前言 这是所有Java语言枚举类型的公共基类。关于枚举的更多信息&#xff0c;包括编译器合成的隐式声明方法的描述&#xff0c;可以在Java的第8.9节中找到™ 语言规范。 请注意&#xff0c;当使用枚举类型作为集合的类型或映射中键的类型时&#xff0c;可以使用专…

[NOIP2004 普及组] FBI 树 队列解法

[NOIP2004 普及组] FBI 树 题目描述: 我们可以把由 0 和 1 组成的字符串分为三类&#xff1a;全 0 串称为 B 串&#xff0c;全 1 串称为 I 串&#xff0c;既含 0 又含 1 的串则称为 F 串。 FBI 树是一种二叉树&#xff0c;它的结点类型也包括 F 结点&#xff0c;B 结点和 I …

RocketMQ实现一个简单的秒杀接口

预设场景&#xff1a; “秒杀”这一词多半出现在购物方面&#xff0c;但是又不单单只是购物&#xff0c;比如12306购票和学校抢课&#xff08;大学生的痛苦&#xff09;也可以看成一个秒杀。秒杀应该是一个“三高”&#xff0c;这个三高不是指高血脂&#xff0c;高血压和高血糖…

数据中间件 - MyCat2 配置文件说明

数据中间件 - MyCat2 配置文件说明 本章内容基于 MyCat2 版本. 会对 Mycat 中的配置文件作用,以及结合 Mycat 的一些概念进行介绍,比起一上来就盲目的开始操作,然后遇到各种问题,先从全局进行了解对提高效率是有帮助的. MyCat 的配置文件都存放在 conf 路径下. server.jso…

学习Node.js的9大理由以及日常开发中的14个高级特性和代码示例分享

目录 为什么要学Nodejs 1. 高级事件处理&#xff1a;事件驱动机制 2. 非阻塞I/O 3. 异步编程 4. 模块系统 5. 流式数据处理 6. 跨平台支持 7. 高性能网络编程 8. 调试工具 9. 第三方模块 10. 升级 V8 引擎至 10.7 11. 函数式编程 12. 高级路由 13. 试验 Node wat…

国内免费可用的ChatGPT网页版

ChatGPT 一、ChatGPT是个啥&#xff1f;二、16个国内免费的ChatGPT网站。三、ChatGPT使用方式 一、ChatGPT是个啥&#xff1f; chat&#xff1a;表示“聊天”。 GPT&#xff1a;则是Generative、Pre-trained、Transformer的缩写&#xff0c;表示“预训练语言模型”&#xff0…

【Unity100个实用小技巧】同一个Canvas下的UI顺序通过代码如何修改

☀️博客主页&#xff1a;CSDN博客主页&#x1f4a8;本文由 萌萌的小木屋 原创&#xff0c;首发于 CSDN&#x1f4a2;&#x1f525;学习专栏推荐&#xff1a;面试汇总❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&#…

三维场景重建经典论文详解

来源&#xff1a;投稿 作者&#xff1a;小灰灰 编辑&#xff1a;学姐 论文标题&#xff1a; 《REAL-TIME INDOOR SCENE RECONSTRUCTION WITH RGBD AND INERTIA INPUT》 论文链接: https://arxiv.org/pdf/2008.00490.pdf https://github.com/CWanli/RecoNet 数据集&#xff1a;P…

停车系统多位多车算法

1、算法代码 下面代码是伪Java代码&#xff0c;看得懂就行。 //查询当前车牌号对应的车主的其他的车牌号的入场纪录&#xff0c;根据时间倒叙排列。 List<Record> comeRecords mapper.selectFromDB; //车主所有的在场车辆数量-车主拥有车位数量 等于需要计费的车辆数量…

虚拟机NAT模式下修改linux静态ip

首先修改VMware的虚拟网络编辑器&#xff0c;NAT设置-> 设置网关&#xff0c;一般ip的第四部分网关为2&#xff0c;第三部分自己设置。 然后设置自己windows电脑 右键属性里面的ipv4&#xff0c;设置为静态的&#xff0c;dns除了对应网关还加一个通用dns 8.8.8.8。 这些外…

基于Q-Table的强化学习笔记

基于Q-Table的强化学习笔记 1 几个概念1.1 状态空间 S S S和动作空间 A A A1.2 奖励 R R R1.3 价值函数与Q-Table1.4 马尔可夫性 2 基于Q-Table的强化学习算法2.1 SARSA算法2.2 Q-learning算法 1 几个概念 最近也从小白入手看了些强化学习(Reinforcement Learning&#xff0c;…

中国人民大学与加拿大女王大学金融硕士——每天都要优于过去的自己,加油!

职场中拉开人与人之间差距的&#xff0c;往往是日复一日微小的积累。满足已取得的成就会让人停滞不前&#xff0c;一旦停止学习&#xff0c;人就会止步不前。懂得持续学习、终生成长的人&#xff0c;能保持积极进取的状态。金融行业的你有计划来人民大学与加拿大女王大学金融硕…

累积运行时间功能块(SCL语言)

设备累积运行时间功能块梯形图源代码请参看下面的文章博客: SMART PLC设备累计运行时间功能块_RXXW_Dor的博客-CSDN博客功能块非常简单,没有什么特别需要说明的,方法不唯一仅供参考。https://blog.csdn.net/m0_46143730/article/details/129170452方法始终不唯一,受限于当…

【c】vscode c/c++环境配置

文章目录 1 mingw下载及配置1.1 mingw下载1.2 环境变量配置1.3 gdb安装 2 vscode c插件安装3 vscode文件配置 1 mingw下载及配置 1.1 mingw下载 https://sourceforge.net/projects/mingw-w64/files/ 1.2 环境变量配置 1.3 gdb安装 我下载的mingw未安装gdb调试 cmd执行: …

vue3 项目实践总结

一、挂载全局变量 1.1 main.js 中挂载 // 引入全局变量 import api from /api;const app createApp(App);// 挂载全局变量 app.config.globalProperties.$API api;app.use(store).use(router).use(ElementPlus).use(Vant).mount(#app);1.2 组件中获取 方法一 推荐使用proxy…

研发工程师玩转Kubernetes——非定时任务

在《研发工程师玩转Kubernetes——自动扩缩容》一文中&#xff0c;我们使用在本地使用wrk进行了压力测试。如果我们希望在容器中运行&#xff0c;该怎么做呢&#xff1f; 构建/推送wrk镜像 Dockerfile如下。主要就是在Ubuntu22中安装wrk。 From ubuntu:22.04 RUN apt-get up…