自動掃雷 python
Linux編程
點擊右側關注,免費入門到精通!
作者丨chestnut_egg
https://www.cnblogs.com/chestnut-egg/p/9302238.html
自動掃雷一般分為兩種,一種是讀取內存數據,而另一種是通過分析圖片獲得數據,並通過模擬滑鼠操作,這裡我用的是第二種方式。
代碼已上傳至GitHub
https://github.com/chestnut-egg/GoMine
一、準備工作
1.掃雷遊戲
我是win10,沒有默認的掃雷,所以去掃雷網下載
http://www.saolei.net/BBS/
2.python 3
我的版本是 python 3.6.1
3.python的第三方庫
win32api,win32gui,win32con,Pillow,numpy,opencv 可通過 pip install --upgrade SomePackage 來進行安裝 注意:有的版本是下載pywin32,但是有的要把pywin32升級到最高並自動下載了pypiwin32,具體情況每個python版本可能都略有不同
我給出我的第三方庫和版本僅供參考
二、關鍵代碼組成
1.找到遊戲窗口與坐標
2.鎖定並抓取雷區圖像
3.各圖像的RGBA值
4.掃描雷區圖像保存至一個二維數組map
5.掃雷演算法
這裡我採用的最基礎的演算法
1.首先點出一個點
2.掃描所有數字,如果周圍空白+插旗==數字,則空白均有雷,右鍵點擊空白插旗
3.掃描所有數字,如果周圍插旗==數字,則空白均沒有雷,左鍵點擊空白
4.循環2、3,如果沒有符合條件的,則隨機點擊一個白塊
這個演算法在初級和中級通過率都不錯,但是在高級成功率慘不忍睹,主要是沒有考慮邏輯組合以及白塊是雷的概率問題,可以對這兩個點進行改進,提高成功率
推薦↓↓↓
長
按
關
注
??
【
16個技術公眾號
】都在這裡!
涵蓋:程序員大咖、源碼共讀、程序員共讀、數據結構與演算法、黑客技術和網路安全、大數據科技、編程前端、Java、Python、Web編程開發、Android、iOS開發、Linux、資料庫研發、幽默程序員等。
萬水千山總是情,點個 「
好看
」 行不行TAG:Python開發 |