Python來幫你玩微信跳一跳

> 2017 年 12 月 28 日下午,微信發佈了 6.6.1 版本,加入了「小遊戲」功能,並提供了官方 DEMO「跳一跳」。 >自己也是上癮,玩了一百多局,也只有得到189分,後來看到網上一系列“教你用Python玩跳一跳”的文章,故決定寫一篇經驗貼用**最簡單的方式**實現微信跳一跳遊戲。 ### **開始前說明** > 爲了環境統一和成功實現,本文使用安卓(藍疊)虛擬機實現。本文主要以:`Android` + `Windows` 實現,Mac下同理也可以通過`Android` + `MacOS`實現。 > 希望大家不要把分數刷太高,容易沒朋友的。分數太高被會查封,小心被微信官方團隊問候。 > **微信跳一跳QQ交流羣: 657588688** ### **環境依賴安裝** - **Python 2.7** * 點擊[這裏](https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi)下載,下載`python-2.7.14.msi`一路next到成功即可 * 打開控制檯,輸入:`python –version`,出現`Python 2.7.xx`字樣說明安裝成功 - **Python依賴**(依賴包在`requirements.txt`中) * 依賴包安裝:`pip install -r requirements.txt` - **手機或者模擬器**(這裏推薦使用++藍疊模擬器++,點擊[這裏](http://202.114.96.192/aliosscdn.bluestacks.cn/package/BlueStacksGPSetup.exe)直接下載,藍疊[官網](http://www.bluestacks.cn/),建議不要使用夜神模擬器,無法使用adb連接) - **adb**(位於 Android SDK 中:`platform-tools/adb`) * 安裝 [Universal ADB Drivers](https://adb.clockworkmod.com/) 後,請在 環境變量 裏將 adb 的安裝路徑保存到 PATH 變量裏,確保 `adb` 命令可以被識別到。 * 或者你也可以安裝完整版Android SDK包 | 你需要安裝好java環境 ### **手機和模擬器說明** * 請將安卓手機的 USB 調試模式打開,設置》更多設置》開發者選項》USB 調試,如果出現運行腳本後小人不跳的情況,請檢查是否有打開“USB 調試(安全模式)” * 根據大家反饋:1080 屏幕距離係數 **1.393**,2K 屏幕爲 **1**,建議使用1080p * 添加部分機型配置文件,可直接複製使用 * 如果使用藍疊模擬器:設置分辨率爲:`1080 * 1920`(豎屏),如果是`1920 * 1080`(橫屏) 則模擬器的截圖是橫屏,導致識別出錯 ### **原理說明** > (代碼實現見:`wechat_jump_auto.py`,以下只是對於代碼實現原理的介紹) * 將手機點擊到《跳一跳》小程序界面; * 用 ADB 工具獲取當前手機截圖,並用 ADB 將截圖 pull 上來
adb shell screencap -p /sdcard/autojump.png
adb pull /sdcard/autojump.png .
  • 計算按壓時間

    • 如果能精確測量出起始和目標點之間測距離,就可以估計按壓的時間來精確跳躍

    • 手動版:用 Matplotlib 顯示截圖,用鼠標點擊起始點和目標位置,計算像素距離;

    • 自動版:靠棋子的顏色來識別棋子,靠底色和方塊的色差來識別棋盤;
  • 用 ADB 工具點擊屏幕蓄力一跳;
    adb shell input swipe x y x y time(ms)

安卓手機(模擬機)操作步驟,到這裏才正式開始

  • 1.安卓手機打開 USB 調試,設置》開發者選項》USB 調試

  • 2.電腦與手機 USB 線連接,確保執行adb devices可以找到設備 ID。tips:如果打開藍疊模擬器,無法找到你的設備,如:emulator-5554 device,請執行命令:adb connect localhost:5555,藍疊默認是localhost:5555。這時候adb devices就可以找到設備

  • 3.界面轉至微信跳一跳遊戲,點擊開始遊戲

  • 4.運行python wechat_jump_auto.py,如果手機界面顯示 USB 授權,請點擊確認。或者也可以直接打開目錄中的wechat_jump_auto.py文件,可直接運行

  • 注意:請按照你的手機分辨率從./config/文件夾找到相應的配置,拷貝到 xxx.py 同級目錄./config.json(如果屏幕分辨率能成功探測,會直接調用 config 目錄的配置,不需要複製,記住要把配置文件重命名爲:config.json)。

實驗結果

聯繫作者

事實證明,機器人比人更會玩兒遊戲。哈哈,千萬不要刷高分,否則會被揍,請穩步刷分。

如果你覺得不錯的話,不妨打賞一下,這樣我就有更大的動力去完善它,優化它。

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