/** * 格子仿画 - 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]; }