147 lines
3.9 KiB
TypeScript
147 lines
3.9 KiB
TypeScript
export interface MathFunctionType {
|
||
id: string;
|
||
page?: string;
|
||
title: string;
|
||
desc: string;
|
||
icon: string;
|
||
}
|
||
|
||
export const MATH_FUNCTION_TYPES: MathFunctionType[] = [
|
||
// 第一阶段:认识数字(最基础)
|
||
{
|
||
id: 'number-find',
|
||
page: 'numberFind',
|
||
title: '找数字,涂一涂',
|
||
desc: '找一找下面相同的数字,涂上颜色',
|
||
icon: '🔍',
|
||
},
|
||
{
|
||
id: 'number-write',
|
||
page: 'numberFind',
|
||
title: '看数字,写一写',
|
||
desc: '看数字,按笔画顺序写一写',
|
||
icon: '✏️',
|
||
},
|
||
{
|
||
id: 'number-coloring',
|
||
page: 'countMatch',
|
||
title: '按数字,涂颜色',
|
||
desc: '按数字给相应的圆圈涂上颜色',
|
||
icon: '🎨',
|
||
},
|
||
// 第二阶段:数数与计数
|
||
{
|
||
id: 'counting-matching',
|
||
page: 'countMatch',
|
||
title: '数一数,连一连',
|
||
desc: '通过连线配对数字和对应的数量图形',
|
||
icon: '🔗',
|
||
},
|
||
{
|
||
id: 'counting-select',
|
||
page: 'countingSelect',
|
||
title: '数一数,选一选',
|
||
desc: '数出物品数量,圈出正确答案',
|
||
icon: '✓',
|
||
},
|
||
{
|
||
id: 'counting-fill',
|
||
page: 'countingSelect',
|
||
title: '数一数,填一填',
|
||
desc: '数出物品数量,填写对应的数字',
|
||
icon: '✏️',
|
||
},
|
||
{
|
||
id: 'compare',
|
||
page: 'compare',
|
||
title: '数一数,比大小',
|
||
desc: '比较数量大小,在 ⭕️ 中填入>、<、=',
|
||
icon: '⚖️',
|
||
},
|
||
// 第三阶段:数字序列
|
||
{
|
||
id: 'missing-number',
|
||
page: 'missingNumber',
|
||
title: '填上缺少的数字',
|
||
desc: '在数字序列中找出并填写缺失的数字',
|
||
icon: '❓',
|
||
},
|
||
{
|
||
id: 'number-decompose',
|
||
page: 'numberDecompose',
|
||
title: '10以内数的分与合',
|
||
desc: '把数字分一分,合一合',
|
||
icon: '🔢',
|
||
},
|
||
// 第四阶段:简单运算(从易到难)
|
||
{
|
||
id: 'addition-5',
|
||
page: 'addition',
|
||
title: '5以内加法',
|
||
desc: '练习5以内的加法运算,图形化展示',
|
||
icon: '➕',
|
||
},
|
||
{
|
||
id: 'addition-10',
|
||
page: 'addition',
|
||
title: '10以内加法',
|
||
desc: '练习10以内的加法运算,图形化展示',
|
||
icon: '➕',
|
||
},
|
||
{
|
||
id: 'subtraction-10',
|
||
page: 'addition',
|
||
title: '10以内减法',
|
||
desc: '练习10以内的减法运算,图形化展示',
|
||
icon: '➖',
|
||
},
|
||
{
|
||
id: 'addition-subtraction-10',
|
||
page: 'addition',
|
||
title: '10以内加减法',
|
||
desc: '练习10以内的加法和减法混合运算',
|
||
icon: '±',
|
||
},
|
||
{
|
||
id: 'number-decompose-20',
|
||
page: 'numberDecompose',
|
||
title: '20以内数的分与合',
|
||
desc: '把数字分一分,合一合',
|
||
icon: '🔢',
|
||
},
|
||
];
|
||
|
||
/**
|
||
* 数字颜色映射(柔和12色)
|
||
* 用于数学页面的数字显示和涂色
|
||
*/
|
||
export const NUMBER_COLORS: Record<number, string> = {
|
||
1: '#ED6D50', // 柔和红色
|
||
2: '#F9A857', // 柔和橙色
|
||
3: '#FFE176', // 柔和黄色
|
||
4: '#B2D94B', // 柔和黄绿色
|
||
5: '#53D1B6', // 柔和绿色
|
||
6: '#6CD2EA', // 柔和青色
|
||
7: '#79A7ED', // 柔和蓝色
|
||
8: '#9C98DE', // 柔和紫色
|
||
9: '#F2A4C0', // 柔和粉色
|
||
10: '#FC9B6C', // 柔和橙红色
|
||
11: '#BC8F71', // 柔和棕色
|
||
12: '#666666', // 柔和黑灰
|
||
};
|
||
|
||
/**
|
||
* 获取所有数字颜色数组
|
||
*/
|
||
export function getNumberColors(): string[] {
|
||
return Object.values(NUMBER_COLORS);
|
||
}
|
||
|
||
/**
|
||
* 随机获取一个数字颜色
|
||
*/
|
||
export function getRandomNumberColor(): string {
|
||
const colors = getNumberColors();
|
||
return colors[Math.floor(Math.random() * colors.length)];
|
||
}
|