美股熔断历史上只发生过4次,上上次熔断和上一次熔断,还要追溯到2020年3月9日和2020年3月13日,那两天我的记忆很深刻,那感觉,仿佛就在几天前。

话又说回来了,特朗普可是说过狠话的:

这是在2015年竞选期间他发过的一条推特:“如果有一天道琼斯指数单日狂跌超过1000点,那当时的总统就应该被装进加农炮里,以极快的速度被射向太阳。不能找任何借口!”

嘻嘻,见过骗吃骗喝的,还第一次见骗太空游的。而且还骗了3次,这招高明。 不过,各大媒体很快辟谣,推特实际上是网友的p图,特朗普本人可没有立过这样的flag。

不过这真的是一个有趣的话题,今天我们就来用Python模拟一下,制作一个太空小游戏。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

输入以下命令安装我们所需要的依赖模块:

pip install freegames
pip install turtle

看到 Successfully installed xxx 则说明安装成功。你可以在Python实用宝典公众号后台回复:加农炮的特朗普 获得本文完整数据和代码。

2.编写代码

原理很简单,就是用到了张特朗普的漫画图和freegames模块,以及turtle画图模块。turtle画图模块我们以前也写过不少文章,大家不了解可以看看:

1.Python turtle 画雪花
2.Python turtle 深入理解递归

2.1 模块加载与设定图像

首先,引入turtle模块,和freegames模块,我们这一次实验需要用到freegames模块里的向量vector(用于表示坐标)。

import turtle
from random import randrange
from freegames import vector# 设定screen
screen = turtle.Screen()
screen.setup(420, 420, 370, 0)# 加载trump图,并设为默认turtle
trump = '3.gif'
screen.addshape(trump)
turtle.shape(trump)

2.2 准备画图

在开始画图之前,由于需要用特朗普头像作为移动点,我们需要隐藏原有的turtle对象,并设置不显示tracer,即特朗普移动的时候不画线。

最后设定当用户点击画布的时候,执行tap函数

turtle.hideturtle()
turtle.up()
turtle.tracer(False)
turtle.onscreenclick(tap)

tap函数如下,即设定球体的位置和初始速度。

def tap(x, y):"""回应屏幕点击:param x: x轴位置:param y: y轴位置"""if not inside(ball):ball.x = -199ball.y = -199speed.x = (x + 200) / 25speed.y = (y + 200) / 25

2.3 开始画图

这一部分的核心是move函数,不过在说道move函数前,我们要重点讲一下如何将原有端点换成特朗普的头像,那就是draw函数的功能:

def draw():"""绘画出太阳和trump"""turtle.hideturtle()turtle.clear()for target in targets:turtle.goto(target.x, target.y)turtle.dot(20, 'red')if inside(ball):turtle.showturtle()turtle.goto(ball.x, ball.y)turtle.update()

还记得我们在一开始就将特朗普的头像设定为turtle的shape了吗?然后在move函数运行之前,又将turtle的点隐藏了起来,其实这个时候隐藏的就是特朗普的头像。而在开始移动的时候,我们仅需要将turtle重新show回来即可。因此核心语句便是:

turtle.showturtle()
turtle.goto(ball.x, ball.y)

这两句控制了头像的移动。

接下来看看move函数主体:

 def move():"""移动太阳和trump:return:"""# 生成“太阳”球体if randrange(40) == 0:y = randrange(-150, 150)target = vector(200, y)targets.append(target)# 移动太阳for target in targets:target.x -= 0.5# 如果Trump在屏幕内,减速并移动if inside(ball):speed.y -= 0.35ball.move(speed)# 重新渲染“太阳”位置dupe = targets.copy()targets.clear()# 和Trump距离太近,则消去球体for target in dupe:if abs(target - ball) > 13:targets.append(target)# 渲染画布draw()# 没有目标了则终止游戏for target in targets:if not inside(target):return# 每隔50毫秒递归调用本函数turtle.ontimer(move, 50)

其实注释写的挺清楚的,但是这里我们还是详细解释一下:

1.首先需要生成“太阳”球体,这里用到了vector,是一个用于生成坐标的函数,y是随机产生的,所以球体初始位置都在最右边(200, y)。
2.平移所有的太阳,包括新增的。
3.如果屏幕内存在Trump头像,令其移动。
4.重新渲染太阳位置,用新坐标代替,若和Trump距离过近,则消去该球体。
5.渲染所有的球体和Trump的新位置
6.如果没有球体了,则终止游戏,否则每50毫秒重新调用本函数。

基于这个逻辑大家也可以写一个属于自己的游戏哦。

3.玩笑终归玩笑

当然,这只是个游戏,Trump其实没说过加农炮送上太阳的那句话,不过近期美股的形式确实令人担忧。即使在美联储将利息降为0、大放水7000亿美元的情况下,依然无法挽回局势,不容乐观。

金融市场雪崩在劫难逃,站在金融周期的角度看,十年一次的洗盘即将到来,普通人如何保护好自己?那当然就是学习更多的本领啦!欢迎关注下方的Python实用宝典,优质的Python教程将源源不断奉出。

我们的文章到此就结束啦,如果你喜欢我们今天的Python 实战教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦,有任何问题都可以在下方留言区留言,我们都会耐心解答的!


Python实用宝典
不只是一个宝典
欢迎关注公众号:Python实用宝典

原文来自Python实用宝典:Python 小游戏—加农炮送特朗普上太阳

Python 小游戏—加农炮送特朗普上太阳相关推荐

  1. Python小游戏——王校长的S8冠军奖杯【上】

    [前情提要] 1.pygame的安装:https://blog.csdn.net/Xiaomo_haa/article/details/83962300 2.Python小游戏--王校长的S8冠军奖杯 ...

  2. 视频教程-Python小游戏-宇宙激战-Python

    Python小游戏-宇宙激战 计算机应用专业研究生硕士,教学10余年,现关注于移动互联网.大数据和人工智能研究方向. 朱松 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术 ...

  3. python小游戏系列井字棋,儿时的回忆

    hello大家好,今天我又发现了个有趣的小玩意.我是专写有趣小玩意的老诗. 相信大家对于井字棋都并不陌生.现在也能找到各种各样的井字棋小游戏玩.那么你们自己是否会编写呢?接下来老诗用python教大家 ...

  4. python编的俄罗斯方块游戏_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  5. python hist函数_虎哥的python小技巧放送之绘制统计图(2)

    先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...

  6. python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  7. Python小游戏——王校长的S8冠军奖杯【下】

    [前情提要] 1.pygame的安装:https://blog.csdn.net/Xiaomo_haa/article/details/83962300 2.Python小游戏--王校长的S8冠军奖杯 ...

  8. 树莓派开箱+上手python小游戏

    树莓派开箱&上手python小游戏 树莓派开箱&上手python小游戏 安装所需设备 烧录系统 使用NOOBS方式烧录失败 下载官方系统镜像文件烧录成功 配置WiFi和SSH 一.Wi ...

  9. 边玩边学,13个 Python 小游戏真有趣啊(含源码)

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你 ...

最新文章

  1. BERT论文阅读(二): CG-BERT:Conditional Text Generation with BERT for Generalized Few-shot Intent Detection
  2. 在Chrome 中调试Javascript
  3. Effective_STL 学习笔记(八) 永不建立 auto_ptr 的容器
  4. 重磅!阿里巴巴和全球最大奢侈品电商YNAP成立合资公司
  5. COM_TEXT_TIMESTAMP_SET
  6. html如何去掉有无标题点,HTML中,如何去掉某个元素下的一些特殊标签?
  7. ndnsim r语言 ubuntu_Python语言---数据库
  8. SAP漏洞:为什么补丁没有发挥作用?
  9. 前端工具Gulp的学习
  10. 2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
  11. VOC2007.annotation文件解读
  12. html加减乘除除数不能为零,如何用正则表达式表示除数不为0 呢
  13. launch参数JAVA_javafx主要方法launch(args)如何工作? - java
  14. 什么是知识库,怎么制作知识库?
  15. Mongodb安装篇(CentOS7,Mongodb4.0.1)
  16. ctfshow_萌新_萌新隐藏题
  17. 闲置的华为悦盒搭建海思NASUbuntu系统(二)
  18. 微信小程序打印小票详解
  19. 知否大学-大学课后习题答案
  20. Linux常用命令(入口)

热门文章

  1. 1124:成语接龙 dfs+一维数组保存结果
  2. iOS查看手机app本地存储的文件
  3. Python爬虫自学笔记(五)Scrapy框架
  4. 中职计算机英语教学大纲,中职英语教学大纲与教学计划
  5. 玩转树莓派(一):树莓派更换国内源、设置中文显示及输入法
  6. 36.html-弹性盒子基础
  7. QQProtect遇到错误,给您带来不便,我们深表歉意。
  8. php mysql_num_rows函数_使用PHP mysqli_num_rows函数方法
  9. python restful django_Python构建RESTful网络服务[Django篇:使用PostgreSQL替代SQLite]
  10. 端午安康,使用祝福话语生成词云吧