哈喽大家好!我是IT界搬运喵!
今天上班,旁边同事摸鱼扫雷通关来炫耀!我用Python做出自动扫雷十秒通关!
自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。
一、准备工作
1、扫雷游戏
我是win10,没有默认的扫雷,所以去扫雷网下载
http://www.saolei.net/BBS/
2、Python版本选择
我用的是python3.6.1
3、Python的第三方库
win32api,win32gui,win32con,Pillow,numpy,opencv
可通过 pip install —upgrade SomePackage 来进行安装
注意:有的版本是下载pywin32,但是有的要把pywin32升级到最高并自动下载了pypiwin32,具体情况每个python版本可能都略有不同
我给出我的第三方库和版本仅供参考
二、关键代码组成
1、找到游戏窗口与坐标
#扫雷游戏窗口
class_name = TMain
title_name = Minesweeper Arbiter
hwnd = win32gui.FindWindow(class_name, title_name)
#窗口坐标
left = 0
top = 0
right = 0
bottom = 0
if hwnd:
print(找到窗口)
left, top, right, bottom = win32gui.GetWindowRect(hwnd)
#win32gui.SetForegroundWindow(hwnd)
print(窗口坐标:)
print(str(left)+' '+str(right)+' '+str(top)+' '+str(bottom))
else:
print(未找到窗口)
2、锁定并抓取雷区图像
#锁定雷区坐标
#去除周围功能按钮以及多余的界面
#具体的像素值是通过QQ的截图来判断的
left += 15
top += 101
right -= 15
bottom -= 42
#抓取雷区图像
rect = (left, top, right, bottom)
img = ImageGrab.grab().crop(rect)