厉害了,用Python实现自动扫雷

自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。

一、准备工作

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,如果没有符合条件的,则随机点击一个白块

这个算法在初级和中级通过率都不错,但是在高级成功率惨不忍睹,主要是没有考虑逻辑组合以及白块是雷的概率问题,可以对这两个点进行改进,提高成功率

源代码:https://github.com/chestnut-egg/GoMine

原文地址:https://www.cnblogs.com/chestnut-egg/p/9302238.html

学习Python就关注:datanami

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181218B0LXHG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券