分数霸榜! python助你微信跳一跳拿高分
前言 最近微信的跳一跳很火,大家看到排行榜上几百上千的分数,再看看自己百分左右的分数肯定很难过,我手残怪我吗?没关系,如果你跟着我来,也能让你分数霸榜。 原理 首先大家是有一个直观感受,根据两个箱子距离的不同,需要按压的时间也是不一样的,一般来说,一个大胆的猜测是按压时间和距离是成正比的。 这是我们的工作原理:
工具
准备工作 环境 fedora 27 安装 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 开始行动
我的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发现。 更多内容大家可以参考专题《微信跳一跳》进行学习。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |