用 Python 来刷微信「跳一跳」游戏的记录
时间:2022-05-04
本文章向大家介绍用 Python 来刷微信「跳一跳」游戏的记录,主要内容包括工具介绍、安卓手机操作步骤、iOS 手机操作步骤、实验结果、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
本文代码在公众号 datadw 里 回复 跳一跳 即可获取。
微信小程序的游戏 —— 跳一跳,可以说是火爆了所有的微信好友圈。甚至比五六年前的飞机大战游戏都火爆,这种小游戏的火爆不仅仅是因为有魔性,有意思,更好玩的是和好友之间的排名比拼。可以说:微信深谙心理学啊!
这个游戏应该怎么玩呢?
当手指触碰到手机屏幕时,长按,它就弓腰蓄力;松开,它就开始翻转跳跃——从这个“盒子”跳到另一个“盒子”。难度还是比较大的。
既像“i”又像一个“人”。
当你的手指触碰到手机屏幕时,长按,它就弓腰蓄力;松开,它就开始翻转跳跃——从这个“盒子”跳到另一个“盒子”。
玩家要做的事情就是让小人不要掉下去。
高分秘籍是这样的:
1. 如果你每次都能挑到各自的正中间的话,可以 + 2 分,如果连着跳到中间会 + 4、+6、+8、+10…… 2. 跳到污水井盖上面,停留 2 秒,等到下水道声音响起直接 + 5 分 3. 跳到魔方上面,停留 2 秒,等到魔方转正会直接 + 10 分 4. 跳到音乐盒上面,停留 2 秒,等到音乐响起会直接 + 30 分 5. 跳到便利店,停留 2 秒,等到便利店开门会直接 + 15 分
这确实是游戏攻略,但是你们知道为什么会这么设计吗?停留 2 秒?因为这样会打乱你跳跃的节奏感,你们有没有感觉跳到加分块上的时候,停留之后再跳,特别容易失误?这都是套路。
在 Github 上面已经有小伙伴用 Python 来玩跳一跳这个游戏了,想多少分就有多少分,很简单。
本文代码在公众号 datadw 里 回复 跳一跳 即可获取。
工具介绍
- Python
- 手机或模拟器
- ADB 驱动,可以到这里下载
- 相关依赖
如果你是iOS
+ MacOS,请参考下面的配置:
- 使用真机调试 WDA,参考 iOS 真机如何安装WebDriverAgent · TesterHome
- 安装openatx/facebook-wda
- Python 3
如果你是 Android
+ MacOS,请参考下面的配置:
- Python 3
- 使用brew进行安装
brew cask install android-platform-tools
- 安装完后插入安卓设备且安卓已打开usb调试模式,终端输入
adb devices
,显示如下表明设备已连接
安卓手机操作步骤
- 安卓手机打开 USB 调试,设置》开发者选项》USB 调试
- 电脑与手机 USB 线连接,确保执行
adb devices
可以找到设备 ID - 界面转至微信跳一跳游戏,点击开始游戏
- 运行
python wechat_jump_auto.py
,如果手机界面显示 USB 授权,请点击确认 - 请按照你的手机分辨率从
./config/
文件夹找到相应的配置,拷贝到 *.py 同级目录./config.json
(如果屏幕分辨率能成功探测,会直接调用 config 目录的配置,不需要复制)
iOS 手机操作步骤
- 运行安装好的
WebDriverAgentRunner
- 将手机点击到《跳一跳》小程序界面
- 运行脚本。有两种模式可供选择:手动辅助跳 和 自动连续跳
- 拷贝
./config/iPhone
目录下对应的设备配置文件,重命名并替换到./config.json
- 命令行运行
python3 wechat_jump_auto_iOS.py
- 会自动计算坐标并连续起跳,根据起跳的精准情况更改
./config.json
中的press_coefficient
参数,直到获得最佳取值 - 命令行运行
python3 wechat_jump_iOS_py3.py
- 依次点击弹出的窗口中的起始位置和目标位置,会自动计算距离后起跳
- 根据起跳的精准情况更改
python3 wechat_jump_iOS_py3.py
中的time_coefficient
参数,直到获得最佳取值 - 手动辅助跳
- 自动连续跳
- 拷贝
实验结果
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深入了解ActiveMQ!
- 完美解决 python ImportError: Failed to import any qt binding
- 爬取娱乐圈排行榜数据
- 如何解决Linux系统下pyaudio安装缺少文件问题error: portaudio.h: 没有那个文件或目录
- pytest 测试框架学习(10):pytest.param
- pytest 测试框架学习(11):pytest.raises
- Hibernate第二天:Hibernate的一级缓存、其他的API
- pytest 测试框架学习(12):pytest.deprecated_call
- Pinstaller(Python打包为exe文件
- pytest 测试框架学习(14):pytest.warns
- ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib
- pytest 测试框架学习(15):pytest.freeze_includes
- Linux: scp文件,目录上传下载标准版
- Hibernate第三天:Hibernate的一对多配置、Hibernate的多对多的配置
- Git: 掉坑记 -- git reset 杀手