美文网首页python热爱者Python新世界
室友玩个扫雷通关炫耀?我用Python做个十秒通关的程序回应他!

室友玩个扫雷通关炫耀?我用Python做个十秒通关的程序回应他!

作者: 48e0a32026ae | 来源:发表于2018-12-16 11:24 被阅读0次

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

    各种炫耀,如下图!

    学习Python中有不明白推荐加入交流群

                    号:960410445

                    群里有志同道合的小伙伴,互帮互助,

                    群里有不错的视频学习教程和PDF!

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

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

    进入正题

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

    一、准备工作

    扫雷游戏:我是win10,没有默认的扫雷,所以去扫雷网下载

    python 3:我的版本是 python 3.6.1

    python的第三方库:win32api,win32gui,win32con,Pillow,numpy,opencv

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

    二、关键代码组成

    1.找到游戏窗口与坐标

    2. 锁定并抓取雷区图像

    3. 各图像的RGBA值

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

    5.扫雷算法

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

    首先点出一个点

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

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

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

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

    怎么样?欢迎大佬指点!

    相关文章

      网友评论

        本文标题:室友玩个扫雷通关炫耀?我用Python做个十秒通关的程序回应他!

        本文链接:https://www.haomeiwen.com/subject/bjitkqtx.html