高级设置
约 872 字大约 3 分钟
数据存储架构
应用根据运行环境自动选择存储方式:
Tauri 版本
数据存储在 data/ 目录下的独立 JSON 文件中,通过 Rust 后端进行读写操作。存储键包括:
settings:用户设置lists:名单数据currentListId:当前选中的名单 IDstatistics:统计数据records:抽取记录balance:平衡算法配置password:密码哈希cardTrayHistory:翻牌收牌历史cardUsedNames:翻牌已用名字cardSettings:翻牌设置
Electron 版本
使用 electron-store 包进行数据持久化,数据存储在用户数据目录中。
浏览器版本(线上版)
使用 localStorage 进行数据存储,数据保存在浏览器本地。
名单管理高级功能
白名单机制
系统内置一个不可编辑的白名单:
- 内容:
再来一次(中文)/Again!(英文) - 作用:白名单成员在批量删除时受保护,不会被删除
- 显示:名单管理页面中以特殊标记显示
名单导入导出
名单导出
- 格式:
.json文件 - 内容:单个名单数据(名称 + 人员列表)
- 操作位置:名单管理页面
- 无需密码验证
名单导入
- 格式:
.json文件 - 操作位置:名单管理页面
- 无需密码验证
- 注意:导入会添加为新名单,不影响现有名单
翻牌点名高级配置
牌子数量
翻牌模式下可配置的牌子数量,影响每次发牌的数量。
快速抽取数量
一键多抽功能的抽取数量配置。
收牌历史持久化
翻牌模式的收牌历史和已用名字会自动持久化存储,关闭应用后重新打开可恢复上次状态。
平衡算法技术细节
算法原理
平衡算法基于以下步骤工作:
- 计算赤字值:对每位同学,计算
赤字 = 期望被抽中次数 - 实际被抽中次数 - 概率提升计算:根据赤字值在平衡曲线上查找对应的概率提升百分比
- 加权随机:使用提升后的概率进行加权随机选择
插值方法
使用 Fritsch-Carlson 单调 Hermite 三次插值,在 3 个控制点之间平滑过渡,确保曲线单调递增。
默认控制点
| 控制点 | X(赤字值) | Y(概率提升%) |
|---|---|---|
| 点 1 | 0.3 | 150% |
| 点 2 | 1.5 | 420% |
| 点 3 | 2.4 | 800% |
参数说明
factor(13.3):基础权重因子maxThreshold(3):最大赤字阈值maxBoostPercent(1200%):最大概率提升上限
数据操作安全
密码保护机制
- 哈希算法:SHA-256
- 存储方式:仅存储哈希值,不存储明文密码
- 保护范围:数据导出、数据导入、清空记录、清除全部
- 不受保护:名单编辑、设置修改、日常使用
导入数据注意事项
- 导入会覆盖当前所有数据
- 导入后需要手动重启应用
- 建议在导入前先导出当前数据作为备份
性能优化建议
低性能设备
在低性能设备上,建议关闭以下效果以提升流畅度:
- 亚克力模糊效果
- 阴影效果
- 过渡动画
大量名单
当名单中人数较多时:
- 平衡算法的计算量会相应增加
- 统计页面的渲染可能变慢
- 建议适当控制单个名单的人数
贡献者
更新日志
2026/7/9 09:02
查看所有更新日志
c62e2-docs: 根据项目实际代码全面修正文档内容于
