# switch_puzzle_solver **Repository Path**: VerSion20/switch_puzzle_solver ## Basic Information - **Project Name**: switch_puzzle_solver - **Description**: 一个现代化的三相开关谜题求解器,支持任意大小的网格,智能求解算法。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 三相开关谜题求解器 🧩 [![Python](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey.svg)](https://www.microsoft.com/windows) 在各类游戏中,经常会遇到解密矩阵,简单的可以通过观察法得到答案,复杂的就需要通过高斯消元法来计算得出结果,但是作为游戏来说,这样有点太累了些吧😂,于是这个程序就这么诞生了。 这是一个现代化的三相开关谜题求解器,采用扁平化设计风格,提供直观的图形用户界面。支持任意大小的网格,智能求解算法,以及详细的操作步骤展示。 ## ✨ 功能特点 ### 🎨 现代化界面 - **扁平化设计**:采用现代UI设计语言,界面简洁美观 - **微软雅黑字体**:统一的中文字体,显示效果优秀 - **Bootstrap配色**:专业的颜色搭配,视觉层次清晰 - **响应式布局**:自适应窗口大小,支持不同屏幕分辨率 ### 🧩 智能求解 - **任意网格大小**:支持1x1到10x10的任意网格 - **多种开关状态**:支持可手动和不可手动操作的开关 - **高斯消元算法**:基于模3运算的高效求解算法 - **详细步骤展示**:完整的求解过程和状态变化 ### 🎯 用户友好 - **直观状态选择**:3-3-1布局的彩色按钮网格 - **可视化编辑**:点击网格按钮设置开关状态 - **实时求解**:一键求解,立即获得解决方案 - **错误处理**:智能检测无解情况并提示 ## 🎮 游戏规则 三相开关谜题是一个经典的逻辑谜题: - **开关状态**:每个开关有3种状态(关闭→等待→开启→关闭...) - **操作规则**:点击一个开关会改变自身及十字相邻开关的状态 - **目标**:将所有开关变为开启状态 - **特殊开关**:不可手动操作的开关只能通过相邻开关联动改变 ## 📦 安装与运行 ### 方法一:直接运行(推荐) 如果你有Python环境: ```bash # 克隆项目 git clone https://github.com/yourusername/switch-puzzle-solver.git cd switch-puzzle-solver # 安装依赖 pip install numpy # 运行GUI版本 python switch_puzzle_gui.py # 或者运行启动脚本 python run_gui.py ``` ### 方法二:使用可执行文件 如果没有Python环境,可以直接下载并运行exe文件: 1. 下载 `三相开关谜题求解器.exe` 2. 双击运行即可(无需安装任何依赖) ## 🚀 使用方法 ### 1. 设置网格大小 - 在"网格配置"区域设置行数和列数 - 点击"应用新尺寸"按钮 ### 2. 设置初始状态 - 在"开关状态"区域选择要设置的状态: - **可手动操作**:关闭(1)、等待(2)、开启(3) - **不可手动操作**:关闭-不可动(-1)、等待-不可动(-2)、开启-不可动(-3) - **无开关(0)**:空白位置 - 点击网格中的按钮设置对应位置的状态 ### 3. 求解谜题 - 点击"开始求解"按钮 - 在右侧结果区域查看详细步骤 - 程序会显示每一步的操作和状态变化 ### 4. 其他操作 - **清空网格**:一键清空所有设置 - **随机生成**:智能随机生成谜题 ## 🔧 开发环境 ### 系统要求 - **操作系统**:Windows 10/11(推荐) - **Python版本**:3.6+ - **依赖库**: - `tkinter`(通常随Python安装) - `numpy` ### 安装依赖 ```bash pip install numpy ``` ## 📦 打包为可执行文件 如果你想将程序打包成exe文件分发给朋友: ### 1. 安装PyInstaller ```bash pip install pyinstaller ``` ### 2. 创建打包脚本 ```python # build_exe.py import subprocess cmd = [ "pyinstaller", "--onefile", "--windowed", "--name=三相开关谜题求解器", "--icon=puzzle-grid.ico", "--add-data=README.md;.", "--add-data=GUI_README.md;.", "--hidden-import=numpy", "--hidden-import=tkinter", "--clean", "switch_puzzle_gui.py" ] subprocess.run(cmd) ``` ### 3. 执行打包 ```bash python build_exe.py ``` 打包完成后,exe文件将生成在 `dist/` 目录中。 ## 📁 项目结构 ``` switch-puzzle-solver/ ├── 📄 三相开关谜题求解器.exe # 可执行文件(打包后) ├── 🎨 puzzle-grid.ico # 程序图标 ├── 🖥️ switch_puzzle_gui.py # 主GUI程序 ├── 🧠 switch_puzzle_solver.py # 求解器核心算法 ├── 🎮 interactive_solver.py # 交互式求解器 ├── 🚀 run_gui.py # GUI启动脚本 ├── 📖 README.md # 项目说明文档 └── 📋 GUI_README.md # GUI使用说明 ``` ## 🧠 算法原理 ### 高斯消元法 程序使用基于模3运算的高斯消元法求解: 1. **建模**:将开关状态变化建模为线性方程组 2. **消元**:使用高斯消元法求解方程组 3. **验证**:验证解的正确性并输出操作步骤 ### 状态转换 - **可手动开关**:正数状态(1=关闭,2=等待,3=开启) - **不可手动开关**:负数状态(-1=关闭,-2=等待,-3=开启) - **无开关**:0状态 ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📝 更新日志 ### v2.0.0 (2024-01-XX) - ✨ 全新的现代化GUI界面 - 🎨 扁平化设计风格 - 🎯 3-3-1状态选择布局 - 🖼️ 自定义程序图标 - 📦 支持打包为exe文件 ### v1.0.0 (2024-01-XX) - 🧩 基础求解算法 - 🖥️ 命令行界面 - 📊 支持任意网格大小 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - 感谢所有测试和反馈的用户 - 感谢开源社区提供的工具和库 - 特别感谢PyInstaller项目 ## 📞 联系方式 - **项目主页**:[GitHub Repository](https://github.com/yourusername/switch-puzzle-solver) - **问题反馈**:[Issues](https://github.com/yourusername/switch-puzzle-solver/issues) - **功能建议**:[Discussions](https://github.com/yourusername/switch-puzzle-solver/discussions) --- ⭐ 如果这个项目对你有帮助,请给它一个星标!