用python玩轉微信小遊戲 大小猜猜看
阿新 • • 發佈:2018-12-03
用python玩轉微信小遊戲 大小猜猜看
遊戲模式
在微信小程式裡搜尋“大小猜猜看”,即可找到該遊戲。
遊戲的目標比拼計算能力,找出誰大誰小,一共有40題,全部答對即挑戰成功。
一開始答題時間充足,數字也比較簡單,後面就需要特別快的計算速度。
專案地址
本專案地址:https://github.com/wangyunpengbio/wechat_game_daxiao
工具介紹
- Python 3.5
- OpenCV包
pip install opencv-python
- win32gui, win32ui, win32con(Python呼叫windows的原生API)
- PyUserInput包
pip install PyUserInput
模擬滑鼠鍵盤
原理說明
- 首先使用ApowerMirror軟體將手機螢幕投屏到電腦,
- 手動答題,蒐集訓練集資料,呼叫OpenCV庫,進行圖片相關處理
- 將圖片匯入邏輯迴歸模型,訓練模型
- 利用邏輯迴歸模型識別圖片,得出答案
- 模擬滑鼠自動點選正確答案
使用方法
- 首先我們得安裝ApowerMirror軟體,軟體下載連結:ApowerMirror下載 。
- 想辦法獲得表示式區域頂部和底部的y座標相對於整個手機螢幕的高度的比例,然後將對應值填入根目錄下的config.py檔案中的 exp_area_top_rate 和 exp_area_bottom_rate 處
- 開啟ApowerMirror軟體,將手機螢幕投影到電腦上,然後將ApowerMirror拉到桌面的一個固定位置,建議拉到左上角。使用QQ的截圖功能或者是其他方法獲取以下引數並填入config.py的對應位置:從PC端截圖時,擷取區域左上角相對桌面的x座標:projection_x; 擷取區域左上角相對桌面的y座標:projection_y; 擷取區域的寬度:projection_width; 從PC端截圖時,擷取區域的高度:projection_height; 使用PC進行截圖時點選手機螢幕區域的x座標:pc_tap_x; 使用PC進行截圖時點選手機螢幕上部分選項的y座標:pc_tap_up_y; 使用PC進行截圖時點選手機螢幕下部分選項的y座標:pc_tap_down_y;
- 將config.py中的 debug 引數設定為False,開啟遊戲介面,將ApowerMirror拉到桌面左上角,執行python程式
訓練自己的模型
- 首先需要確保你已經按照說明配置好了config.py中的相關引數,整個手機螢幕的截圖和表示式區域的截圖都是正確的。
- 將config.py中的 debug 引數設定為True,然後進入遊戲,同時執行main.py,你需要手動進行答題,此時程式每隔0.3秒會擷取一次手機螢幕。
- 執行imageTools.py中的get_char_for_train()方法,獲取到用於訓練的單個字元儲存到SingleCharForTrain資料夾中。
- 執行ml.py中的cleanTrainChar()方法將TrainChar資料夾中原有的訓練字元清空。
- 手工將SingleCharForTrain資料夾中的訓練字元移動到TrainChar中對應的子資料夾裡面。
- 呼叫ml.py中的dumpModel()方法訓練自己的模型.
常見問題
- 訓練模型中,全白色的圖片代表著“減號”
- 字元識別錯誤:建議認真檢查截圖的相關引數設定,確定擷取到正確的區域,重新訓練資料。
其他問題請在本專案的ISSUE中給我留言。
致謝
部分程式碼來源:微信小遊戲《加減大師》、《加減王者》系列遊戲輔助