阿里巴巴中臺部門急需P7層級的Java技術專家。若是有意向的同窗,歡迎投簡歷到huasong.cl@alibaba-inc.com或者掘金站內信給我。html
運行起來的同窗,歡迎在評論區裏,貼出本身如今中心點的命中率。java
若是有同窗對Android無障礙服務熟悉而且有時間有精力,能夠實現一個基於Android無障礙服務的外掛,那樣就不須要鏈接ADB與電腦了。git
我沒有想到有那麼多同窗問我如何導入項目。主要的問題在於:github
程序控制小人自動跳,幾乎每次命中中心點。shell
爲了更好的展現運行效果,我貼一個剛剛錄製的視頻。v.youku.com/v_show/id_X…
安全
若是你的運行效果,不像這個視頻中所示,請必定要認真閱讀「舒適提示」這個章節。bash
附上 GitHub 地址: github.com/burningcl/w… 歡迎你們與我交流意見。破解過程,總共花了3個小時,不斷地調整算法與參數,所以代碼比較亂,還請見諒。微信
根據同窗們的反饋,我今天午休時,抽了20分鐘,優化了一下算法。工具
提升瓶子的識別率。
因爲瓶子的顏色比較接近,新實現了一種算法用於瓶子的瓶蓋的識別。效果以下:
提升出現特殊盒子時,下步的計算。
特殊盒子,例如留聲機,他的動效時間很長,並且很大,對下一步的識別產生干擾。所以,改進了一下算法,減小干擾的影響。效果以下:
新增長了HackTest.java文件。你們在運行Hack.java後,會在wechat_jump_hack/out/production/wechat_jump_hack/imgs/input/
目錄下存放截圖文件。運行Hack.java結束後,再運行HackTest.java,會在wechat_jump_hack/out/production/wechat_jump_hack/imgs/output/
下生成input目錄中的截圖的位置標記。
若是以爲跳得不許的同窗,請運行HackTest.java文件,觀察標記的位置是否準確。若是準確的話,請自行調整彈跳係數。筆者沒法作到我所用的彈跳係數適用於全部的設備。
添加對命中中心點的統計
screenshot, file: /Users/chenliang/SkylineProjects/wechat_jump_hack_1/out/production/wechat_jump_hack_1/imgs/input/1092.png
438, 364
pos, x: 404, y: 1104
find myPos, succ, (404, 1104)
191, 217, 194
232, 258, 266
top, x: 732, y: 803
true
left, x: 599, y: 880
right, x: 868, y: 880
whitePoint: 752, 715, 887, 866
find whitePoint, succ, (733, 876), centerHit: 901, total: 1093
find nextCenter, succ, (733, 876)
distance: 554
/Users/chenliang/Library/Android/sdk/platform-tools/adb shell input swipe 400 400 400 400 554
複製代碼
根據個人運行結果,命中中心點的機率,大約爲82%~85%。由於微信也在改進,命中中心點的難度也在提升
對於最後的成績沒法提交
具體識別的算法,我如今沒有時間總結了(之後有時間我能夠去總結一下),你們能夠先看源碼。源碼中部分參數是在筆者的手機上進行調試的(分辨率爲1080),你們能夠根據本身手機,進行相應修改。
識別玩家位置
以下圖中白色空心方格所示:
識別目標方塊位置
以下圖中紅色實心方格所示,識別最上面的頂點,最左邊的點,與最右邊的點,從而計算出中心點:
識別目標方塊中心圓點的位置
若是你前一次踩中中心點,會有下一個中心點的提示(一個白色的圓點)。