Skip to content

wangyuanchuan2022/minesweeper_help

Repository files navigation

智能扫雷助手

一个基于 Python 的智能扫雷助手,帮助玩家学习扫雷策略并提供最优解决方案。

项目特点

  • 🎯 高级难度胜率达 46%
  • 🤖 支持自动模式
  • 🎓 内置教学功能
  • 🔍 智能提示系统
  • 📊 概率分析辅助决策

环境要求

  • Python 3.7
  • Windows 系统

快速开始

  1. 克隆项目并解压 MineSweeper.zip

  2. 安装依赖

核心算法

求解策略

  1. 基础逻辑判断

    • 数字周围未开格子数量等于数字值时,所有未开格子都是雷
    • 数字周围雷数等于数字值时,其他未开格子可以安全点开
  2. 高级推理

    • 分组枚举:按照共享数字格子将区域分组
    • 概率统计:计算每个未开格子是雷的概率
    • 最优选择:选择最安全且能开启最多格子的位置
  3. 优化方法

    • 缓存相同场景的计算结果
    • 仅计算相关数字格子(距离<1.414的格子)
    • 分部分枚举降低计算复杂度

关键类和函数

  • Solver: 核心求解器类
    • complete_scan(): 扫描并识别棋盘状态
    • mine_clear1(): 基础逻辑判断
    • mine_clear3_1(): 高级逻辑推理
    • number5_1(): 概率分析与决策
    • part_solve(): 分部分枚举求解

使用模式

自动模式

程序会自动完成整个扫雷过程:

  1. 扫描棋盘
  2. 分析局势
  3. 执行最优决策
  4. 重复直到胜利或失败

帮助模式

为玩家提供下一步最优选择:

  1. 点击"帮助"按钮
  2. 程序分析当前局势
  3. 显示推荐位置及概率
  4. 点击推荐位置查看详细推理过程

性能优化

  • 使用numpy进行矩阵运算
  • 图像识别优化
  • 缓存机制
  • 分组计算降低复杂度

项目结构

. ├── utils/ │ ├── util.py # 核心算法 │ └── mm0.py # Windows API封装 ├── image/ # 图像识别资源 ├── requirements.txt # 项目依赖 └── README.md

待优化

  1. 算法复杂度优化

    • 改进枚举策略
    • 优化概率计算
    • 引入机器学习方法
  2. 功能扩展

    • 支持更多扫雷变体
    • 添加详细的学习教程
    • 统计分析功能

技术栈

  • Python 3.7
  • PyQt5 (GUI)
  • OpenCV (图像识别)
  • Numpy (矩阵运算)
  • Win32API (窗口操作)

参考资料

License

MIT License

About

Helps you play minesweeper. More than 46% win rate of advanced mine clearance

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages