扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

  • A+
所属分类:python自动化

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

自动扫雷一般分为两种

一种是读取内存数据

另一种是通过分析图片获得数据,

并通过模拟鼠标操作,

这里我用的是第二种方式。

准备工作:

  • 扫雷游戏
  • Python3.6
  • 第三方库:win32api,win32gui,win32con,Pillow,numpy,opencv

代码

1.找到游戏窗口与坐标

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

2.锁定并抓取雷区图像

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

3.各图像的RGBA值

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

4.扫描雷区图像保存至一个二维数组map

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

5.扫雷算法

这里我采用的最基础的算法

1.首先点出一个点

2.扫描所有数字,如果周围空白+插旗==数字,则空白均有雷,右键点击空白插旗

3.扫描所有数字,如果周围插旗==数字,则空白均没有雷,左键点击空白

4.循环2、3,如果没有符合条件的,则随机点击一个白块

扫雷?玩过吗?通关过嘛?没有?今天用Python来帮你,自动扫雷!

注意:

这个算法在初级和中级通过率都不错,

但是在高级成功率惨不忍睹,

主要是没有考虑逻辑组合以及白块是雷的概率问题,

可以对这两个点进行改进提高成功率

人生苦短,我用python。

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: