一串JS代碼Hack簡單考眼力小游戲

最近在群里閑聊的時候發現大家在玩一款考眼力的網頁小游戲,這個游戲簡單來說就是從方塊中找出不同的。在規定的時間通過的關卡越多越好。最后游戲會根據你通過的關卡數量來給你評分。但是人類的眼力是有極限的,而裝逼的欲望沒有。So, 我就開始研究如何愉快的用JS作弊了。

一串JS代碼Hack簡單考眼力小游戲的圖1一串JS代碼Hack簡單考眼力小游戲的圖2一串JS代碼Hack簡單考眼力小游戲的圖3

一串JS代碼Hack簡單考眼力小游戲的圖4

網頁分析

Hack這種事情是講究化勁的,知己知彼才能成功。第一步當然是先分析一下網頁了。打開Chrome自帶的開發者工具可以看到,這些方塊不過就是span標簽搭配RGB顏色。而我們知道游戲規則是所有的方塊里面只有一個是不同的,所以我們只需要找到那個不同的,然后模擬點擊那個元素就可以了。

一串JS代碼Hack簡單考眼力小游戲的圖5

代碼實現

說干就干。由于游戲限制實現是60秒,所以我們為了調試方便,可以用一段JS先把網頁內所有的計時器停掉。

一串JS代碼Hack簡單考眼力小游戲的圖6

借著根據我們之前發現的原理,構造原型代碼驗證思路。

A few moments later……

一串JS代碼Hack簡單考眼力小游戲的圖7

這段代碼的意圖很明顯,為每一種顏色建立一個字典,記錄出現了多少次,然后我們遍歷字典,只出現了一次的顏色自然就是我們要找的方塊了。接著我們拿著得到的顏色代碼,再去文檔中對著所有的方塊比對,最后找到元素并點擊。為這個函數設置一個計時器定時啟動,便大功告成了,把代碼輸入開發者工具,試試效果。

一串JS代碼Hack簡單考眼力小游戲的圖8

Impressive! 效果非常不錯,我當時看到的最厲害的人,也不過只能打到lv40而已。但是我們的代碼還是有一些冗余,還有優化提高的空間。

在交流中,其他人在我的代碼的基礎上,給出了性能更強更精簡的改進版。

一串JS代碼Hack簡單考眼力小游戲的圖9

這段代碼妙就妙在用了requestAnimationFrame代替了計時器,真正達到了機器能跑多快跑多快,完全釋放了機器的全部性能,能限制速度的也只有瀏覽器渲染的速度了。

一串JS代碼Hack簡單考眼力小游戲的圖10

效果可以說是相當的不錯了,只不過到了這個階段,人類早已經退出較量了。

總結

總體來說,這個游戲挺好玩的,各種意義上。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1