加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

室友玩扫雷通关,在我面前装逼!用Python开发自动扫雷!五秒通关

发布时间:2020-12-17 00:57:00 所属栏目:Python 来源:网络整理
导读:起因是这样的,室友和我一起玩扫雷高难度,今天他来告诉我他的通关了! 各种炫耀,如下图: 加群:548377875 ? 即可获取数十套PDF哦! 于是,我用就用Python开发了个自动扫雷程序!跟他装了逼,瞬间喊我哥,要我教他 好了,不废话了!本文用于娱乐,欢迎大佬

起因是这样的,室友和我一起玩扫雷高难度,今天他来告诉我他的通关了!

各种炫耀,如下图:

加群:548377875 ? 即可获取数十套PDF哦!

于是,我用就用Python开发了个自动扫雷程序!跟他装了逼,瞬间喊我哥,要我教他

好了,不废话了!本文用于娱乐,欢迎大佬们指点!

进入正题

---------------------------------

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

一、准备工作

  • 扫雷游戏:我是win10,没有默认的扫雷,所以去扫雷网下载
  • python 3:我的版本是 python 3.6.1
  • python的第三方库:win32api,win32gui,win32con,Pillow,numpy,opencv

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

二、关键代码组成

1.找到游戏窗口与坐标

2. 锁定并抓取雷区图像

3. 各图像的RGBA值

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

5.扫雷算法

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

  1. 首先点出一个点
  2. 扫描所有数字,如果周围空白+插旗==数字,则空白均有雷,右键点击空白插旗
  3. 扫描所有数字,如果周围插旗==数字,则空白均没有雷,左键点击空白
  4. 循环2、3,如果没有符合条件的,则随机点击一个白块

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

怎么样?欢迎大佬指点!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读