微信小程序跳一跳輔助程序(手動版)


       最近,微信官方推出了demo小程序遊戲《跳一跳》,這個遊戲操作簡單,容易上手,卻又不容易獲得高分,受到很多人的喜愛(emm...這遊戲有毒)。自己也嘗試了玩了幾次,作爲一個手殘+腦殘的資深玩家,對於這種遊戲的分數簡直低的可怕...既然自己這麼菜,就找些工具輔助一下吧,於是,就有了做一個輔助外掛的嘗試。

      本人玩這個遊戲的時候比較晚,所以先去度娘上查了一下現有的方法,果然,搜索出的結果還是很多的。常見的方法有基於python和adb,adb是谷歌爲android開發者提供一個開發工具,可以在命令行下操作,python中導入adb包庫即可。

開發工具

matlab,adb工具


實驗原理


       跳一跳是根據棋子和目標塊之間距離的不同,需要在屏幕上按壓相應的時間來使棋子調到目標塊,同時越接近中心點,分數越高,連續調到中心點,木有越來越多的分數加成。adb工具可以通過發送指令來模擬人按壓屏幕的操作,所謂我們只需要通過adb工具向手機發送一個按壓某一段時間的指令。那麼如何確定按壓時間呢?在玩過幾次之後可以發現,按壓時間和棋子到目標點之間的距離是一個線性函數,所以只需算出棋子到目標點間的距離,再乘以一個係數,就是棋子的按壓時間。爲了計算距離,我們首先通過手機截圖,將截圖傳至電腦上,之後可以找出棋子下方中心點和目標點的座標,採用歐拉距離公式即可計算出兩點間的距離。


手動版操作流程


1. 安裝adb工具並打開手機開發者模式和usb調試

      https://www.52pojie.cn/forum.php?mod=viewthread&tid=682631這裏提供了一個製作的簡單思路(尊重原創成果),同時裏面也提供了adb工具的下載鏈接,窩把它貼在下面 https://www.52pojie.cn/thread-682011-1-1.html

      至於手機的開發者模式,依次進入手機中的  設置-->關於手機,可以看到版本號,連續點擊版本號n次,就可以打開開發者選項


2. 打開cmd,在命名行下啓動jump.bat等截圖成功之後,進入步驟3

3. 選取起始點和目標點

    在matlab中運行jump.m,會在畫圖工具中打開遊戲截圖,此時在圖片上選取起始點和目標點,選定後獲取到兩個點的座標,即可計算出距離及按壓時間.



4. 向手機發送按壓指令

       回到命令行界面,按回車鍵啓動棋子跳躍(原理是通過adb指令將計算出的按壓時間發送到手機上 具體指令   adb shell input swipe 100 100 200 200 時間),等棋子跳完後按回車,回步驟2,進行下一輪截圖。


 程序下載鏈接 

點擊打開鏈接


說明


          本人對這個測試的時候,成功率很高,接近100%命中目標中心點,之後和同學一起做了個自動版的,本人比較菜,自動版最高目前1200+,窩在南大的室友用python來寫的已經2700+,之後也會貼出自動版的程序,自動版程序用的是簡單的圖像識別方法,找出圖像中固定的兩個點,歡迎有新想法和想嘗試的同學一起交流(很好奇用機器學習方法到底會是什麼效果)。


                 

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章