溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python實現(xiàn)微信跳一跳拿高分

發(fā)布時間:2021-08-02 09:53:20 來源:億速云 閱讀:115 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹如何使用python實現(xiàn)微信跳一跳拿高分,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

原理

首先大家是有一個直觀感受,根據(jù)兩個箱子距離的不同,需要按壓的時間也是不一樣的,一般來說,一個大膽的猜測是按壓時間和距離是成正比的。

這是我們的工作原理:

  • 在跳一跳頁面截圖

  • 計算出初始點和終點的距離

  • 想辦法測出距離與按壓時間的系數(shù)

  • 想辦法讓手機按壓指定的時間

  • 重復1-4

工具

  • adb調(diào)試工具,它可以輔助截圖以及上傳截圖給電腦,以及控制手機按壓位置及時間

  • python 處理數(shù)據(jù)

  • python Pillow庫 一個圖像庫,可以獲取圖像信息

  • python matplotlib庫 配合Pillow打開圖像并記錄鼠標點擊地方的坐標

準備工作

環(huán)境

fedora 27
python3.6

安裝

adb調(diào)試工具

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調(diào)試,彈框是否允許計算及對手機控制選擇是

  • 終端運行 adb devices 如果出現(xiàn) 590bc*** device類似的說明連接好了,否則重試第一步

  • 打開微信跳一跳,點擊開始游戲,運行腳本

  • 在圖片上依次點擊棋子腳下和目的方框的中心

  • 手機開始跳了

  • 重復4


我的SM-C7000(1920x1080),我測出來系數(shù)是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

 #手指點擊位置一般在中間偏下。取隨機值混淆系統(tǒng)檢測

 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)的系數(shù)
 ratio = 1.38

 #隨機更改按壓時間使他不是一個整百數(shù)
 s = s*ratio + random.randint(-20,20) 
 s = int(s)

 #pylab.close()
 #像手機發(fā)送跳遠按壓時間
 os.system(jump.format(x=w,y=h,time=s))
 time.sleep((s+500)/1000)

一些建議

最好停止跳之前手動跳幾步,防止被tx發(fā)現(xiàn)。
分數(shù)不要太高,循序漸進逐漸升高,否則容易被清空分數(shù)。

以上是“如何使用python實現(xiàn)微信跳一跳拿高分”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI