利用Python实现自动扫雷

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

一、准备工作

我的版本是 python 3.6.1

python的第三方库:

win32api

win32gui

win32con

Pillow

numpy

opencv

可通过 pip install --upgrade SomePackage 来进行安装

注意:有的版本是下载pywin32,但是有的要把pywin32升级到最高并自动下载了pypiwin32,具体情况每个python版本可能都略有不同

我给出我的第三方库和版本仅供参考

二、关键代码组成

1.找到游戏窗口与坐标

2.锁定并抓取雷区图像

3.各图像的RGBA值

很多小伙伴在学习Python的过程中往往因为没有资料或者没人指导从而导致自己不想学下去了,因此我特意准备了大量的PDF书籍、视频教程,都免费送给大家!不管你是零基础还是有基础都可以获取到自己相对应的学习礼包!包括Python软件工具和2019最新入门到实战教程,(http://nxw.so/3rsqX)复制到浏览器打开!

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

5.扫雷算法

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

1.首先点出一个点

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方...
    Java丶python攻城狮阅读 2,117评论 0 0
  • 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方...
    嗨学编程阅读 648评论 0 0
  • 昨晚我一人带两个孩子去体育场,给他打电话让他过来也看孩子,怕自己一个人照看不过来,毕竟天黑,这两个又淘气得跟。没想...
    J欢愈空间阅读 153评论 0 0
  • 惠若琪,今天出新一届女排集训大名单了,没有你呢~看到的一瞬间我又哭了,好像今年来的哭都是因为你,因为你我不知道我下...
    只有吃才开心阅读 141评论 2 0
  • 因一次需购买家纺,第一次踏进双子猫外贸家纺店起。我便喜欢上了双子,双子有自己的工厂、实体店、有客服、有售后,特别是...
    恒歌L阅读 132评论 0 0