本项目是一个针对"抖音无尽迷途"游戏开发的高级路径规划求解器,目前版本为 v8.0 (Refactored)。 项目集成了直观的图形化编辑器与高性能的 DFS 求解算法,旨在帮助用户快速设计迷宫并找到穿越所有节点的完美哈密顿路径。
https://m.zjbyte.net/share/douyin/?token=fbe46a8191b251ee0194d793f0f40e33&share_channel=copy
- 所见即所得:基于 Tkinter 开发的流畅界面,支持鼠标快速绘制路径与墙壁。
- 右键菜单:集成了传送门、旋转器、乘客等所有特殊元素的快捷放置。
- 快捷操作:支持键盘快捷键,大幅提升编辑效率。
- DFS + 约束传播:采用深度优先搜索,结合强制移动链(Forced Chain)模拟,提前预判死胡同。
- 智能剪枝:
- 连通性检查:实时检测是否存在无法到达的孤岛。
- Warnsdorff 启发式:优先探索出口较少的节点,显著减少回溯次数。
- 复杂机制支持:完美处理旋转器变身、乘客接送顺序、多次访问节点等复杂逻辑。
- 智能保存:成功求解后自动保存当前迷宫配置与解法。
- 随时回溯:支持查看历史存档,一键加载之前的迷宫设计。
| 元素 | 图标/说明 | 功能描述 |
|---|---|---|
| 基础 | ⬛/⬜ | 墙壁与普通路径 |
| 起终点 | START / END |
迷宫的入口与出口 |
| 十字路口 | CROSS |
允许且必须经过两次的交叉点 |
| 单行道 | ↑ ↓ ← → |
强制移动方向,不可逆行 |
| 双向墙 | ─ │ |
类似单行道,只允许横向或纵向穿过 |
| 弯道 | Corner |
强制改变前进方向(如向上后必须向右) |
| 传送门 | Portal |
成对出现 (In/Out),进入一个必从另一个出 |
| 旋转器 | Rotator |
经过后会改变地图上特定元素的形态(如墙壁翻转) |
| 乘客 | Hitchhiker |
需先经过 Group N 上车,再到达 Group N 下车 |
| 可选节点 | Optional |
带有标记的节点,可访问 0-4 次,非必经 |
确保已安装 Python 3.x。本项目依赖标准库 (tkinter, multiprocessing 等),无需额外 pip install。
在项目根目录下运行:
python main.py- 绘制迷宫:
- 点击工具栏
✏️ 路径或🧱 墙壁切换画笔。 - 在网格上 左键点击/拖动 进行绘制。
- 点击工具栏
- 放置特殊元素:
- 在格子上 右键点击,选择所需的特殊元素(如传送门、起点等)。
- 开始运送:
- 点击工具栏右上角的
▶ 全速运送按钮。 - 程序将显示计算状态,成功后会演示路径并显示步数。
- 点击工具栏右上角的
| 按键 | 功能 |
|---|---|
| O / o | 切换当前格子的 可选 (Optional) 状态 |
| W / w | 循环切换 双向墙 (横向 ─ -> 纵向 │ -> 无) |
project/
├── main.py # 程序启动入口
├── core/ # 核心算法模块
│ ├── solver.py # DFS 求解器与约束传播逻辑
│ ├── grid.py # 迷宫网格数据模型
│ ├── types.py # 类型定义 (Enum, Dataclass)
│ └── validator.py # 移动合法性验证
├── gui/ # 图形界面模块
│ ├── editor.py # 主编辑器窗口逻辑
│ └── canvas_manager.py # 画布绘制与交互管理
├── utils/ # 工具模块
│ └── archive.py # 存档管理
└── archives/ # 存放历史存档数据 (JSON)
- Version: 8.0 Refactored
- Date: 2026-01-29