《微信跳一跳》通过Python脚本获得高分教程

Python069

《微信跳一跳》通过Python脚本获得高分教程,第1张

最近微信跳一跳非常的火热,很多玩家也第一时间接触了这款游戏,但是怎么才能获得高分呢?很多玩家就不是特别清楚了,最近网上流传出了使用Python脚本实现微信跳一跳高分的神奇操作。今天我便给大家带来微信跳一跳小程序Python脚本高分操作方法的详细解读,一起来看看用Python怎么实现微信跳一跳的高分吧。

微信跳一跳Python脚本高分视频:

点击观看

原理说明

将手机点击到《跳一跳》小程序界面

用 ADB 工具获取当前手机截图,并用 ADB 将截图 pull 上来

计算按压时间

手动版:用 Matplotlib 显示截图,用鼠标先点击起始点位置,然后点击目标位置,计算像素距离;

自动版:靠棋子的颜色来识别棋子,靠底色和方块的色差来识别棋盘;

用 ADB 工具点击屏幕蓄力一跳

原项目地址:wangshub/wechat_jump_game

教你用Python来玩微信跳一跳

本项目源码:yangyiLTS/wechat_jump_game_iOS

目前已有的iOS跳一跳辅助需要macOS环境下的WebDriverAgentRunner。而现在介绍的方法在Windows环境下物理实现,不需要macOS也不需要越狱。

先上效果

运行环境&工具

Python 3.6 in Windows

Python Pillow库

局域网环境

iToools Airplayer

树莓派或arduino (本文使用树莓派)

SG90 舵机

杜邦线、纸板

一小块海绵

橙子或其它多汁水果(可选)

基本思路使用iOS自带Airplay服务将游戏画面投影到电脑上。使用Pillow库截取电脑屏幕,获得游戏画面。分析图片,计算出跳跃距离,乘以时间系数获得按压时间。将按压时间发送至树莓派,树莓派控制舵机点击手机屏幕。原理&步骤

舵机&控制器部分

树莓派(OS:Raspbian Jessie)连接上局域网,下载servo_control.py到树莓派。拿一根杜邦线粘在舵机的摆臂上,并且固定好舵机在纸板上,如图:

取一小块海绵,约10mm*10mm*5mm,不必太精确。海绵中间挖一个小洞。大概是这样:

海绵上滴水浸透,放在手机屏幕上“再来一次”的位置。杜邦线的另一头插进橙子。(触发电容屏需要在屏幕上形成一个电场,我尝试过连接干电池负极的方案,但是效果不理想,最后不得已拿了室友的一个橙子。当然,一直捏着或者含着导线也是可以的。)

