# 寻路算法实验室

## 原始提示词

见 [完整原始输入](prompt.md)。

## 运行与验证

- 入口：`index.html`，纯静态单文件（HTML/CSS/JS 内联，Canvas 渲染），无后端、无 CDN，`file://` 直接打开与 HTTP 托管均可。
- 操作：选择算法（BFS / Dijkstra / A*），用画笔绘制障碍、擦除或标记高代价地形，拖动起点终点；运行/暂停/单步/速度滑块/清除搜索/重置地图；三个预设（空白、迷宫、加权地形）一键载入。
- 规则：四方向移动；BFS 按步数搜索，Dijkstra 与 A* 按地形代价（普通 1、高代价 5，起点代价不计入）；A* 使用曼哈顿距离；搜索期间编辑地图会停止并清除旧搜索；起点终点不可被障碍覆盖；封闭终点显示不可达。

### 验收记录（Playwright Chromium，file:// 加载，2026-10-14）

- 无障碍网格 A*：找到路径，步数 = 曼哈顿距离 26，总代价 26 ✓
- 封闭终点：判定不可达并明确提示 ✓
- 加权地图：Dijkstra 与 A* 总代价一致（28，绕行下侧 28 步代价 28）✓
- 加权地图：BFS 步数 26（直穿高代价通道）为最少步数，其路径代价 38 > Dijkstra 代价 28 ✓
- 单步每次只展开一个节点；运行中暂停后不再展开节点 ✓
- 起点不可被障碍覆盖；鼠标点击真实绘制障碍（pointer 事件通路）✓
- 搜索期间编辑：清除搜索并写入地形 ✓
- 迷宫预设两次载入逐格一致（可重复）且有可达路径 ✓
- 390px 视口无页面水平溢出 ✓；加载无 JS 错误 ✓

## 复盘

- 直接按任务正文实现。BFS 用队列，Dijkstra/A* 用二叉堆（f 值、g 值二级比较），路径用 prev 数组回溯；已访问/前沿分别以独立位图维护，供逐帧着色。
- 验收中发现两处需修正（见 run.json changes）：BFS 总代价误显示为步数；加权地形预设最初无法形成“步数-代价”权衡（无障碍时任何单调路径步数相同），改为“墙块 + 高代价通道”设计后 BFS（26 步/代价 38）与 Dijkstra/A*（28 步/代价 28）的差异清晰可见，Dijkstra 与 A* 代价相等符合验收要求。
- 已知简化：启发式与代价满足一致性（曼哈顿 ≤ 实际代价），A* 保证最优；不同最优路径之间的选择取决于堆的平局处理，属正常现象。

<!-- archive:start -->
## 当前归档信息（自动生成）

- 实验 ID：`pathfinding-lab--deepseek-v4-pro-0813-max-r01`
- 模型：DeepSeek-V4-Pro-0813；推理档位：max
- 类型：single-html；预览：static；网络：offline
- [完整原始输入快照](prompt.md) · [主题与其他版本](../../../../topic.html?id=pathfinding-lab)
- 输入记录：完整输入快照：用户总体指令（批量执行全部案例、模型名 DeepSeek-V4-Pro-0813、档位 max、使用当前会话）+ 任务正文 v1 逐字原文。会话未另开、未委派子代理。
- 工具：claude-code。Claude Code CLI 会话（Windows 11），用户指定模型名称为 DeepSeek-V4-Pro-0813；会话环境自报模型字符串 deepseek-v4-pro[1m]。推理档位 max（/effort 已设 max）。验收用 Playwright Chromium（--enable-unsafe-swiftshader）加载 file:// 页面执行。
- 运行方式：浏览器直接打开本目录入口；CDN/外部素材需要联网。
- 费用记录：Deepseek 批次合计 13.77 CNY（11 个案例；批次 deepseek-v4-pro-0813-max-2026-10-14；未记录单案例费用）
- [主页面](../../../../demos/pathfinding-lab/runs/deepseek-v4-pro-0813-max-r01/index.html)

### 部署适配记录

- 首次生成后修复：BFS 的“总代价”原先取 dist 数组（等于步数），与界面说明不符；改为找到路径后按实际地形代价求和（BFS 不优化代价，该值仅作参考）。
- 首次生成后调整：加权地形预设重新设计——墙块（rows 2-12, cols 6-8）中仅留高代价通道（rows 6-8），使步数与代价形成真实权衡：直穿通道 26 步代价 38，绕行下侧 28 步代价 28，便于对比 BFS 与 Dijkstra/A*。
- 首次生成后调整：迷宫预设改为固定随机种子的确定性 DFS 迷宫（可重复且保证连通），替换手工图案。
- 迁移来源：F:/dev/ai-coding-demo-test/demos/pathfinding-lab/runs/deepseek-v4-pro-0813-max-r01（分支 experiment/deepseek-v4-pro-0813，提交 90de279）；保留源实验的已测试代码、完整输入快照与复盘记录。
- 迁移验收：通过本地 HTTP 页面补拍 1440×960 Edge 桌面截图；入口返回 HTTP 200、无页面脚本异常，390px 视口未发现页面横向溢出。
- 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据；旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码，截图不证明完整功能、算法、手势或性能。
<!-- archive:end -->
