# 奇幻地图生成器（DeepSeek-V4.1-Flash-0731 · high · r01）

单文件静态网页，直接打开 [index.html](index.html) 即可运行。无后端、无 CDN、无远程字体或图片、无构建步骤，`file://` 与 HTTP 静态托管都能运行。

## 原始提示词

见 [完整原始输入](prompt.md)；任务正文与 [v1 任务正文](../../prompts/v1/prompt.md) 逐字一致。

## 实现要点

- 高度场 = 多倍频值噪声 × 岛屿衰减掩膜。噪声查找表、山脊细节、海岸抖动全部由 seed 派生（FNV-1a 把种子文本散列为 32 位），因此种子与参数一致时地图逐像素一致。
- 地形分类：海洋（按深度分色）、近岸浅海、海岸、平原、森林、山脉。森林由第二张湿度噪声决定，山脉由高出海平面的幅度决定。
- **河流**：从高处候选源点出发，每一步只走向八邻域中最低的一格。这是最陡下降法，**不会上坡**；山脉定义在高出海平面 0.30 以上，而允许的累计爬升预算只有 0.028，因此河流在数值上不可能翻越山脊。到达洼地则汇成内陆小湖，汇入已有河流也会停止。
- 画笔：升高 / 降低直接修改高度场，松手后重算河流与城镇并重绘，海岸线随之变化。
- 视图：滚轮以光标为锚点缩放，捏合手势以捏合起点为基准换算（避免逐帧漂移），平移工具用 Pointer Events，坐标经逆变换换算，缩放后落笔位置仍准确。
- 导出：合成一张带双线边框、标题与参数说明的 PNG，含当前地图；使用 `toDataURL` + 下载链接，`file://` 下同样可用。

## 验收自测

用无头 Chromium 加载 `file://` 入口，通过画布像素与信息栏核对：

| 验收项 | 期望 | 实测 |
|---|---|---|
| 相同种子重生成结果一致 | 完全一致 | 画布 PNG 字节完全一致；换种子再换回也复现原图 |
| 改变种子产生不同地图 | 不同 | 画布 PNG 不同（eldoria / zephyria 差异明显） |
| 画笔确实修改地形并联动地图 | 像素改变 | 中心区域像素 `[159,148,124]` → `[185,175,149]`，海岸与河流同步重算 |
| 缩放后绘制坐标正确 | 落笔位置准确 | 滚轮缩放至 1.85× 后落笔无偏移、无异常 |
| 导出图片包含当前地图 | 有效位图 | 下载得到 `fantasy-map-eldoria.png`，PNG 签名有效，1508×1202，抽样 136 种颜色 |
| 触摸操作可用 | 可用 | Pointer Events + `touch-action: none`，另实现双指捏合缩放 |
| 首屏默认地图 | 可操作 | 载入即有 island、图例与城镇标签，陆地占比 35.4%、河流 16 条、城镇 9 个 |
| 390px 无水平溢出 | 无溢出 | 溢出 0px |

## 运行与复盘

- 运行方式：浏览器直接打开本目录 `index.html`；或使用根目录 `npm run preview` 后的静态托管地址。
- 未使用网络资源，断网可用。
- 复盘：核心算法一次成立（确定性、河流不翻山脊、画笔联动）。首轮生成后做了两轮自查调整：一是初始陆地占比仅 23.5%，岛体偏小，调整掩膜阈值与高度基准后稳定在 30%~41%（随种子浮动，海平面滑块可覆盖 28.7%~47.6%）；二是森林阈值过高导致森林几乎不出现、河流线宽过细不易辨认，已下调阈值并加粗河流，同时加入逐格色差减轻方块感。两处均为参数与呈现层面的调整，未改动算法结构，`changes` 为空。

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

- 实验 ID：`fantasy-map-generator--deepseek-v4-1-flash-0731-high-r01`
- 模型：DeepSeek-V4.1-Flash-0731；推理档位：high
- 类型：single-html；预览：static；网络：offline
- [完整原始输入快照](prompt.md) · [主题与其他版本](../../../../topic.html?id=fantasy-map-generator)
- 输入记录：本次批量执行的完整指令 + 主题任务正文；正文与 demos/fantasy-map-generator/prompts/v1/prompt.md 逐字一致。任务正文来源为 docs/test-cases.md，不含更早的对话上下文。
- 工具：Claude Code。模型名称由用户指定为 DeepSeek-V4.1-Flash-0731；会话内模型标识为 deepseek-flash[1m]。单会话直接执行，未委派子代理。Windows 11 + Node 22.16.0。首轮生成后仅做视觉与比例调参（陆地占比、森林分布、河流粗细、逐格色差），未改变算法结构，也未做人工修改。
- 运行方式：浏览器直接打开本目录入口；CDN/外部素材需要联网。
- 费用记录：Deepseek 批次合计 2.71 CNY（11 个案例；批次 deepseek-v4-1-flash-0731-high-2026-10-13；未记录单案例费用）
- [主页面](../../../../demos/fantasy-map-generator/runs/deepseek-v4-1-flash-0731-high-r01/index.html)

### 部署适配记录

- 迁移来源：F:\dev\ai-coding-demo-test（model-test-base 工作区）/demos/fantasy-map-generator/runs/deepseek-v4-1-flash-high-r01；保留原测试轮次 r01 与完整输入快照。
- 迁移验收：通过本地 HTTP 实际入口补拍 desktop screenshot.png；390px 页面无横向溢出。静态入口也通过 file:// 直接打开检查。
- 模型与实验目录标识按用户确认更新为 DeepSeek-V4.1-Flash-0731；历史输入、评分、产物与迁移来源保留。
- 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据；旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码，截图不证明完整功能、算法、手势或性能。
<!-- archive:end -->
