单题支持四档难度及自定义难度、标签(匹配任一)。每日一题以当前等效 Rating 为中心推荐 ±200 的难度带,限制在 800–2600;没有可计分成绩时使用全范围。预览和抽题使用相同难度带。抽题排除本机已同步提交、归档账号提交和计时记录。
单题沿用逐题限时:初级 800–1100 / 30 分钟,中级 1200–1500 / 40 分钟,上级 1600–2000 / 50 分钟,超上级 2100–2600 / 60 分钟;每日一题 45 分钟。自定义范围支持 800–3500。
所有档位及小随机、大随机均使用以下共享时间槽:
- 初始 120 分钟,余额上限 120 分钟。
- 每次 WA、TLE、MLE、RE 扣 10 分钟;CE、PENDING 和平台内部错误不扣。
- 每题 AC 时余额严格大于零且此前没有耗尽,判「可」。前三题恢复最多 10 分钟;第四题直接结算,不再加时。
- 余额首次到零后,本题和后续完成的题均判「不可」,不再恢复;之前的「可」保留。
- 时间耗尽不取消计时器、不强制结束。四题完成后统一结算,任一「不可」则本轮不合格。用户也可提前结束。
- 每道 AC 都按自己的实际用时计算达成率和单题 Rating。挑战扣时不算进练习用时,失败后完成的 AC 仍保存并按正常规则参与 B50。
四个档位按难度选题;小随机在 800–2600 内先均匀选难度再选题;大随机直接均匀选题。
第一题揭题时开始独立计时和共享倒计时。AC 按 CF 提交时刻停止,结算期间与题间不消耗时间。单题结算展示独立用时、达成率、判定统计、可/不可和待恢复时间。
关闭结算弹窗后,用户点击下一题。前端播放恢复动画,动画结束才 claim 下一题。后端以已冻结的上题余额与恢复量确定新题起始余额,重复请求和刷新不会重复加时间。第四题不播放恢复动画,最终余额为第四题 AC 时的剩余时间。
题目在新标签页打开,原页保留时间槽、独立用时、扣时记录与操作按钮。浏览器拦截新标签页时保留打开链接。减少动态效果设置会缩短过场并关闭装饰动画。
提交按账号、题号、计时窗口隔离;同一提交只扣一次。AC 之前存在等待判题的提交时,先等判定完成再冻结成绩。同步延迟不影响结果,提交时间恰好耗尽余额判「不可」。计时中的零余额为等待同步的预览,最终判定按已确认提交重算。
新规则快照写入 dan_sessions.rules_json;各题余额、扣时、恢复量和失败继承写入 dan_stages.life_json。旧轮次这两列为空,继续使用 v0.2.0 的逐题限时。尚未开始的轮次 24 小时过期;新挑战开始后可在题间停留,直到完成或主动结束。
v0.2.2 新建挑战使用规则版本 3,每次失败提交扣 10 分钟;已经开始的轮次沿用开始时保存的罚时规则,历史成绩不重新计算。
题号与链接仅在 claim 后返回。抽题与创建轮次在同一事务中完成,抽题失败不会残留空轮次。
本次预览使用 schema v22;保留原数据库并重新启动面板,程序会自动备份和升级,原有用时与历史轮次保留。0.2.2 Release 等用户确认后发布。
本地融合 PR #3、#4、#5 的结算和全站主题素材。public/assets/maimai/ 保存整轮底图、可/不可印、数字图集与评级徽章;public/assets/mm-result/ 保存单题结算组件,public/assets/mm-parts/ 保存背景和角色部件。客户端贴图名与提取方法见 scripts/extract-maimai-assets.py;全站样式和字体的来源说明随 public/vendor/maimai/ 保留。
整轮结算沿用 980×928 的桌面盘面;题目边框按 CF 难度分色,圆心显示剩余时间。单题结算使用同一套字形组件,并为图片数字和评级保留可读文本。
以上 maimai 原始美术素材不属于本仓库的 MIT 许可范围,保留上游版权归属。