您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用python實現微信跳一跳拿高分,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
原理
首先大家是有一個直觀感受,根據兩個箱子距離的不同,需要按壓的時間也是不一樣的,一般來說,一個大膽的猜測是按壓時間和距離是成正比的。
這是我們的工作原理:
在跳一跳頁面截圖
計算出初始點和終點的距離
想辦法測出距離與按壓時間的系數
想辦法讓手機按壓指定的時間
重復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實現微信跳一跳拿高分”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。