美股历史上只有4次熔断。最后一次熔断和最后一次熔断要追溯到2020年3月9日和2020年3月13日,那两天我的记忆很深,那种感觉,仿佛就在几天前。话又说回来,特朗普又说了句狠话:这是他在2015年竞选期间发的一条推文:“如果有一天道琼斯指数单日暴跌1000多点,那么当时的总统就应该加载化作一门大炮,以极快的速度射向太阳,没有任何借口可言!嘻嘻,吃喝玩乐的骗子我见过,太空旅行的骗子还是第一次见。而且还被骗了3次,这招高明了。不过各大媒体很快辟谣称,推特其实是网友p图,特朗普本人也从来没有立过这样的flag。但这确实是一个有趣的话题。今天我们就用Python来模拟制作一个太空小游戏。1.在开始之前,您需要确保您的计算机上已经成功安装了Python和pip。如果没有,请访问这篇文章:超详细的Python安装指南进行安装。Windows环境打开Cmd(开始-运行-CMD),苹果系统环境打开Terminal(command+空格进入Terminal),准备开始输入命令安装依赖。当然,我推荐大家使用VSCode编辑器,复制本文代码,在编辑器下方的终端中安装依赖模块。多么惬意的一件事:Python编程的最佳搭档——VSCode详解指南。输入以下命令安装我们需要的依赖模块:pipinstallfreegamespipinstallturtle如果看到Successfullyinstalledxxx,说明安装成功。这篇文章的完整数据和代码可以在Python实战宝典公众号后台回复:大炮的特朗普。2.写代码的原理很简单,就是用了张特朗普的漫画地图,freegames模块,海龟绘图模块。我们之前写过很多关于海龟绘图模块的文章。不懂的可以阅读:1.Pythonturtle画雪花2.Pythonturtle深入理解递归2.1模块加载和设置图片首先介绍一下turtle模块和freegames模块,我们这个实验需要使用freegames模块中的vector向量(用于表示坐标)。importturtlefromrandomimportrandomrangefromfreegamesimportvector#setscreenscreen=turtle.Screen()screen.setup(420,420,370,0)#加载王牌地图并将其设置为默认turtletrump='3.gif'screen.addshape(Trump)turtle.shape(trump)2.2准备绘制在开始绘制之前,我们需要以Trump的头部作为移动点,所以我们需要隐藏原来的turtle对象,并设置tracer不显示,即当特朗普移动时画线。最后,当用户点击画布时,tap函数被执行。turtle.hideturtle()turtle.up()turtle.tracer(False)turtle.onscreenclick(tap)tap函数如下,设置球体的位置和初始速度。deftap(x,y):"""对屏幕点击的响应:paramx:x轴位置:paramy:y轴位置"""ifnotinside(ball):ball.x=-199ball.y=-199speed.x=(x+200)/25speed.y=(y+200)/252.3这部分的核心是move函数,但是在讲move函数之前,我们想重点说说how将原来的端点Change转换成特朗普的头像,也就是draw函数的作用:defdraw():"""Drawthesunandtrump"""turtle.hideturtle()turtle.clear()fortargetintargets:turtle.goto(target.x,target.y)turtle.dot(20,'red')如果在里面(球):turtle.showturtle()turtle.goto(ball.x,ball.y)turtle.update()还记得我们在一开始就把特朗普的头像设置成乌龟的形状了吗?然后在移动函数运行之前,海龟点被隐藏。其实此时特朗普的脑袋是藏着的。当我们开始移动时,我们只需要让海龟回来。所以核心语句是:turtle.showturtle()turtle.goto(ball.x,ball.y)这两句控制头像的移动。接下来,查看移动函数的主体:defmove():"""移动太阳和王牌:return:"""#生成“太阳”球体ifrandrange(40)==0:y=randrange(-150,150)target=vector(200,y)targets.append(target)#为targetintargets移动太阳:target.x-=0.5#如果特朗普在屏幕内,减速并移动ifinside(ball):speed.y-=0.35ball.move(speed)#重新渲染“太阳”的位置dupe=targets.copy()targets.clear()#如果距离特朗普太近,球体将被淘汰。fortargetindupe:ifabs(target-ball)>13:targets.append(target)#渲染画布draw()#如果targetintargets中没有目标则终止游戏:ifnotinside(target):return#每50毫秒递归调用这个函数turtle.ontimer(move,50)其实注释说的很清楚了,这里还是详细解释一下:1.首先需要生成“太阳”球体。这里使用了vector,它是一个生成坐标的函数。Y是随机生成的,所以球体的初始位置在最右边(200,y)。2.翻译所有太阳,包括新太阳。3.如果屏幕上有特朗普头像,让它动起来。4.重新渲染太阳的位置,换上新的坐标。如果它离特朗普太近,删除球体。5.渲染所有球体和特朗普的新位置。6.如果没有更多球体,则终止游戏,否则每50毫秒调用一次此函数。基于这个逻辑,你也可以写一个自己的游戏。3.笑话就是笑话。当然,这只是一个游戏。特朗普从来不说大炮是送太阳的,但美股近期的情况确实堪忧。即使美联储降息至零,放7000亿美元水,形势依然不可逆转,不容乐观。金融市场的雪崩是注定的。从金融周期来看,十年一遇的洗盘即将到来。普通人如何保护自己?那当然是学习更多的技能了!欢迎关注下方Python实战书籍,持续提供优质Python教程。这是我们文章的结尾。如果喜欢我们今天的Python实战教程,请继续关注我们。如果对您有帮助,请在下方点赞/观看。有什么问题可以在下方评论留言,我们会耐心解答!Python实战宝典不只是合集欢迎关注公众号:Python实战宝典原文来自Python实战宝典:Python游戏——大炮送特朗普上太阳
