Skill: goodman333/xianyu-team-optimizer (version 1.0.0)

--- name: xianyu-team-optimizer description: 咸鱼之王十殿星级挑战组队优化器。根据微信接龙名单和每位玩家的星级，自动计算收益最大化的5人分组方案（功德簿奖励档位）。当用户提到咸鱼之王、十殿挑战、功德簿、星级组队、接龙名单分组、公会组队优化等关键词时使用此skill。即使用户只是粘贴了一段接龙名单并问"怎么分组"或"帮我排一下队"，只要涉及星级和5人分队，也应触发此skill。 --- # 咸鱼之王 · 十殿星级挑战组队优化器 ## 背景 咸鱼之王的「十殿星级挑战」是公会合作玩法。每位玩家完成十殿挑战后获得一个星级分数（0-24星，**最高24星**），公会成员需要组成 **5人小队**，小队总星级达到特定阈值可在「功德簿」中领取对应档位的奖励。档位越高，奖励越丰厚。 ### 功德簿奖励档位（从高到低） | 档位 | 所需总星级 | |------|-----------| | 第一档 | ≥ 120 星 | | 第二档 | ≥ 105 星 | | 第三档 | ≥ 90 星 | | 第四档 | ≥ 75 星 | | 第五档 | ≥ 60 星 | | 第六档 | ≥ 50 星 | | 第七档 | ≥ 40 星 | | 第八档 | ≥ 30 星 | 如果用户提供了不同的档位阈值，以用户提供的为准。 ## 工作流程 ### 第一步：解析接龙名单 用户通常会直接粘贴微信群里的接龙名单。格式参差不齐，你需要从中提取每位玩家的 **名称** 和 **星级数**。 **常见格式示例：** ``` 1. 老四 16 2. 十二 20 3. 东君 14 4. 沉稳的中年男士-葛佳佳 16 5. 💫皮皮皮 12 6. 话唠 还没打 7. 18号。2 ``` **解析要点：** - 每行开头的 `1.`、`2.` 等是接龙编号，不是星级 - **行尾的数字是星级**——这是最关键的提取目标 - 名字可能包含 emoji、特殊符号、中英文混合、破折号等 - 名字里可能包含数字（如「18号」），要和行尾的星级区分开——行尾最后一个独立数字才是星级 - 标记为「还没打」「未完成」「未参加」等的玩家，暂时排除在分组之外 - 如果某行完全无法解析出星级，标记为存疑，让用户确认 **解析完成后，先列表确认：** ``` 📋 已解析 X 位玩家： | # | 名称 | 星级 | |---|------|------| | 1 | 老四 | 16 | | 2 | 十二 | 20 | | ... | ... | ... | ⚠️ 以下玩家暂不参与分组： - 话唠（还没打） 请确认是否正确？ ``` 等用户确认后再进入分组环节。如果用户没有异议或催促分组，可以直接进入下一步。 ### 第二步：计算最优分组 使用本 skill 自带的 Python 脚本完成精确计算： ```bash python3 SKILL_DIR/scripts/optimizer.py INPUT_FILE ``` 其中 `SKILL_DIR` 是本 skill 所在目录。输入文件为 JSON 格式： ```json { "players": [ {"name": "老四", "stars": 16}, {"name": "十二", "stars": 20} ], "tiers": [120, 105, 90, 75, 60, 50, 40, 30], "max_stars_per_player": 24 } ``` 脚本会输出 JSON 结果，包含 **多个分组方案**（推荐方案 + 替代方案）和升档建议。每个方案都有完整的队伍列表、汇总和升档策略。 **如果无法运行脚本**（比如没有 Python 环境），按以下算法手动分组。但组合计算容易出错，优先使用脚本。 #### 全局最优分组算法 核心目标：**让所有队伍的档位总价值最大化**。不是简单地从高到低贪心，而是统筹考虑所有队伍的分配。 算法流程（递归搜索 + 记忆化）： 1. 对当前剩余玩家，依次尝试组建每个档位（90→75→60→50→40→30）的队伍 2. 对于每个档位，找出"刚好达标"的5人组合（总星级最小的那个满足阈值的组合）——这样做是为了把高星玩家省给后续队伍 3. 假设选了这个组合，递归求解剩余玩家的最优分法 4. 比较所有档位选择的结果，取总价值最高的方案 **为什么用"刚好达标"的组合？** 高星玩家是稀缺资源。如果一支90星队用了 95 星的组合，那多出的 5 星就浪费了——它们本可以帮助另一支队伍跨过更高的档位线。所以每支队伍都用恰好满足阈值的最小组合，把多余的战力留给其他队伍。 **和纯贪心的区别：** 纯贪心会无脑地先组尽可能多的90星队。但有时候少组一支90星队，把玩家分散到75和60，反而能让总收益更高。全局搜索会自动找到这个平衡点。 ### 第三步：输出多方案供选择 脚本会自动生成推荐方案和若干替代方案。每个方案要完整展示，方便用户对比选择。 格式参考： ``` # 🎯 分组方案 --- ## 方案一（推荐） — 总档位价值 255 ### 第 1 队 — ⭐ 90星档（总计 92 星） | 玩家 | 星级 | |------|------| | 百度亭-老九 | 20 | | 十二 | 20 | | 话痨 | 19 | | 娃哈哈 | 19 | | 东君 | 14 | ### 第 2 队 — ⭐ 75星档（总计 78 星） | 玩家 | 星级 | |------|------| | 混子 | 19 | | 19号 | 18 | | 清浅 | 17 | | 老四 | 16 | | MrH | 6 | ### ⚠️ 未分组 (3人) XXX(9), YYY(4), ZZZ(2) 📊 汇总：2队 | 90星×1, 75星×1 | 15人已分组 | 3人待定 --- ## 方案二 — 总档位价值 240 （类似格式展示另一种分法） --- ``` ### 第四步：外部引援策略建议 脚本会为每个方案自动计算引援建议（`upgrade_hints`），核心问题是：**从外部引入多少人、每人需要多少星，可以让队伍升到更高档位？** 实际操作中 105 和 120 星档很难达到，重点关注这些现实可达的提升路径： - **75→90**：中坚队伍的关键跳跃 - **60→75**：让更多队伍拿到有价值的奖励 - **<60→60**：帮助未分组玩家至少达到60星基线 #### 1. 已组队伍的引援升档 脚本为每支队伍计算了两种外部引援方式： **引入1人替换最弱队员**（`recruit_1_options`）：列出引入1名外部玩家替换队内最弱成员后，可达到的各档位及所需最低星级。 > 第 2 队（75星档，总计75星）最弱队员：喷火龙(4星) > - 引入 ≥19星 玩家替换喷火龙 → 升至 **90星档** **引入2人替换最弱2人**（`recruit_2_options`）：当换1人不够时，尝试替换队内最弱的2名成员。 > 第 1 队（90星档，总计90星） > - 引入2人(人均≥23星) 替换 皮皮皮(12)+混子(19) → 升至 **105星档** #### 2. 未分组玩家的引援组队 脚本会列出：为未分组玩家从外部引入多少人凑满5人队，以及达到各档位分别需要多少总星级。 > 未分组 3 人（东君14 + 安安10 + 18号2 = 26星），还需从外部引入 **2人**： > > | 目标档位 | 需引入总星数 | 人均最低星级 | > |---------|------------|------------| > | 30星档 | 4星 | 2星/人 | > | 40星档 | 14星 | 7星/人 | > | 50星档 | 24星 | 12星/人 | > | 60星档 | 34星 | 17星/人 | 如果引入更多外部人员，还能组多支队（`extra_team_options`）： > 引入 7 人(人均≥5星) → 可组 2 支30星档队伍 #### 3. 引援性价比排名 脚本输出 `global_recruit_summary`，按"每引入1人带来的档位价值提升"从高到低排序，帮用户快速决策优先引谁： > 1. 引入2人(人均≥17星)与未分组玩家组新队 → 新增60星档（+60价值） > 2. 第2队引入1人(≥19星)替喷火龙 → 75升90星档（+15价值） > 3. 第3队引入1人(≥21星)替MrH → 60升75星档（+15价值） #### 4. 未打玩家影响预估 如果接龙名单中有人标注「还没打」，分析他们打完后的影响： - 打完后可以直接参与分组重新计算 - 如果能打出 X 星以上，可以替换某队的低星玩家实现升档 - 或者和未分组玩家一起组成新的队伍 ## 注意事项 - 玩家数量通常不是5的倍数，总会有少量玩家分不到组，这是正常的 - 接龙名单可能会多次更新（新打完、改星级），支持增量调整——用户粘贴新名单时直接重新计算即可 - 单个玩家最高24星（十殿每殿最高可得若干星，总计上限24星） - 公会人数一般在20-50人之间，穷举5人组合的计算量完全可控 - 脚本会自动输出多个分组方案（推荐 + 替代），以及每个方案的升档建议 - 用户可以根据自己对公会成员提升潜力的判断，选择最合适的方案


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)