Skip to content

About

通过准确率变化,动态调整难度的循环计时器。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

全能训练助手 (Training)

一个轻量级的本地训练辅助工具,通过对数空间算法动态调整难度,帮助用户在训练中维持目标成功率。

界面预览

主界面:

主界面

训练记录与数据分析:

训练记录

功能

  • 训练项目 (Preset):命名保存的配置,包含总组数、单组时长、组间休息时间、难度模式、灵敏度和目标成功率
  • 对数空间调整:基于当前成功率与目标成功率的误差,在对数空间内以指数方式调整难度值
  • 倒计时提示音:训练开始前短滴倒计时、结束时长滴提示;组间休息仅最后 5 秒响滴
  • 撤销 (Undo):撤回上一条训练记录(仅在撤销窗口内可用),便于纠错
  • 数据分析:查看训练历史曲线,支持按次数或按天聚合展示成功率与难度趋势
  • 项目切换与自动保存:配置实时保存,切换项目即恢复对应参数与上次难度值

使用方法

从源码构建

需要 Go 1.21+,无需前端构建工具(前端为原生 HTML/CSS/JS,内嵌于二进制)。

cd training
go build -o training.exe .

运行

双击 training.exe 即可,程序会启动本地服务并在**内嵌窗口(WebView2)**中打开界面,不再依赖浏览器。需要 Windows 10/11 且系统装有 WebView2 Runtime(Windows 11 已预装;Windows 10 一般随 Edge/Office 自带,缺失时程序会提示安装地址)。

  1. 新建一个训练项目,输入初始难度值
  2. 点击「开始训练」,跟随倒计时与提示音完成训练
  3. 每组结束后录入本组成功率
  4. 查看「数据」图表观察难度与成功率的变化趋势

调试时可设置环境变量 TRAINING_PORT 修改内部端口(默认 8080)。

目录结构

├── training/            # Go 服务端 + 内嵌前端
│   ├── main.go          # 入口,启动本地服务并创建内嵌 WebView2 窗口
│   ├── internal/        # 算法、存储、HTTP 处理器
│   └── web/             # 前端页面(app.js / index.html / style.css)
└── picture/             # 界面截图

技术说明

  • Go 后端 + 原生 Web 前端,所有页面和资源通过 go:embed 打包进单个可执行文件
  • 界面由内嵌 WebView2 窗口加载本地服务呈现(浏览器不再作为访问通道),窗口关闭即退出程序
  • 后端使用 Go 标准库(net/http),数据以 JSON 文件持久化于程序所在目录
  • 前端使用原生 JavaScript(计时状态机为无 DOM 纯模块,由 node --test 单元测试),无框架依赖
  • 提示音通过 Web Audio API 即时播放;训练计时为窗口内单驱动 setInterval + 浮点累加墙钟——显示秒与真实秒逐秒对齐、误差不累积,卡顿/休眠恢复后静默补课(见 docs/adr/0006)

许可证

MIT

About

通过准确率变化,动态调整难度的循环计时器。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages