杜绝♂️雄性闲置 · 唯一依赖优先 · 均衡覆盖
纯前端工具,管理精灵仓库、自动生成最优配窝方案与位置图。
- 精灵仓库 — 统一管理所有已录入雌雄精灵,每个实例独立设置性格(增减益)和奖牌(body/voice 两系列独立选取)
- 库存展示窗 — 主面板实时展示已录入精灵(含蛋组),支持雌/雄/异色/性格/奖牌多维度筛选
- 精灵窝管理 — 灵活放置雌性入窝,支持从仓库直接选取或从全精灵搜索(带蛋组/赛季筛选)
- 智能配窝推荐 — 贪心 + 局部搜索 (Hill Climbing + Swap) + 兜底踢除
- 唯一依赖保护 — 自动识别并锁定只有一只雄性可覆盖的雌性
- 替换雄性 — 点击方案雄性可替换为库存中能覆盖相同雌性的其他雄性(按实际兼容判定,不限于蛋组)
- 位置图可视化 — 7×7 网格(14×14 细网格背景),支持拖拽调整
- 配置导入/导出 — JSON 文件存档 + 图片导出(方案/位置图)
- 现代浏览器(Chrome / Firefox / Edge)
- 直接访问
index.html(需 HTTP 服务,不支持file://)
管理仓库(录入雌雄) → 放置雌性入窝 → 雄性筛选 → 生成方案 → 位置图
点击 「📋 管理仓库」 打开仓库弹窗:
| 按钮 | 功能 |
|---|---|
| ➕ 添加雄性 / ➕ 添加雌性 | 打开精灵录入弹窗(搜索/蛋组/赛季筛选,设置普通/异色数量) |
| 筛选栏 | 按雌/雄/异色/性格/body奖牌/voice奖牌筛选 + 搜索 |
| 点击精灵卡片 | 弹出编辑弹窗,可修改数量/性格/奖牌,或删除该组精灵 |
录入时为每只实例单独设置性格和奖牌(加减按钮旁的小方块)
在精灵窝面板点击 「➕ 添加雌性」:
| 模式 | 说明 |
|---|---|
| 全部精灵 | 输入关键词或选蛋组/赛季后显示,点击精灵弹属性选择窗(异色/性格/奖牌)再入窝 |
| 从库存雌性中选取 | 显示仓库中所有雌性,支持异色/性格/奖牌筛选,点击直接入窝 |
雌性上限 = 窝数 − 1
在方案生成前按条件缩小雄性候选范围:异色⭐ / 性格🎭 / body🏅 / voice🏅,每个系列独立选择。
点击 「✨ 智能推荐配窝方案」,查看雄性分配、覆盖详情、未覆盖警告。点击 「🔄 查看可替换」 可替换方案中的雄性(按实际覆盖能力判定兼容性)。
点击 「📍 生成位置图」,在 7×7 网格上查看精灵窝排布,手动拖拽微调,导出 PNG。
computeRecommendation()
├─ nestFemales → 雌性实例 + inventory(male) → 按筛选过滤
├─ 锁定唯一依赖配对
├─ 贪心初始解(prefer newC, then total)
├─ 局部搜索 Swap(评分 = maxMatching × 10000 + covered)
└─ 兜底踢除
候选雄性必须通过 compatibleMap 覆盖原雄性所覆盖的全部雌性,不依赖蛋组集合匹配,允许单蛋组替换双蛋组(只要覆盖能力不变)。
聚类检测 → 确定性模板 → 细网格求解器 → 居中对齐。连线可见条件:曼哈顿 ≤ 2.5 且切比雪夫 ≤ 2。
data/
├── pets.json ← 全精灵数据库
├── defines.json ← 蛋组/赛季/标签中文名
├── personalities.json ← 性格数据 { "物攻": [{ name, decrease }] }
└── medals.json ← 奖牌数据 { "body": [{ id, name, icon }], "voice": [...] }
5.0/
├── index.html
├── style.css
├── data/(4 个 JSON)
└── js/(9 个 JS)
state.js → dataLoader.js → uiHelpers.js → recommend.js
→ replace.js → placement.js → svgRender.js
→ importExport.js → main.js
{
"nestCount": 10,
"inventory": [
{ "id": 3011, "name": "恶魔狼", "gender": "male", "shiny": true,
"personality": "胆小", "medals": { "body": "dkt", "voice": null } }
],
"nestFemales": [
{ "id": 3029, "name": "奇丽草", "shiny": false,
"personality": null, "medals": { "body": null, "voice": "wzs" } }
]
}| 优先级 | 匹配方式 |
|---|---|
| 1 | ID 精确匹配 |
| 2 | 名称精确匹配 |
| 3 | 名称 + 蛋组中文名交叉匹配 |
旧版 females[]/males[]/medal 字段自动兼容转换。
- 雌性上限 = 窝数 − 1
- 不支持
file://协议 - 需 ES6+ 浏览器
MIT