通過python玩微信“跳一跳”

2017年12月28日下午俩功,微信發(fā)布了 6.6.1 版本,同時加入“小游戲”的功能碰声,并且推出一款“跳一跳”的小游戲诡蜓,一時間風(fēng)靡朋友圈。

這篇文章不會告訴你如何去贏得高分胰挑,只是通過技術(shù)的角度來說明一下如何代碼來讓游戲自動運行蔓罚。

我是偶然的機(jī)會在公眾號里面看到關(guān)于這個游戲腳本的文章的,通過python實現(xiàn)瞻颂,膜拜大神豺谈!我感覺很有趣,所以研究了一下代碼贡这,收獲頗豐茬末。我是搞Android開發(fā)的,這里就主要說一下Android版本的微信跳一跳游戲腳本實現(xiàn)并運行的過程吧盖矫。

本文用到工具:Mac或者windows電腦团南,python2/3,adb工具炼彪,Android手機(jī)(我的手機(jī)是MI NOTE LTE),數(shù)據(jù)線

關(guān)于游戲腳本正歼,作者已經(jīng)在github公布辐马,地址:wechat_jump_game

首先,我們來講一下原理

腳本原理

  1. 用 ADB 工具獲取當(dāng)前手機(jī)頁面截圖局义,并用adb將截圖上傳

    打開微信跳一跳游戲頁面喜爷,通過命令獲取截圖并上傳:

     adb shell screencap -p /sdcard/autojump.png
     adb pull /sdcard/autojump.png
    
  2. 識別棋子,目標(biāo)點和背景的位置萄唇,計算目標(biāo)的距離檩帐,并且計算按下的時間

    識別棋子:靠棋子的顏色來識別位置,通過截圖發(fā)現(xiàn)最下面一行大概是一條直線另萤,就從上往下一行一行遍歷湃密,比較顏色(顏色用了一個區(qū)間來比較)找到最下面的那一行的所有點诅挑,然后求個中點,求好之后再讓 Y 軸坐標(biāo)減小棋子底盤的一半高度從而得到中心點的坐標(biāo)

    識別棋盤:靠底色和方塊的色差來做泛源,從分?jǐn)?shù)之下的位置開始拔妥,一行一行掃描,由于圓形的塊最頂上是一條線达箍,方形的上面大概是一個點没龙,所以就用類似識別棋子的做法多識別了幾個點求中點,這時候得到了塊中點的 X 軸坐標(biāo)缎玫,這時候假設(shè)現(xiàn)在棋子在當(dāng)前塊的中心硬纤,根據(jù)一個通過截圖獲取的固定的角度來推出中點的 Y 坐標(biāo)


    wechat_jump1.png
  1. 用adb工具模擬屏幕點擊事件

    'adb shell input swipe {x1} {y1} {x2} {y2} {duration}'
    

如何使用

  1. 安裝python,安裝adb工具赃磨,做android開發(fā)的Android SDK中都帶有adb筝家,只需要配好環(huán)境變量即可。

  2. Android手機(jī)打開USB調(diào)試煞躬,設(shè)置>開發(fā)者選項>USB 調(diào)試肛鹏,同時有些手機(jī)需要同時打開“允許模擬點擊”,通過adb devices可以查看當(dāng)前設(shè)備恩沛,判斷是否連接成功

  3. 安裝pillow在扰,執(zhí)行如下命令即可:

    sudo pip install Pillow
    
  1. 界面轉(zhuǎn)至微信跳一跳游戲,點擊開始游戲
  2. 運行python wechat_jump_auto.py雷客,如果手機(jī)界面顯示 USB 授權(quán)芒珠,請點擊確認(rèn)
  3. 請按照你的手機(jī)分辨率從./config/文件夾找到相應(yīng)的配置,拷貝到 *.py 同級目錄./config.json(如果屏幕分辨率能成功探測搅裙,會直接調(diào)用 config 目錄的配置皱卓,不需要復(fù)制)

最后說一下

這只是游戲,何必認(rèn)真呢部逮!通過技術(shù)看到本質(zhì)才是軟件工程師應(yīng)該做的娜汁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兄朋,隨后出現(xiàn)的幾起案子掐禁,更是在濱河造成了極大的恐慌,老刑警劉巖颅和,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傅事,死亡現(xiàn)場離奇詭異,居然都是意外死亡峡扩,警方通過查閱死者的電腦和手機(jī)蹭越,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來教届,“玉大人响鹃,你說我怎么就攤上這事驾霜。” “怎么了茴迁?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵寄悯,是天一觀的道長。 經(jīng)常有香客問我堕义,道長猜旬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任倦卖,我火速辦了婚禮洒擦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怕膛。我一直安慰自己熟嫩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布褐捻。 她就那樣靜靜地躺著掸茅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柠逞。 梳的紋絲不亂的頭發(fā)上昧狮,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機(jī)與錄音板壮,去河邊找鬼逗鸣。 笑死,一個胖子當(dāng)著我的面吹牛绰精,可吹牛的內(nèi)容都是我干的撒璧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼笨使,長吁一口氣:“原來是場噩夢啊……” “哼卿樱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硫椰,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤繁调,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后最爬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡门岔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年爱致,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寒随。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡糠悯,死狀恐怖帮坚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情互艾,我是刑警寧澤试和,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站纫普,受9級特大地震影響阅悍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昨稼,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一节视、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧假栓,春花似錦寻行、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牙丽,卻和暖如春简卧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剩岳。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工贞滨, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拍棕。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓晓铆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绰播。 傳聞我的和親對象是個殘疾皇子骄噪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容