From ec3e79ad29faabdd467abce5c0b1620aebd3fd99 Mon Sep 17 00:00:00 2001 From: R524809 Date: Wed, 24 Dec 2025 18:15:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:2.6.2=20=E5=87=91=E5=8D=81=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/app.json | 3 +- miniprogram/assets/mathEntrance/make-ten.png | Bin 0 -> 23963 bytes miniprogram/constants/mathFunctions.ts | 8 + miniprogram/mathPages/makeTen/makeTen.json | 13 + miniprogram/mathPages/makeTen/makeTen.less | 3 + miniprogram/mathPages/makeTen/makeTen.ts | 168 ++++++++ miniprogram/mathPages/makeTen/makeTen.wxml | 6 + .../mathPages/shared/service/makeTenDraw.ts | 372 ++++++++++++++++++ miniprogram/service/baseDraw.ts | 39 ++ project.private.config.json | 11 +- 10 files changed, 620 insertions(+), 3 deletions(-) create mode 100644 miniprogram/assets/mathEntrance/make-ten.png create mode 100644 miniprogram/mathPages/makeTen/makeTen.json create mode 100644 miniprogram/mathPages/makeTen/makeTen.less create mode 100644 miniprogram/mathPages/makeTen/makeTen.ts create mode 100644 miniprogram/mathPages/makeTen/makeTen.wxml create mode 100644 miniprogram/mathPages/shared/service/makeTenDraw.ts diff --git a/miniprogram/app.json b/miniprogram/app.json index d7e3575..b64f564 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -19,7 +19,8 @@ "countingSelect/countingSelect", "numberDecompose/numberDecompose", "numberSort/numberSort", - "numberObjectMatch/numberObjectMatch" + "numberObjectMatch/numberObjectMatch", + "makeTen/makeTen" ], "independent": false }, diff --git a/miniprogram/assets/mathEntrance/make-ten.png b/miniprogram/assets/mathEntrance/make-ten.png new file mode 100644 index 0000000000000000000000000000000000000000..0a7bbf88ede9ace424f3c1f1149a6552e743af36 GIT binary patch literal 23963 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 a4R8F=q3(#zBWTs?pG=G`&gL2Y7V&SqkoyV% literal 0 HcmV?d00001 diff --git a/miniprogram/constants/mathFunctions.ts b/miniprogram/constants/mathFunctions.ts index fdb5d29..9301c7a 100644 --- a/miniprogram/constants/mathFunctions.ts +++ b/miniprogram/constants/mathFunctions.ts @@ -149,4 +149,12 @@ export const MATH_FUNCTION_TYPES: MathFunctionType[] = [ icon: '🔢', img: '/assets/mathEntrance/number-decompose-20.png', }, + { + id: 'make-ten', + page: 'makeTen', + title: '凑十法练习', + desc: '通过凑十法学习20以内进位加法', + icon: '➕', + img: '/assets/mathEntrance/make-ten.png', + }, ]; diff --git a/miniprogram/mathPages/makeTen/makeTen.json b/miniprogram/mathPages/makeTen/makeTen.json new file mode 100644 index 0000000..b08bc1b --- /dev/null +++ b/miniprogram/mathPages/makeTen/makeTen.json @@ -0,0 +1,13 @@ +{ + "navigationBarTitleText": "凑十法练习", + "navigationBarBackgroundColor": "#FFD719", + "homeButton": true, + "backgroundColor": "#F6F6F6", + "enablePullDownRefresh": false, + "usingComponents": { + "toy-button": "../../ui/button/button", + "share-guide-popup": "../../components/share-guide-popup/share-guide-popup", + "math-bottom-buttons": "../../components/math-bottom-buttons/math-bottom-buttons", + "draw-ad": "../../components/draw-ad/draw-ad" + } +} diff --git a/miniprogram/mathPages/makeTen/makeTen.less b/miniprogram/mathPages/makeTen/makeTen.less new file mode 100644 index 0000000..9c89de0 --- /dev/null +++ b/miniprogram/mathPages/makeTen/makeTen.less @@ -0,0 +1,3 @@ +// 凑十法练习页面样式 + +@import '../../base/baseDrawPage.wxss'; \ No newline at end of file diff --git a/miniprogram/mathPages/makeTen/makeTen.ts b/miniprogram/mathPages/makeTen/makeTen.ts new file mode 100644 index 0000000..eebbd37 --- /dev/null +++ b/miniprogram/mathPages/makeTen/makeTen.ts @@ -0,0 +1,168 @@ +import MakeTenDraw from '../shared/service/makeTenDraw'; +import { + createMathPage, + CanvasDataState, +} from '../shared/common/mathPageMixin'; + +createMathPage({ + canvas: null as Canvas | null, + ctx: null as RenderingContext | null, + boxHeight: 0, + boxWidth: 0, + drawService: null as MakeTenDraw | null, + makeTenData: null as { + problems: Array<{ + left: number; + right: number; + result: number; + }>; + } | null, + + data: { + pageTitle: '凑十法练习', + subTitle: '通过凑十法学习20以内进位加法', + functionId: '', + hasContent: false, + showShareDialog: false, + } as CanvasDataState, + + onLoad(options: { id?: string }) { + const functionId = options.id || 'make-ten'; + this.initPageInfo(functionId, '凑十法练习'); + }, + + onReady() { + this.initCanvas({ + createDrawService: ( + canvas: Canvas, + ctx: RenderingContext, + options?: Record, + ) => { + return new MakeTenDraw(canvas, ctx, options); + }, + drawServiceOptions: { + subTitle: this.data.subTitle, + }, + onCanvasReady: () => { + // 初始随机生成 + this.onRandom(); + }, + }); + }, + + /** + * 绘制Canvas内容 + */ + async drawCanvas() { + if (!this.ctx || !this.drawService || !this.makeTenData) { + return; + } + + try { + await this.drawService.draw(this.makeTenData); + this.setData({ hasContent: true }); + } catch (error) { + console.error('绘制失败:', error); + this.setData({ hasContent: false }); + } + }, + + /** + * 随机生成 + */ + onRandom() { + const problems: Array<{ + left: number; + right: number; + result: number; + }> = []; + // 用于记录已生成的题目,避免重复(9+2 和 2+9 视为不同) + const usedProblems = new Set(); + + // 生成9道题目(3行3列) + let attempts = 0; + const maxAttempts = 1000; // 最大尝试次数,避免无限循环 + + while (problems.length < 9 && attempts < maxAttempts) { + attempts++; + // 生成两个数,确保: + // 1. 两个加数都在1-9之间(不能是10) + // 2. 和大于10且小于等于20(需要凑十法) + // 3. 大数至少是6(因为5无法满足条件:5 + 最大小数4 = 9 < 11) + let left: number; + let right: number; + + // 随机决定大数在前还是在后 + const bigFirst = Math.random() < 0.5; + + if (bigFirst) { + // 大数在前:left 在 6-9 之间,right 在 1-9 之间 + // 确保 left + right >= 11 且 left + right <= 20 + left = Math.floor(Math.random() * 4) + 6; // 6-9 + // right 的最小值:确保 left + right >= 11,即 right >= 11 - left + const minRight = Math.max(1, 11 - left); + // right 的最大值:确保 left + right <= 20,即 right <= 20 - left,且 right <= 9 + const maxRight = Math.min(9, 20 - left); + // 确保 right < left(因为 left 是大数) + const actualMaxRight = Math.min(maxRight, left - 1); + // 检查是否有有效的 right 值 + if (actualMaxRight >= minRight) { + right = + Math.floor( + Math.random() * (actualMaxRight - minRight + 1), + ) + minRight; + } else { + // 如果无法生成有效值,跳过本次循环 + continue; + } + } else { + // 大数在后:left 在 1-9 之间,right 在 6-9 之间 + // 确保 left + right >= 11 且 left + right <= 20 + right = Math.floor(Math.random() * 4) + 6; // 6-9 + // left 的最小值:确保 left + right >= 11,即 left >= 11 - right + const minLeft = Math.max(1, 11 - right); + // left 的最大值:确保 left + right <= 20,即 left <= 20 - right,且 left <= 9 + const maxLeft = Math.min(9, 20 - right); + // 确保 left < right(因为 right 是大数) + const actualMaxLeft = Math.min(maxLeft, right - 1); + // 检查是否有有效的 left 值 + if (actualMaxLeft >= minLeft) { + left = + Math.floor( + Math.random() * (actualMaxLeft - minLeft + 1), + ) + minLeft; + } else { + // 如果无法生成有效值,跳过本次循环 + continue; + } + } + + // 检查是否重复(9+2 和 2+9 视为不同) + const problemKey = `${left},${right}`; + if (usedProblems.has(problemKey)) { + // 如果已存在,跳过本次循环,重新生成 + continue; + } + + // 添加到已使用集合 + usedProblems.add(problemKey); + + const result = left + right; + problems.push({ + left, + right, + result, + }); + } + + // 如果尝试次数过多仍未生成足够的题目,输出警告 + if (problems.length < 9) { + console.warn( + `只生成了 ${problems.length} 道题目,可能符合条件的题目组合不足`, + ); + } + + this.makeTenData = { problems }; + this.drawCanvas(); + }, +}); diff --git a/miniprogram/mathPages/makeTen/makeTen.wxml b/miniprogram/mathPages/makeTen/makeTen.wxml new file mode 100644 index 0000000..e44ab32 --- /dev/null +++ b/miniprogram/mathPages/makeTen/makeTen.wxml @@ -0,0 +1,6 @@ + + + +