# king_math **Repository Path**: jinamin/king_math ## Basic Information - **Project Name**: king_math - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-27 - **Last Updated**: 2026-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数学小星球 面向小学数学的静态学习应用。直接在浏览器打开 `index.html`,即可使用教材目录、动画课程、数学探索和测评。 ## 本地检查 在项目目录执行: ```powershell npm ci npm run test:full ``` 检查脚本使用 Playwright,在 Windows 默认启动 Microsoft Edge。优先使用项目环境中的 Playwright,也支持 Codex 自带的运行时。其他环境需要安装 Playwright 和对应浏览器;可通过 `PLAYWRIGHT_MODULE` 指定模块路径,通过 `PLAYWRIGHT_CHANNEL` 指定浏览器渠道。 检查范围: - 所有入口脚本的语法、教材与奥数场景、题目插图生成以及无效坐标。 - 题目选项、答案索引、填空答案的基本结构;独立复算可识别的纯算式题及数值等式。 - 北师大三年级上册 27 个正式课时的巩固题入口、9 份测评的完整答题与完成状态、填空纠错和全角数字输入。 - 北师大三年级下册、人教四年级下册新增 174 道题的独立答案参照与解析等式检查,53 个正式课时入口及 17 份单元测评完整作答。 - 全部 24 册教材的正式课时巩固题、单元测评覆盖断言,单元导学单独统计。 - 平均分场景的物品数量、分组及物品的画面边界。 - 多题测评必须全部答对才记录完成,完成状态刷新后保留。 - 角度滑杆、端点拖动、键盘调整和还原例题。 - 分数点选、键盘选择、取零份与讲解同步。 - 参数增减按钮及边界禁用,分数讲解中的单位分数关系。 - 减法角色移动方向与弧线一致,数轴终点拖动、键盘调整与零步长。 - 钟面指针数量、半时时针位置、秒与分时指针联动,分针拨动跨整点与跨午夜。 - 连续走过一小时、跨午夜后的时分结果,以及页面隐藏后停止走时。 - 面积方格边界与数量、满十换一前后总量守恒、分数细分前后涂色量相等及参数约束。 - 探索后保留当前参数重播、暂停与继续;演示结束停在当前幕。 - 目标拨钟隐藏数字钟,并区分分针错误、时针错误与正确答案。 - 年龄题按题干重新计算选中答案,核对解析中的简单算式;新增题型需要补充审校规则。 - 年龄动画逐人增长、年龄和计算、零年与七年参数和手机显示。 - 错题答对后立即返回首页,旧页面的延迟刷新不会覆盖首页。 - 首次答对、三天间隔复习、提示后答对和手动归档的状态区分与刷新持久化。 - 页面隐藏或离开时暂停课程,返回后保持暂停,手动继续可恢复播放。 - 圆面积演示保留同一组扇形的形状,支持 8、16、32、64 份切换、拼接进度和统一暂停重播;独立抽样检查拼接不重叠,检查底与高随份数增加分别趋近 πr、r。 - 三角形支持顶点拖动与键盘调整,使用实际内角平移、旋转拼成平角;对 255 种形状以向量夹角独立复算,角度标注分别四舍五入。 - 圆环课使用大圆减同心小圆的图示;首次答错不直接显示完整解析;错题到期筛选及每日提前练习不延后复习日期。 - 320、390、768、1280 像素宽度下的页面横向溢出。 检查使用独立浏览器会话,不会修改日常浏览器的学习记录。验收截图输出至 `tests/artifacts/`。几何边界检查不替代人工教学内容审核。 `tests/artifacts/coverage.json` 同时输出每册教材的课时入口、独立巩固题组和单元测评覆盖数量,课时入口包含单元导学。优化优先级与验收建议见 `OPTIMIZATION.md`。 `tests/artifacts/age-content.json` 输出年龄题的题干、选中答案和重新计算结果。该检查覆盖现有年龄题的四类数量关系及解析中的简单二元算式,不代表全部学科内容已经审校通过。 `tests/artifacts/content.json` 输出题目结构与独立算式检查数量。算式检查支持四则运算、括号、小数、百分数及教材中的分数与带分数写法,不使用动态代码执行。未识别的题目计入 `needsSemanticReview`,仍需按教学语义审校。 `tests/artifacts/bs3-content.json` 输出北师大三年级上册新增 90 道题的专门检查结果:题组覆盖、题目不重复、解析算式复算,以及可识别的里程、周长、时间、闰年等语义检查。移动端截图为 `bs3-perimeter-mobile.png` 和 `bs3-calendar-mobile.png`。这些检查不能代替逐题教学审校。 `tests/artifacts/complete-content.json` 输出本轮新增 174 道题的答案与解析检查,`complete-browser.json` 记录对应课时、测评和探索操作的浏览器验证结果。面积、进位、分数等值与错题复习截图也保存在同一目录。 运行 `node tests/review.cjs` 可单独检查复习状态规则。运行 `node tests/performance.cjs after` 可测量移动视口、CPU 降速条件下的启动、路由切换和进度读取次数,报告输出至 `tests/artifacts/performance-after.json`。测量结果受设备与浏览器影响。 运行 `node tests/geometry-lab.cjs` 可单独检查贴地滚圆量周长、割圆拼接、三角形拼角、圆环图示、提示与到期筛选;滚圆包含 404 个绘图快照与 3 种错误注入。结果在 `tests/artifacts/geometry-lab.json`,截图以 `geometry-` 开头。这些检查也包含在完整检查中。 运行 `node tests/scene-integrity.cjs` 可检查 3159 处场景引用的静态文字边界、136 处数字表格和统计表在四种视口下的排版,以及物体数量、画圆、对折、两块拼形的面积和阶梯方格。圆的认识、画圆、对折、底面积与量周长分别配图;固定拼形题设不使用普通长方形调参。报告为 `tests/artifacts/scene-integrity.json`,真实页面截图以 `integrity-` 开头,该专项已纳入完整检查。边界检查不等于全部图形遮挡和动画过程均已审校。 运行 `node tests/teaching-correctness.cjs` 可单独检查角度题图形、平行四边形割补、展开图适用范围、圆柱圆锥体积条件、商为零的边界及平均数图的比例和精度,包含错误注入和四种视口检查;报告在 `tests/artifacts/teaching-correctness.json`,截图以 `teaching-` 开头。该专项已纳入完整检查,覆盖范围见 `CONTENT_AUDIT.md`。 ## 内容维护 截至 2026-10-30,内容检查覆盖全库 4311 道题。通用规则独立复算 1103 道题、5499 条数值关系及 510 处带单位关系;74 道重点题采用独立答案参照,80 次故意改错均被检查发现。完整检查会让全部 4311 道题通过正式判题组件,验证正确答案、错误答案和重做。最近一轮应用题及百分数动画复核见 [APPLICATION_REVIEW.md](APPLICATION_REVIEW.md)。 具体问题和覆盖边界见 [CONTENT_AUDIT.md](CONTENT_AUDIT.md)。运行 `node tests/full-content.cjs`、`node tests/correctness-regressions.cjs`、`node tests/semantic-content.cjs` 可单独执行内容检查。`full-content.json` 保留逐题路径、规则与未解析关系;判分通过、解析引用一致或内容指纹相同都不等于独立数学证明,当前结果不替代实体教材核对和出版终审。 `js/app.js` 负责页面和交互编排;`js/player.js` 负责播放计时与暂停;`js/router.js` 分派路由;`js/parent-guidance.js` 提供家长讲解;`js/answers.js` 统一答案规范化。`js/records.js` 管理保存、迁移和备份,`js/record-catalog.js` 对照当前题库更新错题快照,`js/content-loader.js` 按教材加载题库。`js/scenes-*.js` 负责动画场景,`js/units-*.js` 等数据文件维护教材课程和题目。修改发布文件后应同步更新相应资源版本号。 ## 开发与学习记录 执行 `npm ci` 安装锁定版本的测试依赖。Windows 默认使用已安装的 Edge;其他平台先执行 `npx playwright install chromium`。可通过 `PLAYWRIGHT_CHANNEL` 指定浏览器频道,通过 `PLAYWRIGHT_MODULE` 指定运行时模块路径。 - `npm test`:记录恢复、复习规则、数学模型、全库内容和逐课验收指纹的快速检查。 - `npm run test:full`:完整教学与浏览器回归,再执行存储故障、备份恢复和按需加载专项。 - `npm run test:browser`:仅执行本轮浏览器专项,包括 12 组教材题库的加载一致性。 - `npm run test:performance`:本地文件测量及 HTTP 冷缓存、限速网络对比,结果写入 `tests/artifacts/performance-*.json`。 - `npm run audit:courses`:生成逐课台账;不自动标记人工验收通过。 HTTP 首页不加载 13 个练习题库文件,进入课程或测评时加载对应教材年级的题库,进入错题本时补齐全库。直接打开本地 `index.html` 保持完整离线加载;`?content=all` 用于完整加载对照。加载失败可原地重试,切页后旧请求不会覆盖新页面。 页面顶部可以备份、恢复学习记录。保存失败时,页面明确显示待保存状态,记录暂留当前页面内存,可重试或备份;关闭页面前仍未保存且未备份的记录无法保留。JSON 备份包含进度、错题、继续学习位置和设置。恢复采用合并策略,同一记录优先保留本地版本;恢复数据先写入事务日志,中途失败时仍可读取已提交的完整恢复记录。 进度与继续学习位置使用教材、册别和课时数据键定位;错题使用课时上下文与题目标识,不再依赖题目数组下标。需要在修改题干后延续同一题目时,应从首次发布起为题库对象提供稳定 `id`;未设置时以题干识别,修改题干会视为新题。答案或图示版本改变后,错题复习证据重新累计。`js/record-legacy.js` 是 2026-10-31 旧位置的冻结映射,后续调整课程顺序时不能重新生成或覆盖它。现有课时数据键也应保持稳定。 2026-10-28 更新圆柱圆锥体积:`js/solid-volume.js` 提供圆柱内部的体积分解、圆柱圆形分层、三杯圆锥水倒满圆柱、一圆柱水分装三个圆锥杯、只改变圆锥高度的对比,支持鼠标、触屏和键盘旋转。第一幕把圆锥直接放进透明圆柱,外侧剩余部分沿对称面分成左右两块弯曲体;三块体积相等,支持连续拆开、合拢与滑杆调节,并列出剩余体积及对半计算。两块弯曲体不标成圆锥。倒水页保留三个圆锥容量相加等于圆柱容量的图形等式,每杯对应一种颜色。新增分装页同时显示一个圆柱和三个尖端朝下、杯口朝上的圆锥杯,逐杯显示容量、圆柱剩余水量和转移方向;桌面横排,窄屏两行排列。奥数及人教、北师大相关课时共用此组件。底面积、高、模型尺寸、体积和水位关联计算;不能整除的体积使用精确带分数。分解与倒水应用已知公式展示数量关系,不作为体积公式的独立数学证明。 Three.js 0.186.1 已打包在 `vendor/`,只在立体实验中加载,直接打开 `index.html` 也可离线使用。无法运行 WebGL 时使用可拆合的 SVG 投影与公式参数调整,分装实验可逐步查看三杯状态。运行 `node tests/solid-volume.cjs` 可单独检查数学模型、网格封闭性与体积、抽样点所属区域、拆合与暂停、两种朝向的圆锥水位体积、双向倒水及水量守恒、旋转、教材入口、窄屏显示和降级;截图及报告在 `tests/artifacts/volume-*.png` 与 `solid-volume.json`。完整检查也包含此专项。 目前 608 个正式课时均有独立巩固题组,194 个单元均有测评;另有 194 个单元导学入口。后续仍需深化题组的难度层次,逐步增强静态讲解场景,并校核不同教材版本的知识点覆盖。现有课程数量不能直接视为教学内容完整度。 ## 发布 完整检查通过后,执行 `node tests/build-release.cjs`,生成仅含页面、样式、脚本、离线依赖、许可证及文件校验清单的独立发布目录。脚本打印目录绝对路径。再执行 `node tests/release-smoke.cjs <发布目录>`,通过 HTTP 验证六个年级代表课程、奥数、练习、窄屏和桌面布局,核对包内文件 SHA-256,并检查资源加载和浏览器异常。 将发布目录上传到 Cloudflare Pages;上传 ZIP 时应把目录内的文件放在 ZIP 根部,确保根部有 `index.html`。`release-manifest.json` 记录源码提交、打包时工作区状态、资源版本和文件摘要,可用于核对线上是否为本次发布。发布包不包含测试报告、截图或本地工具数据。学习记录保存在当前浏览器中,换浏览器、换站点地址或清除浏览器数据不会自动迁移记录。 发布冒烟检查只覆盖列出的代表页面;课程内容审核和逐课人工验收状态仍以专项报告及 `tests/course-acceptance.json` 为准。