舵机连接上树莓派,电源使用5v(Pin #04,Pin #06),舵机控制线接在GPIO18(Pin #12)。

需要根据实际安装位置调整舵机高点和低点位置(范围: 2.5~12.5)

servo_down = 3.8 servo_up = 5

最终效果

Windows 部分

下载Airplayer(免安装,暂无捆绑)

配置Airplayer,画质什么的统统调到最高。启动iPhone上的Airplay,然后可以在电脑上看到iPhone画面,游戏运行时需要Airplayer全屏显示。

安装Pillow库,本文使用Pillow库的ImageGrab截屏,截屏代码:

im = ImageGrab.grab((654, 0, 1264, 1080)) im.save('a.png', 'png')

下载wechat_jump_auto_iOS_Win.py,我的显示器分辨率是1920*1080,手机是iPhone7。如果使用不同的设备需要更改时间系数等参数。

由于Airplay传输画面时会压缩,获取的游戏画面会有颜色偏差。我修改了原算法的一些参数,增大了颜色上的宽容度,在测试中已经达到一个比较好的准确率。

wechat_jump_auto_iOS_Win.py 计算出跳跃距离后,会调用socket库把跳跃时间发送到树莓派上,其中ip地址需要修改为实际树莓派的ip地址。

ip_addr = 'rasp_ip'

运行打开游戏画面,Airplayer窗口全屏树莓派上运行servo_control.py ,监听9999端口,等待Win的计算结果Windows运行wechat_jump_auto_iOS_Win.py海绵放在“再来一次”的位置可以自动重新开始,然后就会一直自动刷分问题&其它

由于是物理点击屏幕,会产生一定的操作误差。操作误差由时间常数误差、舵机运动时间、杜邦线触点插进海绵的深度等等因素引起。而当前使用的算法在一种情况下会出现误差叠加的问题。

Z形路径误差累积过程

舵机的摆动角度和时间系数没有绝对的数值,需要慢慢尝试,当前使用的时间系数是2.43。

可以使用arduino + pyfirmata组合控制舵机,成本比较低,不需要网络传输计算结果。因为我的arduino前些天送给了女票,所以还没有使用arduino的方案。

这个游戏在跳了200+次之后方块会变的非常小(如题图),已经不是普通人类所能做到的。研究了外挂之后才知道手玩高分有多难,大家还是不要刷分了,会没朋友的。

Python是世界上功能最多,功能最强大的编程语言之一。通过Python,可以编写自己的应用程序,创建 游戏 ,设计算法,甚至编程机器人。而且Python的热度现在一直高居不下,比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。

清华北大教授万赞Python全集视频教程,这就是你需要的

如果你想选择一种语言来入门编程,那么Python绝对是首选!其非常接近自然语言,精简了很多不必要的分号和括号,非常容易阅读理解。编程简单直接,更适合初学编程者,让其专注于编程逻辑,而不是困惑于晦涩的语法细节上,比起JAVA、C#和C/C++这些编程语言相对容易很多。

因此,即使是非计算机专业或者没有基础的小白,也能分分钟入门。

但是呢,前提是一定要坚持学习!!!

阶段一:Python基础知识和高级特性

阶段二:Linux基础

阶段三:数据库原理和sql优化

阶段四:前端web开发

阶段五:Python Web后端开发

阶段六:爬虫和数据分析

阶段七:Python人工智能

Python基础语法的掌握

清华北大教授万赞Python全集视频教程,这就是你需要的

1. Python基础语法的掌握是必备技能,认识到了Python语言的优雅,即使你之前用过其他开发语言,也会转到Python的行列中

2. 掌握字符串的解析

3. 未来你会意识到各种各样的程序直接就是把字符串传来传去,包括海量日志分析,日志即字符串,所以字符串操作就是未来做项目的基础对文件的操作

4. Linux中一切皆文件,对文件的操作掌握了那么你会发现在此时你有能力将之前的Linux中的Shell脚本改写成Python脚本,至于为啥要改写?脚本更加简洁、易读嘛!

5. 掌握面向对象的思想

6. 面向对象思想对于开发程序员来说,不管未来你选择做哪一方面,使用什么语言开发,都是必须要掌握的,对于一个开发企业级的持续可扩展的项目至关重要

7. 掌握常见设计模式和排序算法

8. 设计模式的掌握可以让你的项目变得更好维护,是一种经验的总结,排序算法很多种,项目经常会有取TopN的需求,所以常见设计模式和算法排序面试官们很喜欢问,也是为后面的项目打好一个扎实的基础

下面是北京大学毕业的高琪老师亲手打造的python学习路线和视频。共分为7大阶段.

现在免费分享给大家哦!获取在文末!!!

清华北大教授万赞Python全集视频教程,这就是你需要的

清华北大教授万赞Python全集视频教程,这就是你需要的

第一阶段

清华北大教授万赞Python全集视频教程,这就是你需要的

python开发基础和核心特性

1.变量及运算符

2.分支及循环

3.循环及字符串

4.列表及嵌套列表

5.字典及项目练习

6.函数的使用

7.递归及文件处理

8.文件

9.面向对象

10.设计模式及异常处理

11.异常及模块的使用

12.坦克大战

13.核心编程

14.高级特性

15.内存管理

第二阶段

清华北大教授万赞Python全集视频教程,这就是你需要的

数据库和linux基础

1.并发编程

2.网络通信

3.MySQL

4.Linux

5.正则表达式

第三阶段

清华北大教授万赞Python全集视频教程,这就是你需要的

web前端开发基础

1.html基本标签

2.css样式

3.css浮动和定位

4.js基础

5.js对象和函数

6.js定时器和DOM

7.js事件响应

8.使用jquery

9.jquery动画特效

10.Ajax异步网络请求

第四阶段

清华北大教授万赞Python全集视频教程,这就是你需要的

Python Web框架阶段

1.Django-Git版本控制

2.Django-博客项目

3.Django-商城项目

4.Django模型层

5.Django入门

6.Django模板层

7.Django视图层

8.Tornado框架

第五阶段

清华北大教授万赞Python全集视频教程,这就是你需要的

Python 爬虫实战开发

1.Python爬虫基础

2.Python爬虫Scrapy框架

以上这python自学教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!