# 数独求解器 **Repository Path**: fullzoon/sudoku-solver ## Basic Information - **Project Name**: 数独求解器 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2025-12-01 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数独求解器 一款基于 Python 的数独解题工具,具有图形界面,支持手动输入和屏幕截图 OCR 识别功能。 ## ✨ 功能特性 - **智能求解**:采用优化的回溯算法,结合位运算、MRV启发式和约束传播技术,快速求解各种难度的数独 - **图形界面**:清晰的 9×9 数独格子,3×3 宫格边界加粗显示 - **颜色区分**:用户输入的数字显示为黑色,程序解出的数字显示为蓝色 - **截图识别**:支持框选屏幕上的数独图片,自动 OCR 识别并填入(需安装可选依赖) - **历史记录**:自动保存解题记录,可随时查看和恢复历史结果 - **多屏支持**:截图功能支持多显示器环境 - **一键回填**:根据截图选中的位置自动回填到数独游戏窗口(需安装可选依赖) ## 📦 安装 ### 可选依赖 如需使用截图 OCR 识别功能,请安装以下依赖: ```bash pip install Pillow ddddocr ``` 如需使用一键回填功能,请安装以下依赖: ```bash pip install pyautogui ``` ## 🚀 使用方法 ### 运行程序 ```bash python main.py ``` ### 使用步骤 1. **手动输入**:点击单元格,输入数字 1-9 2. **截图识别**:点击"截取屏幕"按钮,框选屏幕上的数独图片 3. **开始解题**:点击"开始解题"按钮,程序自动求解 4. **清空重置**:点击"清空"按钮清除所有输入 5. **历史记录**:左侧面板显示历史记录,点击可恢复 6. **一键回填**:点击"一键回填"按钮,自动将解题结果填入数独游戏窗口 ## 📁 项目结构 ``` SD/ ├── main.py # 程序入口 ├── sudoku_solver.py # 数独求解算法模块 ├── sudoku_gui.py # GUI 界面模块 ├── sudoku_history.json # 历史记录存储文件 └── README.md # 项目说明文档 ``` ## 🔧 核心算法 数独求解器采用多种优化策略: 1. **位运算优化**:使用位集合记录行/列/宫格已使用的数字,实现 O(1) 时间复杂度的约束检查 2. **MRV 启发式**:优先选择候选数字最少的空格进行填充,减少回溯次数 3. **约束传播**:自动填充只有唯一候选的格子,减少搜索空间 ## 📋 系统要求 - Python 3.10+ - tkinter(Python 内置) - 可选:Pillow, ddddocr(用于截图识别), pyautogui(用于一键回填) ## 👤 作者 fullzoon ## 📄 许可证 MIT License