# 方洞挑战拖拽玩法重构 2026-05-05 ## 1. 目标 把方洞挑战从“按洞口按钮点选”改成“拖拽形状到目标洞口”的玩法,同时把洞口选项与形状选项的编辑关系改成稳定 ID + 名称联动。 ## 2. 编辑态规则 1. 洞口选项不再暴露 `square / circle / triangle` 之类的下拉框。 2. 每个洞口选项只保留稳定 `holeId`、可编辑名称 `label`,以及可选图片字段。 3. 洞口名称改动后,所有引用该洞口的形状选项下拉框必须同步显示新名称。 4. 形状选项不再直接绑定洞口“形状类型”,而是绑定一个目标洞口 `targetHoleId`。 5. 形状选项下拉框展示的是洞口名称,底层值是 `targetHoleId`。 6. 形状选项仍保留自己的视觉配置字段,如 `shapeKind`、`imagePrompt`、`imageSrc`。 7. 去掉加分选项,所有洞口选项一律平权。 ## 3. 运行态规则 1. 运行态上半区展示全部洞口,布局成一块平面。 2. 下半区展示当前轮次的形状选项。 3. 每轮随机选择一个形状选项作为当前轮显示项,并以它绑定的 `targetHoleId` 作为目标洞口。 4. 箭头动画只负责给出随机引导洞口,不绑定正确答案;多洞口时优先避开当前正确洞口,避免直接剧透。 5. 用户把当前形状拖到任意洞口上松开后,前端把该洞口的 `holeId` 提交给后端。 6. 后端以 `holeId === currentShape.targetHoleId` 作为唯一判定标准。 7. 命中后进入下一轮;未命中时后端返回错误反馈、清空连击并保留当前运行态。 8. 计分不再包含任何加分洞口分支。 9. 游戏模式下洞口和当前选项只展示图片卡片,不再按 `shapeKind` / `holeKind` 裁剪成圆形、三角形、星形等几何形状。 ## 4. 图片槽位 1. 封面图、背景图、形状图、洞口图都使用独立图片槽位。 2. 洞口图对应新的历史素材类型 `square_hole_hole_image`。 3. 图片槽位查看面板内保留历史图片、上传入口和 AI 生成入口。 ## 5. 后端契约要求 1. 共享契约里补充形状到洞口的目标引用字段。 2. 共享契约里补充洞口图片字段。 3. 运行态快照里必须包含当前形状对应的目标洞口信息,便于前端画箭头。 4. 作品和草稿返回的洞口数据必须和运行态保持同一组 ID 与名称。 ## 6. 验收标准 1. 编辑洞口名称后,形状下拉框立即显示新名称。 2. 洞口编辑不再出现 `square / circle / triangle` 下拉框。 3. 运行态不再是按钮点选洞口,而是拖拽命中。 4. 每轮都能看到箭头或高亮引导洞口,但该引导不等同于正确答案。 5. 计分中不再出现 `bonus` 相关加分。 6. 游戏模式中洞口、当前选项和拖拽影子不再显示几何形状,只显示对应图片或中性图片占位。