分数霸榜! python助你微信跳一跳拿高分


Posted in Python onJanuary 08, 2018

前言

最近微信的跳一跳很火,大家看到排行榜上几百上千的分数,再看看自己百分左右的分数肯定很难过,我手残怪我吗?没关系,如果你跟着我来,也能让你分数霸榜。

原理

首先大家是有一个直观感受,根据两个箱子距离的不同,需要按压的时间也是不一样的,一般来说,一个大胆的猜测是按压时间和距离是成正比的。

这是我们的工作原理:

  • 在跳一跳页面截图
  • 计算出初始点和终点的距离
  • 想办法测出距离与按压时间的系数
  • 想办法让手机按压指定的时间
  • 重复1-4

工具

  • adb调试工具,它可以辅助截图以及上传截图给电脑,以及控制手机按压位置及时间
  • python 处理数据
  • python Pillow库 一个图像库,可以获取图像信息
  • python matplotlib库 配合Pillow打开图像并记录鼠标点击地方的坐标

准备工作

环境

fedora 27
python3.6

安装

adb调试工具

fedora/centos

sudo yum install adb

ubuntu

sudo apt install adb

python需要的库

sudo pip3 install matplotlib
sudo pip3 install Pillow

还需要sudo yum install python3-tkinter(fedora)

sudo apt install pytho3-tk(ubuntu)

安装这个是为了支持matplotlib

开始行动

  • 手机连接电脑,打开usb调试,弹框是否允许计算及对手机控制选择是
  • 终端运行 adb devices 如果出现 590bc*** device类似的说明连接好了,否则重试第一步
  • 打开微信跳一跳,点击开始游戏,运行脚本
  • 在图片上依次点击棋子脚下和目的方框的中心
  • 手机开始跳了
  • 重复4

我的SM-C7000(1920x1080),我测出来系数是1.38。如果手机分辨率比我低,增大这个值,否则减小这个值,多次修改这个值直到适合你的手机。

代码

#coding=utf-8
from PIL import Image 
import pylab
import os
import time
import random

cut = 'adb shell screencap -p /sdcard/autojump.png'
push = 'adb pull /sdcard/autojump.png . '
jump = 'adb shell input swipe {x} {y} {x} {y} {time}'

while True:
 #手机截屏
 os.system(cut)
 time.sleep(0.01)

 #截图上传
 os.system(push)
 time.sleep(0.03)

 pic = Image.open('autojump.png')
 #获取屏幕像素
 (w,h) = pic.size

 #手指点击位置一般在中间偏下。取随机值混淆系统检测

 w = int(w*random.uniform(0.45,0.55))
 h = int(h*random.uniform(0.7,0.8))

 #打开图片
 im = pylab.array(pic) 
 pylab.imshow(im)

 #读取两个点 
 (x1,x2) =pylab.ginput(2) 

 #两点距离公式
 s = ((x1[0]-x2[0])**2 + (x1[1] - x2[1])**2)**0.5
 #print(s)1.38 2.05

 #分辨率与按压时间(ms)的系数
 ratio = 1.38

 #随机更改按压时间使他不是一个整百数
 s = s*ratio + random.randint(-20,20) 
 s = int(s)

 #pylab.close()
 #像手机发送跳远按压时间
 os.system(jump.format(x=w,y=h,time=s))
 time.sleep((s+500)/1000)

一些建议

最好停止跳之前手动跳几步,防止被tx发现。
分数不要太高,循序渐进逐渐升高,否则容易被清空分数。

更多内容大家可以参考专题《微信跳一跳》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学Python之入门(五)缩进和选择
May 27 Python
python实现字符串和日期相互转换的方法
May 13 Python
Python制作简单的网页爬虫
Nov 22 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
python实现自动解数独小程序
Jan 21 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
简单了解Python读取大文件代码实例
Dec 18 Python
tensorflow 变长序列存储实例
Jan 20 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 #Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 #Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 #Python
用python实现的线程池实例代码
Jan 06 #Python
pip matplotlib报错equired packages can not be built解决
Jan 06 #Python
Python实现的朴素贝叶斯分类器示例
Jan 06 #Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 #Python
You might like
destoon找回管理员密码的方法
2014/06/21 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
深入解析Python中的lambda表达式的用法
2015/08/28 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Python实现Linux监控的方法
2019/05/16 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
自我鉴定注意事项
2014/01/19 职场文书
见习期自我鉴定
2014/01/31 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
中国世界遗产导游词
2015/02/13 职场文书