# 99table-memory **Repository Path**: oldk3000/99table-memory ## Basic Information - **Project Name**: 99table-memory - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 九九乘除法口算练习 ## 项目简介 `九九乘除法口算练习` 是一个面向儿童口算训练的轻量级网页工具,专注于帮助孩子通过“先看数字、自己思考、再看答案”的方式,反复熟悉九九乘法表,并进一步训练乘法反推、基础除法和带余数除法能力。 项目采用纯前端实现,无需安装依赖,直接打开网页即可开始练习,适合家庭陪练、课堂训练和日常巩固使用。 ## 核心功能 - 支持设置问题显示时长,默认 `4` 秒,可选 `1 ~ 10` 秒 - 支持设置结果显示时长,默认 `3` 秒,可选 `1 ~ 10` 秒 - 支持设置整轮练习时长,默认 `5` 分钟,可选 `3、5、8、10、15、20` 分钟 - 支持普通模式和“有余数”模式 - 普通模式会从九九乘法表的真实乘积结果中随机出题 - 有余数模式会从 `1 ~ 89` 随机出题,并显示最接近且不超过该数字的乘法式和余数 - 支持“显示其中一个乘数”模式,帮助孩子根据已知条件反推另一边 - 开启已知乘数后,答案阶段会保留提示,并只显示与该乘数相关的结果 - 自动记录最近 `30` 题,避免短时间内重复出题 - 按练习总时长自动换算本轮总题数,并在完成最后一题后自动结束 - 针对手机界面做了紧凑化适配,尽量减少视觉干扰 ## 产品特点 - 纯前端单页实现,打开即用 - 自动出题、自动显示答案,适合连续练习 - 同时覆盖乘法记忆、结果反推、基础除法和带余数除法 - 页面尽量减少干扰信息,帮助孩子专注在数字和结果上 - 支持手机和桌面浏览器使用 ## 使用方法 1. 直接打开 `index.html` 2. 设置练习参数: - 问题显示时长 - 结果显示时长 - 练习持续时长 - 是否开启“有余数” - 是否开启“显示其中一个乘数” 3. 点击“开始” 4. 如需中途停止,点击“结束” ## 练习规则 ### 普通模式 - 题目来自九九乘法表中的真实乘积结果 - 自动排除过于简单的数字:`1、2、3、5、7` - 同一个结果如果存在多种乘法式,会默认全部显示 - 例如题目是 `36` - 答案会显示:`4 × 9 = 36`、`6 × 6 = 36` ### 有余数模式 - 题目范围为 `1 ~ 89` - 同样不会出现 `1、2、3、5、7` - 页面会找到最接近且不超过该数字的九九乘法表乘积,再显示余数 - 例如题目是 `82` - 答案会显示:`9 × 9 = 81,余 1` - 如果刚好整除,则不显示“余 0” - 例如题目是 `81` - 答案会显示:`9 × 9 = 81` ### 已知乘数模式 - 默认关闭 - 开启后,出题阶段会额外显示一个乘数提示 - 例如题目是 `36`,提示乘数是 `4` - 答案阶段会继续保留这个提示,方便对照记忆 - 提示中的乘数字号会使用和题目数字一致的高亮颜色 - 答案阶段只显示与该乘数相关的结果 - 例如只显示:`4 × 9 = 36` ### 最近 30 题不重复 - 系统会记录最近 `30` 个题目数字 - 下一题会自动避开这 `30` 个数字 - 超过这个范围后,旧题目才会重新进入随机池 ### 整轮练习时长 - 每次点击“开始”后,会先按照设置的分钟数换算出本轮总题数 - 如果最后有余数,会补成完整的一题 - 练习会在做完最后一题后自动结束,不会中途截断 - 页面底部会弹出一个短暂提示,几秒后自动消失 - 练习中不显示总时长倒计时,避免分散注意力 ### 界面与交互 - 页面不显示“准备开始”“请想一想”“答案出来啦”等过程提示文字 - 阶段倒计时按整秒显示,更稳定易读 - 题目区和答案区高度尽量保持稳定,减少跳动 - 手机模式下会尽量使用更简洁的提示语,减少换行干扰 ## 项目结构 - `index.html`:页面结构 - `style.css`:页面样式 - `script.js`:练习逻辑、随机出题、计时与答案生成 - `README.md`:项目说明与部署记录 ## 线上地址与部署 ### 线上地址 - 正式访问地址:[https://99.zlxy.sd.cn/](https://99.zlxy.sd.cn/) ### 服务器信息 - SSH 登录:`root@118.190.206.142` - Caddy 项目目录:`/root/zlxy.sd.cn` - Caddy 配置文件:`/root/zlxy.sd.cn/Caddyfile` - Docker Compose 文件:`/root/zlxy.sd.cn/docker-compose.yml` - 站点静态文件目录:`/root/zlxy.sd.cn/www/99` ### 当前部署方式 - 使用 `caddy:alpine` 容器部署 - `docker-compose.yml` 中将 `/root/zlxy.sd.cn/www` 挂载到容器内的 `/usr/share/caddy` - `99.zlxy.sd.cn` 在 Caddy 中配置为: - `root * /usr/share/caddy/99` - `file_server` - `encode gzip` ### 更新部署的方法 1. 在本地完成页面修改 2. 准备要同步的静态文件: - `index.html` - `script.js` - `style.css` 3. 登录服务器: ```bash ssh root@118.190.206.142 ``` 4. 如有需要,先备份线上文件: ```bash ts=$(date +%Y%m%d%H%M%S) mkdir -p /root/zlxy.sd.cn/www/99/.backup-$ts cp -a /root/zlxy.sd.cn/www/99/index.html /root/zlxy.sd.cn/www/99/script.js /root/zlxy.sd.cn/www/99/style.css /root/zlxy.sd.cn/www/99/.backup-$ts/ ``` 5. 从本地同步文件到服务器: ```bash scp index.html script.js style.css root@118.190.206.142:/root/zlxy.sd.cn/www/99/ ``` 6. 验证线上内容: ```bash curl -I https://99.zlxy.sd.cn/ curl https://99.zlxy.sd.cn/script.js | grep RECENT_VALUE_LIMIT ``` ### 部署说明 - 这是静态文件部署,通常不需要重启 Caddy - 因为 Caddy 直接读取挂载目录中的文件,覆盖后一般会立即生效 - 如果浏览器有缓存,可强制刷新后再检查页面 ## 适用场景 - 孩子练习九九乘除法口算 - 通过乘积反推乘数,训练乘法逆向思维 - 练习基础除法和带余数除法 - 锻炼快速心算和口算反应 - 家长陪练 - 课堂或家庭快速口算训练