judgement
@mai-kit/utils/judgement 提供完整判定类型、规范化函数、计分常量和判定计算。
可从物量与判定分布还原达成率和 DX 分,也可用于实现判定分析器。 常用成绩公式仍从 @mai-kit/utils 包根导入。
接口
| 接口 | 描述 |
|---|---|
| BreakJudgements | Break 细分判定计数(含 perfect-1/2、great-1/2/3) |
| ChartJudgements | 完整谱面分类型判定 |
| ChartNoteCounts | 分类型物量(各 note 数) |
| NoteJudgements | 普通 Note 判定计数(CP / P / Gr / Go / Mi) |
| PartialChartJudgements | 可缺省 Note 类型和判定项的整谱判定输入。 |
| PenaltyDistribution | 各 note 类型下各判定相对理论值的扣分百分比表 |
类型别名
| 类型别名 | 描述 |
|---|---|
| BreakPenaltyPercent | Break 每种细分判定对总达成率造成的扣分百分点。 |
| NotePenaltyPercent | 普通 Note 每种判定对总达成率造成的扣分百分点。 |
| NoteType | Note 类型:tap / hold / slide / touch / break |
| PartialBreakJudgements | 可缺省任意判定项的 Break 判定;规范化时缺项按 0 处理。 |
| PartialNoteJudgements | 可缺省任意判定项的普通 Note 判定;规范化时缺项按 0 处理。 |
变量
| 变量 | 描述 |
|---|---|
| BREAK_BASE_SCORES | Break 各判定对应的基础分 |
| BREAK_BONUS_SCORES | Break 各判定对应的奖励分 |
| NOTE_BASE_SCORES | 普通 note 基础分(tap/hold/slide/touch) |
| NOTE_JUDGEMENT_RATES | 普通 note 判定相对 CP 的得分率 |
函数
| 函数 | 描述 |
|---|---|
| calculateAchievement | 由谱面物量与判定明细计算四位小数达成率(百分数)。 |
| calculateChartDxScore | 由完整分类型判定明细计算 DX 分与满分。 |
| calculateDxScore | 由「聚合后的」普通判定(不拆 break 档)计算 DX 分与满分。 |
| calculateMaxAchievementScores | 计算谱面理论最高基础分与 Break 奖励分(全 CP 时)。 |
| calculateSingleNotePenaltyPercent | 计算每种单 Note 判定相对理论满分的扣分百分比表。 |
| dxMaxFromNoteCounts | 由分类型物量计算 DX 满分(先求和再 ×3)。 |
| normalizeBreakJudgements | 规范 Break 细分判定表(缺字段补 0)。 |
| normalizeChartJudgements | 规范整张谱面的分类型判定(缺 note 类型补全 0 表)。 |
| normalizeChartNoteCounts | 规范分类型物量(缺类型补 0)。 |
| normalizeJudgementCount | 将单个判定数规范为非负整数;null/undefined 视为 0。 |
| normalizeNoteJudgements | 规范普通 note 判定表(缺字段补 0)。 |
| noteTotalFromCounts | 由分类型物量求 Note 总数。 |
| noteTotalFromJudgements | 由完整判定明细求 Note 总数(各判定计数之和)。 |
