分数霸榜! 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编程实现的图片识别功能示例
Aug 03 Python
python实现录音小程序
Oct 26 Python
Python中拆分字符串的操作方法
Jul 23 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
Python-Flask:动态创建表的示例详解
Nov 22 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
Python日志syslog使用原理详解
Feb 18 Python
python文件读取失败怎么处理
Jun 23 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Django项目在pycharm新建的步骤方法
Mar 02 Python
Django框架中表单的用法
Jun 10 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
详细介绍PHP应用提速面面观
2006/10/09 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Python中字典的基本知识初步介绍
2015/05/21 Python
python的中异常处理机制
2018/08/30 Python
带你认识Django
2019/01/15 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
Python实现FLV视频拼接功能
2020/01/21 Python
python从Oracle读取数据生成图表
2020/10/14 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
opencv实现图像平移效果
2021/03/24 Python
高中生学习总结的自我评价范文
2013/10/13 职场文书
会计助理的岗位职责
2013/11/29 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
深入浅析React中diff算法
2021/05/19 Javascript
vue实现移动端div拖动效果
2022/03/03 Vue.js