feat: 开始开发专注力系列

This commit is contained in:
R524809
2025-12-11 17:47:22 +08:00
parent 3c0e2af10d
commit 3648ccc494
61 changed files with 1348 additions and 34 deletions
@@ -0,0 +1,117 @@
/**
* 格子仿画 - 3x3 网格形状数据
* 适用于入门级,低龄儿童
*/
import { GridCell, ShapeTemplate } from '../types/gridTypes';
// ==================== 3x3 形状模板 ====================
/** 简单十字形 */
export const CROSS_3X3: ShapeTemplate = {
id: 'cross-3x3-001',
name: '十字形',
recommendedSize: { rows: 3, cols: 3 },
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FFFF00' }, // 顶部
{ x: 0, y: 1, color: '#FFFF00' }, // 左侧
{ x: 1, y: 1, color: '#FFFF00' }, // 中心
{ x: 2, y: 1, color: '#FFFF00' }, // 右侧
{ x: 1, y: 2, color: '#FFFF00' }, // 底部
],
};
/** L形 */
export const L_SHAPE_3X3: ShapeTemplate = {
id: 'l-3x3-001',
name: 'L形',
recommendedSize: { rows: 3, cols: 3 },
category: 'geometric',
difficulty: 1,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#0000FF' },
{ x: 0, y: 1, color: '#0000FF' },
{ x: 0, y: 2, color: '#0000FF' },
{ x: 1, y: 2, color: '#0000FF' },
{ x: 2, y: 2, color: '#0000FF' },
],
};
/** 对角线 */
export const DIAGONAL_3X3: ShapeTemplate = {
id: 'diagonal-3x3-001',
name: '对角线',
recommendedSize: { rows: 3, cols: 3 },
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#FF0000' },
{ x: 1, y: 1, color: '#FF0000' },
{ x: 2, y: 2, color: '#FF0000' },
],
};
/** 小房子 */
export const HOUSE_3X3: ShapeTemplate = {
id: 'house-3x3-001',
name: '小房子',
recommendedSize: { rows: 3, cols: 3 },
category: 'object',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FF0000' }, // 屋顶
{ x: 0, y: 1, color: '#FFFF00' }, // 左侧墙
{ x: 1, y: 1, color: '#FFFF00' }, // 中间墙
{ x: 2, y: 1, color: '#FFFF00' }, // 右侧墙
{ x: 1, y: 2, color: '#8B4513' }, // 门
],
};
/** 小星星 */
export const STAR_3X3: ShapeTemplate = {
id: 'star-3x3-001',
name: '小星星',
recommendedSize: { rows: 3, cols: 3 },
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FFD700' }, // 顶部
{ x: 0, y: 1, color: '#FFD700' },
{ x: 1, y: 1, color: '#FFD700' }, // 中心
{ x: 2, y: 1, color: '#FFD700' },
{ x: 1, y: 2, color: '#FFD700' }, // 底部
],
};
/** 所有 3x3 形状模板 */
export const ALL_3X3_SHAPES: ShapeTemplate[] = [
CROSS_3X3,
L_SHAPE_3X3,
DIAGONAL_3X3,
HOUSE_3X3,
STAR_3X3,
];
/**
* 随机获取一个 3x3 形状
*/
export function getRandom3x3Shape(): ShapeTemplate {
const randomIndex = Math.floor(Math.random() * ALL_3X3_SHAPES.length);
return ALL_3X3_SHAPES[randomIndex];
}