自动扫雷代码c语言,自动扫雷程序代码分析

## get_window.py

def get_ranking_level(hwnd):  # 根据窗口尺寸判断难度等级高级,中级,低级

def get_window_height_and_length(hwnd):  # 根据难度等级返回长宽格子数目 (16,30) (16,16) (9,9)

def get_max_mines(hwnd):  # 根据难度等级得到地雷数目 99 40 10

def get_rim(hwnd):  # 获得扫雷区域的上下左右位置

## constant.py  # 存储程序使用的常量

## keyboard_mouse.py  # 用于进行鼠标键盘截图等与计算机进行的底层操作

def left_click(hwnd, left_distance, top_distance):  # 单击左键一次

def right_click(hwnd, left_distance, top_distance):  # 单击右键一次

def double_click(hwnd, left_distance, top_distance):  # 左右键同时按下

def remake_f2():  # 按F2重新开始游戏

def get_left_top(hwnd):  # 得到扫雷区域的左和上

def get_image(hwnd):  # 得到扫雷区域的截图

## match.py

def get_corresponding_content(img, i, j):  # 输入扫雷区域截图,和要检测的块坐标,返回该块的状态

## basic_operation.py

def refresh(hwnd, board):  # 更新board中记录的整个扫雷区域的内容

def make_flag(left_distance, top_distance, board, hwnd, game_info):  # 标红旗

def goon(left_distance, top_distance, board, hwnd):  # 点开一个方块,然后获取更新后的扫雷区域

def remake():  # 按F2重新开始游戏

def open_surround(hwnd, j, i, board):  # 通过双击坐标(i,j)打开其周围的方块,然后获取更新后的扫雷区域

## get_surround.py

def get_surround(board, left_distance, top_distance):  # 获取周边方块状态和当前方格的值

def get_surround_detail(nums):  # 统计周围的方格有多少没有标记、标旗、数字、NULL

## choose_next_click.py  # 寻找下一个点击的位置

def choose_next_click(board, hwnd, game_info):

# 遍历整个board

# 当前方块为数字时

# 如果它周围都已经清楚了就跳过

# 如果数字和周围旗数相等则直接打开其他未动的块

# 如果数字等于它周围的旗数加上未动的块,则将这些未动的块都插上旗

# 如果遍历完整个区域上面的操作都没有执行则启动高级检测

def advanced(board, hwnd, game_info):

# 遍历整个board

# 当前方块为数字时

# 遍历其周围为数字方块,考虑两者的共同覆盖区域进行判断

# 如果遍历完整个区域上面的操作则随机点开一个

def random_click(board, hwnd, game_info):  # 从所有周围没动方块最多的方块中随机点开一个

## game_end.py

def is_end(game_info, board):  # 判断是否游戏结束,出现雷则游戏失败,所有雷都标旗且无未动格就胜利,否则判定游戏还未结束

## begin.py

def begin(hwnd, game_info):

# 初始化game_info游戏信息

# 初始化board矩阵用于保存扫雷每个点的信息,初始化为 NONE_DETECTED

# 按F2重新开始游戏

# 如果游戏没有结束就不断寻找下一个点击点

## main.py

if __name__ == '__main__':

begin(hwnd, game_info)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值