最近一周以來(lái)湾蔓,微信小程序游戲“跳一跳”可謂是刷爆朋友圈瘫析。不過(guò)你會(huì)發(fā)現(xiàn)排行榜上的好友玩出了動(dòng)輒上千上萬(wàn)的分?jǐn)?shù),這背后的秘訣是什么呢默责?
哈哈贬循,當(dāng)然就是“開(kāi)掛”啦!
不過(guò)傻丝,我寫(xiě)這篇文章可不是為了教大家怎樣去開(kāi)掛甘有,而是讓大家體會(huì)到計(jì)算機(jī)技術(shù)的巧妙應(yīng)用。至于游戲嘛葡缰,還是要憑真本事去玩亏掀,那才有意思。
首先泛释,開(kāi)掛的方法有多種滤愕,最簡(jiǎn)單粗暴的方式就是抓包并篡改游戲向服務(wù)器提交的數(shù)據(jù)。用這種方法可以輕松拿到任意分?jǐn)?shù)怜校,不過(guò)現(xiàn)在已經(jīng)失效了间影。而我在這里提到的是一種相對(duì)無(wú)害的方法,并不修改游戲本身的數(shù)據(jù)茄茁,只是借助程序幫助我們計(jì)算游戲中的目標(biāo)距離并完成自動(dòng)化操作魂贬。
簡(jiǎn)單理解巩割,就是讓計(jì)算機(jī)代替人來(lái)玩這個(gè)游戲。
以下的操作方法針對(duì) Android 手機(jī)付燥,電腦上使用 Windows 系統(tǒng)宣谈。 iOS 上的方案也是有的,不過(guò)我沒(méi)有親自測(cè)試過(guò)键科,就不在這里提及闻丑。
準(zhǔn)備 Python
Python 是當(dāng)今最熱門(mén)的編程語(yǔ)言之一,擁有大量豐富而強(qiáng)大的庫(kù)勋颖。本次我們需要用到 Python 編寫(xiě)的腳本程序嗦嗡,所以如果你電腦上還沒(méi)有安裝 Python 3.x 和其包管理工具 pip3 的話,可以在 Python 官網(wǎng)上獲取并安裝饭玲。安裝完畢以后侥祭,還要添加到 Windows 的環(huán)境變量中。
本次我們需要用到 Pillow 庫(kù)茄厘。這是 Python 里的圖像處理庫(kù)卑硫,提供了了廣泛的文件格式支持和強(qiáng)大的圖像處理能力。安裝的方法很簡(jiǎn)單蚕断,在 CMD 中輸入以下命令:
pip3 install pillow
按下回車洲尊,如果出現(xiàn)確認(rèn)信息的話曲聂,輸入 “y” 再按回車即可虎忌。
準(zhǔn)備 ADB Shell
ADB 工具可以讓我們?cè)陔娔X上用命令行輕松調(diào)試 Android 手機(jī)共螺。打開(kāi)以上網(wǎng)址的頁(yè)面并選擇 ADB Kits 進(jìn)行下載。
安裝完畢以后葛假,我們用數(shù)據(jù)線將手機(jī)連上電腦障陶。這時(shí)候我們需要在手機(jī)上確認(rèn)允許開(kāi)啟“USB 調(diào)試”的功能。
另外聊训,有些手機(jī)廠商為了安全起見(jiàn)抱究,在系統(tǒng)設(shè)置中關(guān)閉了 ADB 模擬點(diǎn)擊的權(quán)限。我們需要手動(dòng)開(kāi)啟带斑,以 MIUI 為例鼓寺,我們需要在開(kāi)發(fā)者選項(xiàng)中打開(kāi)這項(xiàng)開(kāi)關(guān):
獲取“外掛”腳本
https://github.com/wangshub/wechat_jump_game
我們可以在 Github 上下載自動(dòng)操控“跳一跳”的項(xiàng)目代碼。感謝 wangshub 為我們準(zhǔn)備了現(xiàn)成的代碼勋磕,你只需要在這個(gè)頁(yè)面下載即可妈候。
對(duì)下載后的 ZIP 壓縮包進(jìn)行解壓,得到一個(gè)文件夾挂滓。把剛才下載的 ADB 工具那三個(gè)文件移動(dòng)到這個(gè)文件夾中苦银,待會(huì)兒我們的腳本程序才能通過(guò) ADB 工具控制手機(jī)。
一切就緒
將手機(jī)連上電腦,在手機(jī)微信上打開(kāi)“跳一跳”游戲的界面幔虏。
在我們下載的腳本文件夾中找到 wechat_jump_auto.py纺念,在其右鍵菜單中選擇 IDLE 打開(kāi)。為什么不直接在 CMD 或者 Powershell 里運(yùn)行呢想括?因?yàn)槲野l(fā)現(xiàn)腳本中的中文字符使得在控制臺(tái)下運(yùn)行的時(shí)候會(huì)導(dǎo)致錯(cuò)誤(可能是因?yàn)槲沂褂糜⑽陌嫦到y(tǒng)的緣故)柠辞。
直接按 F5,運(yùn)行腳本主胧。
之后程序就會(huì)一直運(yùn)行下去,你會(huì)看到手機(jī)上的棋子開(kāi)始自己跳動(dòng)习勤。在這過(guò)程中踪栋,電腦上會(huì)不斷彈出空白的控制臺(tái)窗口并很快消失。
雖然程序操控也會(huì)有失手的時(shí)候图毕,但是玩出高分成績(jī)肯定是不成問(wèn)題的夷都。
結(jié)語(yǔ)
本期的講解到底這里就結(jié)束啦。經(jīng)過(guò)這次“開(kāi)掛”體驗(yàn)予颤,我們也對(duì) Python囤官、ADB 等工具的應(yīng)用有了更多的體會(huì)。最終刷出來(lái)的成績(jī)是否能留在排行榜上并不重要蛤虐,重要的是我們學(xué)到了東西党饮,并且感受到了十足的樂(lè)趣。
另外說(shuō)句題外話驳庭,我不得不吐槽一下這游戲的難度刑顺。要想手動(dòng)跳過(guò)這一步,真不知要花掉多少運(yùn)氣 ><
祝大家玩得開(kāi)心饲常!我還會(huì)和大家分享更多有趣的技術(shù)和互聯(lián)網(wǎng)資訊蹲堂。