@mai-kit/judgement-inference
@mai-kit/judgement-inference 根据谱面物量与目标成绩,使用 GLPK/WASM 反推一组可行的 完整判定分布。它与纯 TypeScript 的 @mai-kit/judgement-solver 分离,保持重依赖与 GPL-3.0-only 许可证只存在于最终应用按需使用的叶子包。
同一达成率和 DX 分可能对应多组判定;本包返回经过 @mai-kit/utils 回算验证的一组可行解, 不声称还原玩家真实原始判定。Node 动态加载 glpk.js/node,浏览器动态加载内置 Web Worker 的 glpk.js,公开 API 在两端一致。
示例
ts
import { inferJudgementDistribution } from "@mai-kit/judgement-inference";
const judgements = await inferJudgementDistribution(
{ tap: 10, hold: 0, slide: 0, touch: 0, break: 0 },
{ achievement: 90, dxScore: 20, judgementCounts: { great: 5 } },
);
console.log(judgements.tap.great); // 5判定反推
| 名称 | 描述 |
|---|---|
| JudgementInferenceOptions | 反向求解的运行选项。 |
| JudgementInferenceTarget | 反向求解必须满足的目标成绩。 |
| JudgementCountConstraint | 可按全谱面汇总判定数量施加的精确约束。 |
| JudgementInferenceFailureReason | 精确解失败的归一化原因。 |
| JudgementInferenceSolverStatus | 底层求解器状态的稳定文本。 |
| inferJudgementDistribution | 根据目标达成率、可选 DX 分与判定总数,反推一组满足条件的完整判定分布。 |
错误
| 名称 | 描述 |
|---|---|
| JudgementInferenceError | 判定反推包的统一错误。 |
| JudgementInferenceNoExactSolutionError | 精确反推没有返回可用判定分布时的结构化错误。 |
| isJudgementInferenceError | 判断错误是否来自判定反推包。 |
| isJudgementInferenceNoExactSolutionError | 判断错误是否表示没有返回精确反推结果。 |
