分数霸榜! 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正则表达式re模块详细介绍
May 29 Python
Python抓取京东图书评论数据
Aug 31 Python
requests和lxml实现爬虫的方法
Jun 11 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
python中Switch/Case实现的示例代码
Nov 09 Python
Python中的函数作用域
May 07 Python
Pytorch之卷积层的使用详解
Dec 31 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
Python机器学习之底层实现KNN
Jun 20 Python
利用Python多线程实现图片下载器
Mar 25 Python
Python 全局空间和局部空间
Apr 06 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
php 邮件发送问题解决
2014/03/22 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
python一键升级所有pip package的方法
2017/01/16 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python脚本实现验证码识别
2018/06/07 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
如何在python中实现线性回归
2020/08/10 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
高级文秘工作总结的自我评价
2013/09/28 职场文书
擅自离岗检讨书
2014/02/11 职场文书
益达广告词
2014/03/14 职场文书
学校运动会感想
2015/08/10 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript