Skip to content

judgement

@mai-kit/utils/judgement 提供完整判定类型、规范化函数、计分常量和判定计算。

可从物量与判定分布还原达成率和 DX 分,也可用于实现判定分析器。 常用成绩公式仍从 @mai-kit/utils 包根导入。

接口

接口描述
BreakJudgementsBreak 细分判定计数(含 perfect-1/2、great-1/2/3)
ChartJudgements完整谱面分类型判定
ChartNoteCounts分类型物量(各 note 数)
NoteJudgements普通 Note 判定计数(CP / P / Gr / Go / Mi)
PartialChartJudgements可缺省 Note 类型和判定项的整谱判定输入。
PenaltyDistribution各 note 类型下各判定相对理论值的扣分百分比表

类型别名

类型别名描述
BreakPenaltyPercentBreak 每种细分判定对总达成率造成的扣分百分点。
NotePenaltyPercent普通 Note 每种判定对总达成率造成的扣分百分点。
NoteTypeNote 类型:tap / hold / slide / touch / break
PartialBreakJudgements可缺省任意判定项的 Break 判定;规范化时缺项按 0 处理。
PartialNoteJudgements可缺省任意判定项的普通 Note 判定;规范化时缺项按 0 处理。

变量

变量描述
BREAK_BASE_SCORESBreak 各判定对应的基础分
BREAK_BONUS_SCORESBreak 各判定对应的奖励分
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 总数(各判定计数之和)。