用代碼向 90 後逝去的青春致敬!
都說「陪伴是最長情的告白」,那些陪我們走過年少時光的小遊戲,你還記得多少?
可能很多90後都玩過樂斗Ⅱ。但是很遺憾,今天的主角不是它,而是它的兄弟——「Q寵大樂斗」。本文分享如何讓「Q寵大樂斗」自動運行,自動打遊戲。
具體步驟
第一步:分析鏈接。因為直接使用網頁動畫版(也就是上圖)網址的話,會有Flash動畫,還有可能會因為網路問題而導致延遲,從而影響程序的運行。所以本文選擇直接關注其公眾號「Q寵大樂斗」,從開始遊戲的介面進去,這樣就可以進入文字版的遊戲,減少不必要的網速佔用。
第二步:通過審查元素找到相應的元素,使用selenium進行定位控制。
第三步:設置定時任務。讓遊戲腳本每天定時運行、遊戲自動化,實現躺贏的最終理想,哈哈。
注意事項
因為等級原因,有一些功能可能對低等級不開放,所以這個遊戲需要「私人訂製」。
有一些獎勵是需要等到了一定的活躍度才可以領取,所以需要一定的遊戲策略,否則就需要在程序中進行多次判斷。
代碼書寫
因為這個遊戲的任務比較多,所以建議用分模塊來寫比較好。這樣邏輯不會混亂,代碼的可讀性也會更強一點。
登錄模塊
通過上圖可以找出登錄的元素位置,直接使用selenium進行登錄操作。
上面代碼中的第14行是設置等待。直白一點就是:如果WebDriver沒有在 DOM中找到元素,將繼續等待,超出設定時間後則拋出找不到元素的異常。
自動登錄哦
其他模塊
之前說過,等級不同任務也不同,所以我這裡就放上幾個共同的模塊。具體的任務看下圖:
每日獎勵模塊
樂斗好友模塊
其他的模塊我這裡就不放代碼了,畢竟等級不一樣,代碼可能沒有通用性。而且主要的方法就是定位元素,主要是設置等待時長和注意異常情況的判斷處理就可以了。
計劃任務
具體的計劃任務教程,可以參考《Python與win的完美結合--計劃任務》一文。設置好時間,因為這個遊戲的寵物是靠體力來進行的並且每天只能進行一次任務,所以每天定時打一次就可以了。
最後
本文這個自動打遊戲的demo,只是單純地練習一下selenium操作。順便回憶一下90後的生活,相信有一部分90後小時候還是玩過這個遊戲的。
可能有人就覺得這遊戲有點low(確實有點low),那我只能昧著良心回一句:哥玩的不是遊戲,是情懷,懂不懂?
最後附上本文的源碼鏈接,歡迎自取:
https://github.com/stormdony/python_demo/tree/master/QQ_Pet_Fight
作者:Don Lex。本文經授權轉自Python綠洲,版權歸對方所有。
※摩拜大範圍癱瘓;安卓或將不再免費;中興又拿大訂單
※我為什麼要立刻放棄 React 而使用 Vue?
TAG:CSDN |