用 PHP 來實現微信跳一跳

M1racle發表於2018-01-06

作為一個程式設計師,當微信出了跳一跳後,排行榜的前三名就沒有低於 1k 分的,我甚是傷心,所以 php 也要來跳一跳,今天發出來的版本貌似已經是第五版了,每天晚上都回家寫一個方法,分數越來越高,到了現在,執行速度和分數都已經讓我滿意了。剛才打的最高分。

github 地址: https://github.com/crazyhl/php_jump_auto

跳躍過的高分
file

下面說一下實現的思路,先用 adb 截圖,然後再這個截圖上尋找小人的位置,以及需要跳躍到的方塊的位置,最後再利用 adb 模擬長按跳過去就行了。

分開說下,如何找小人。利用先確認一個小人身上的色塊的色值,然後在再整圖上找這個色值區間值的一個範圍。

如下圖
file

再調整色塊值之後,我覺得這個範圍比較合適,所以我就定了下來,然後再計算這個範圍的中心點,當做小人的中心點。

然後再去尋找需要需要跳躍的目標,這裡有個優化後的方法,首先我們確認了小人的位置,然後就搜尋半張圖就可以了,然後尋找兩個點,跟標準值差異的最高點以及最右的一個點,為什麼不尋找左側點,是因為有陰影會影響搜尋的。

等找到最高點和最右點之後,取兩個點的交點就確認跳躍的目標點了。

這樣人物點位和目標點都確認好了,然後利用勾股定理就可以計算出來距離了。這個距離跟最終的長按時間是有一個比例了,這個比例自己測一測就能大概找出來了。

這樣,一個跟 php 沒有太大關係的輔助就成了,最後,鋪天蓋地求 star

相關文章