Files
doodle-mini/miniprogram/focusPages/shared/shapes/gridShapes5x5.ts
T
2025-12-15 17:00:06 +08:00

969 lines
34 KiB
TypeScript

/**
* 格子仿画 - 5x5 网格形状数据
* 适用于常用尺寸,适中难度
*/
import { ShapeTemplate } from '../types/gridTypes';
// ==================== 5x5 形状模板 ====================
/** 所有 5x5 形状模板 */
export const ALL_5X5_SHAPES: ShapeTemplate[] = [
/** 十字形 */
{
id: 'cross-5x5-001',
name: '十字形',
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#FFE176' }, // 顶部
{ x: 2, y: 1, color: '#FFE176' },
{ x: 0, y: 2, color: '#FFE176' }, // 左侧
{ x: 1, y: 2, color: '#FFE176' },
{ x: 2, y: 2, color: '#FFE176' }, // 中心
{ x: 3, y: 2, color: '#FFE176' },
{ x: 4, y: 2, color: '#FFE176' }, // 右侧
{ x: 2, y: 3, color: '#FFE176' },
{ x: 2, y: 4, color: '#FFE176' }, // 底部
],
},
/** X形 */
{
id: 'x-5x5-001',
name: 'X形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#79A7ED' },
{ x: 1, y: 1, color: '#79A7ED' },
{ x: 2, y: 2, color: '#79A7ED' },
{ x: 3, y: 3, color: '#79A7ED' },
{ x: 4, y: 4, color: '#79A7ED' },
{ x: 4, y: 0, color: '#79A7ED' },
{ x: 3, y: 1, color: '#79A7ED' },
{ x: 1, y: 3, color: '#79A7ED' },
{ x: 0, y: 4, color: '#79A7ED' },
],
},
/** 星星 */
{
id: 'star-5x5-001',
name: '星星',
category: 'geometric',
difficulty: 3,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#FFE176' }, // 顶部
{ x: 1, y: 1, color: '#FFE176' },
{ x: 3, y: 1, color: '#FFE176' },
{ x: 0, y: 2, color: '#FFE176' },
{ x: 2, y: 2, color: '#FFE176' }, // 中心
{ x: 4, y: 2, color: '#FFE176' },
{ x: 1, y: 3, color: '#FFE176' },
{ x: 3, y: 3, color: '#FFE176' },
{ x: 2, y: 4, color: '#FFE176' }, // 底部
],
},
/** Z字形 */
{
id: 'zigzag-5x5-001',
name: 'Z字形',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#9C98DE' },
{ x: 1, y: 0, color: '#9C98DE' },
{ x: 2, y: 0, color: '#9C98DE' },
{ x: 2, y: 1, color: '#9C98DE' },
{ x: 1, y: 2, color: '#9C98DE' },
{ x: 0, y: 2, color: '#9C98DE' },
{ x: 0, y: 3, color: '#9C98DE' },
{ x: 1, y: 3, color: '#9C98DE' },
{ x: 2, y: 4, color: '#9C98DE' },
{ x: 3, y: 4, color: '#9C98DE' },
{ x: 4, y: 4, color: '#9C98DE' },
],
},
/** V字形 */
{
id: 'v-5x5-001',
name: 'V字形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#53D1B6' },
{ x: 4, y: 0, color: '#53D1B6' },
{ x: 0, y: 1, color: '#53D1B6' },
{ x: 4, y: 1, color: '#53D1B6' },
{ x: 1, y: 2, color: '#53D1B6' },
{ x: 3, y: 2, color: '#53D1B6' },
{ x: 2, y: 3, color: '#53D1B6' },
{ x: 2, y: 4, color: '#53D1B6' },
],
},
/** I字形 */
{
id: 'i-5x5-001',
name: 'I字形',
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F9A857' },
{ x: 2, y: 0, color: '#F9A857' },
{ x: 3, y: 0, color: '#F9A857' },
{ x: 2, y: 1, color: '#F9A857' },
{ x: 2, y: 2, color: '#F9A857' },
{ x: 2, y: 3, color: '#F9A857' },
{ x: 2, y: 4, color: '#F9A857' },
{ x: 1, y: 4, color: '#F9A857' },
{ x: 3, y: 4, color: '#F9A857' },
],
},
/** 棋盘格 */
{
id: 'checkerboard-5x5-001',
name: '棋盘格',
category: 'geometric',
difficulty: 3,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#FFE176' },
{ x: 2, y: 0, color: '#FFE176' },
{ x: 4, y: 0, color: '#FFE176' },
{ x: 1, y: 1, color: '#FFE176' },
{ x: 3, y: 1, color: '#FFE176' },
{ x: 0, y: 2, color: '#FFE176' },
{ x: 2, y: 2, color: '#FFE176' },
{ x: 4, y: 2, color: '#FFE176' },
{ x: 1, y: 3, color: '#FFE176' },
{ x: 3, y: 3, color: '#FFE176' },
{ x: 0, y: 4, color: '#FFE176' },
{ x: 2, y: 4, color: '#FFE176' },
{ x: 4, y: 4, color: '#FFE176' },
],
},
/** 心形(简化版) */
{
id: 'heart-5x5-001',
name: '心形',
category: 'object',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F2A4C0' },
{ x: 2, y: 0, color: '#F2A4C0' },
{ x: 3, y: 0, color: '#F2A4C0' },
{ x: 0, y: 1, color: '#F2A4C0' },
{ x: 2, y: 1, color: '#F2A4C0' },
{ x: 4, y: 1, color: '#F2A4C0' },
{ x: 1, y: 2, color: '#F2A4C0' },
{ x: 2, y: 2, color: '#F2A4C0' },
{ x: 3, y: 2, color: '#F2A4C0' },
{ x: 2, y: 3, color: '#F2A4C0' },
{ x: 2, y: 4, color: '#F2A4C0' },
],
},
/** 菱形 */
{
id: 'diamond-5x5-001',
name: '菱形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#F9A857' },
{ x: 1, y: 1, color: '#F9A857' },
{ x: 2, y: 1, color: '#F9A857' },
{ x: 3, y: 1, color: '#F9A857' },
{ x: 0, y: 2, color: '#F9A857' },
{ x: 1, y: 2, color: '#F9A857' },
{ x: 2, y: 2, color: '#F9A857' },
{ x: 3, y: 2, color: '#F9A857' },
{ x: 4, y: 2, color: '#F9A857' },
{ x: 1, y: 3, color: '#F9A857' },
{ x: 2, y: 3, color: '#F9A857' },
{ x: 3, y: 3, color: '#F9A857' },
{ x: 2, y: 4, color: '#F9A857' },
],
},
/** T形 */
{
id: 't-5x5-001',
name: 'T形',
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#53D1B6' },
{ x: 1, y: 0, color: '#53D1B6' },
{ x: 2, y: 0, color: '#53D1B6' },
{ x: 3, y: 0, color: '#53D1B6' },
{ x: 4, y: 0, color: '#53D1B6' },
{ x: 2, y: 1, color: '#53D1B6' },
{ x: 2, y: 2, color: '#53D1B6' },
{ x: 2, y: 3, color: '#53D1B6' },
{ x: 2, y: 4, color: '#53D1B6' },
],
},
/** U形 */
{
id: 'u-5x5-001',
name: 'U形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#6CD2EA' },
{ x: 4, y: 0, color: '#6CD2EA' },
{ x: 0, y: 1, color: '#6CD2EA' },
{ x: 4, y: 1, color: '#6CD2EA' },
{ x: 0, y: 2, color: '#6CD2EA' },
{ x: 4, y: 2, color: '#6CD2EA' },
{ x: 0, y: 3, color: '#6CD2EA' },
{ x: 1, y: 3, color: '#6CD2EA' },
{ x: 2, y: 3, color: '#6CD2EA' },
{ x: 3, y: 3, color: '#6CD2EA' },
{ x: 4, y: 3, color: '#6CD2EA' },
],
},
/** 圆形(5x5近似) */
{
id: 'circle-5x5-001',
name: '圆形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#9C98DE' },
{ x: 2, y: 0, color: '#9C98DE' },
{ x: 3, y: 0, color: '#9C98DE' },
{ x: 0, y: 1, color: '#9C98DE' },
{ x: 4, y: 1, color: '#9C98DE' },
{ x: 0, y: 2, color: '#9C98DE' },
{ x: 4, y: 2, color: '#9C98DE' },
{ x: 0, y: 3, color: '#9C98DE' },
{ x: 4, y: 3, color: '#9C98DE' },
{ x: 1, y: 4, color: '#9C98DE' },
{ x: 2, y: 4, color: '#9C98DE' },
{ x: 3, y: 4, color: '#9C98DE' },
],
},
/** 三角形 */
{
id: 'triangle-5x5-001',
name: '三角形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#F9A857' },
{ x: 1, y: 1, color: '#F9A857' },
{ x: 2, y: 1, color: '#F9A857' },
{ x: 3, y: 1, color: '#F9A857' },
{ x: 0, y: 2, color: '#F9A857' },
{ x: 1, y: 2, color: '#F9A857' },
{ x: 2, y: 2, color: '#F9A857' },
{ x: 3, y: 2, color: '#F9A857' },
{ x: 4, y: 2, color: '#F9A857' },
{ x: 0, y: 3, color: '#F9A857' },
{ x: 1, y: 3, color: '#F9A857' },
{ x: 2, y: 3, color: '#F9A857' },
{ x: 3, y: 3, color: '#F9A857' },
{ x: 4, y: 3, color: '#F9A857' },
{ x: 0, y: 4, color: '#F9A857' },
{ x: 1, y: 4, color: '#F9A857' },
{ x: 2, y: 4, color: '#F9A857' },
{ x: 3, y: 4, color: '#F9A857' },
{ x: 4, y: 4, color: '#F9A857' },
],
},
/** 多色星星 */
{
id: 'colorful-star-5x5-001',
name: '多色星星',
category: 'geometric',
difficulty: 3,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#FFE176' }, // 顶部 - 黄色
{ x: 1, y: 1, color: '#F9A857' }, // 左上 - 橙色
{ x: 3, y: 1, color: '#F9A857' }, // 右上 - 橙色
{ x: 0, y: 2, color: '#ED6D50' }, // 左 - 红色
{ x: 2, y: 2, color: '#FFE176' }, // 中心 - 黄色
{ x: 4, y: 2, color: '#ED6D50' }, // 右 - 红色
{ x: 1, y: 3, color: '#F9A857' }, // 左下 - 橙色
{ x: 3, y: 3, color: '#F9A857' }, // 右下 - 橙色
{ x: 2, y: 4, color: '#FFE176' }, // 底部 - 黄色
],
},
/** 多色心形 */
{
id: 'colorful-heart-5x5-001',
name: '多色心形',
category: 'object',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 0, color: '#ED6D50' }, // 红色
{ x: 3, y: 0, color: '#F2A4C0' }, // 粉色
{ x: 0, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 2, color: '#ED6D50' }, // 红色
{ x: 3, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 2, y: 4, color: '#ED6D50' }, // 红色
],
},
/** 边框 */
{
id: 'frame-5x5-001',
name: '边框',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#B2D94B' },
{ x: 1, y: 0, color: '#B2D94B' },
{ x: 2, y: 0, color: '#B2D94B' },
{ x: 3, y: 0, color: '#B2D94B' },
{ x: 4, y: 0, color: '#B2D94B' },
{ x: 0, y: 1, color: '#B2D94B' },
{ x: 4, y: 1, color: '#B2D94B' },
{ x: 0, y: 2, color: '#B2D94B' },
{ x: 4, y: 2, color: '#B2D94B' },
{ x: 0, y: 3, color: '#B2D94B' },
{ x: 4, y: 3, color: '#B2D94B' },
{ x: 0, y: 4, color: '#B2D94B' },
{ x: 1, y: 4, color: '#B2D94B' },
{ x: 2, y: 4, color: '#B2D94B' },
{ x: 3, y: 4, color: '#B2D94B' },
{ x: 4, y: 4, color: '#B2D94B' },
],
},
/** 加号 */
{
id: 'plus-5x5-001',
name: '加号',
category: 'geometric',
difficulty: 1,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#F2A4C0' },
{ x: 0, y: 2, color: '#F2A4C0' },
{ x: 1, y: 2, color: '#F2A4C0' },
{ x: 2, y: 2, color: '#F2A4C0' },
{ x: 3, y: 2, color: '#F2A4C0' },
{ x: 4, y: 2, color: '#F2A4C0' },
{ x: 2, y: 4, color: '#F2A4C0' },
],
},
/** 点阵 */
{
id: 'dots-5x5-001',
name: '点阵',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#79A7ED' },
{ x: 2, y: 0, color: '#79A7ED' },
{ x: 4, y: 0, color: '#79A7ED' },
{ x: 1, y: 2, color: '#79A7ED' },
{ x: 3, y: 2, color: '#79A7ED' },
{ x: 0, y: 4, color: '#79A7ED' },
{ x: 2, y: 4, color: '#79A7ED' },
{ x: 4, y: 4, color: '#79A7ED' },
],
},
/** 数字5 */
{
id: 'number-5-5x5-001',
name: '数字5',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#FC9B6C' },
{ x: 1, y: 0, color: '#FC9B6C' },
{ x: 2, y: 0, color: '#FC9B6C' },
{ x: 0, y: 1, color: '#FC9B6C' },
{ x: 0, y: 2, color: '#FC9B6C' },
{ x: 1, y: 2, color: '#FC9B6C' },
{ x: 2, y: 2, color: '#FC9B6C' },
{ x: 2, y: 3, color: '#FC9B6C' },
{ x: 0, y: 4, color: '#FC9B6C' },
{ x: 1, y: 4, color: '#FC9B6C' },
{ x: 2, y: 4, color: '#FC9B6C' },
],
},
/** 数字6 */
{
id: 'number-6-5x5-001',
name: '数字6',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#6CD2EA' },
{ x: 2, y: 0, color: '#6CD2EA' },
{ x: 0, y: 1, color: '#6CD2EA' },
{ x: 0, y: 2, color: '#6CD2EA' },
{ x: 1, y: 2, color: '#6CD2EA' },
{ x: 2, y: 2, color: '#6CD2EA' },
{ x: 0, y: 3, color: '#6CD2EA' },
{ x: 2, y: 3, color: '#6CD2EA' },
{ x: 1, y: 4, color: '#6CD2EA' },
{ x: 2, y: 4, color: '#6CD2EA' },
],
},
/** 数字9 */
{
id: 'number-9-5x5-001',
name: '数字9',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#B2D94B' },
{ x: 2, y: 0, color: '#B2D94B' },
{ x: 0, y: 1, color: '#B2D94B' },
{ x: 2, y: 1, color: '#B2D94B' },
{ x: 0, y: 2, color: '#B2D94B' },
{ x: 1, y: 2, color: '#B2D94B' },
{ x: 2, y: 2, color: '#B2D94B' },
{ x: 2, y: 3, color: '#B2D94B' },
{ x: 1, y: 4, color: '#B2D94B' },
{ x: 2, y: 4, color: '#B2D94B' },
],
},
/** 多色棋盘格 */
{
id: 'colorful-checkerboard-5x5-001',
name: '多色棋盘格',
category: 'geometric',
difficulty: 3,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#FFE176' },
{ x: 2, y: 0, color: '#FFE176' },
{ x: 4, y: 0, color: '#FFE176' },
{ x: 1, y: 1, color: '#F9A857' },
{ x: 3, y: 1, color: '#F9A857' },
{ x: 0, y: 2, color: '#ED6D50' },
{ x: 2, y: 2, color: '#ED6D50' },
{ x: 4, y: 2, color: '#ED6D50' },
{ x: 1, y: 3, color: '#F9A857' },
{ x: 3, y: 3, color: '#F9A857' },
{ x: 0, y: 4, color: '#FFE176' },
{ x: 2, y: 4, color: '#FFE176' },
{ x: 4, y: 4, color: '#FFE176' },
],
},
/** 多色X形 */
{
id: 'colorful-x-5x5-001',
name: '多色X形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#79A7ED' },
{ x: 1, y: 1, color: '#6CD2EA' },
{ x: 2, y: 2, color: '#53D1B6' },
{ x: 3, y: 3, color: '#6CD2EA' },
{ x: 4, y: 4, color: '#79A7ED' },
{ x: 4, y: 0, color: '#79A7ED' },
{ x: 3, y: 1, color: '#6CD2EA' },
{ x: 1, y: 3, color: '#6CD2EA' },
{ x: 0, y: 4, color: '#79A7ED' },
],
},
/** 箭头(向右) */
{
id: 'arrow-right-5x5-001',
name: '向右箭头',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 0, y: 2, color: '#6CD2EA' },
{ x: 1, y: 1, color: '#6CD2EA' },
{ x: 1, y: 2, color: '#6CD2EA' },
{ x: 1, y: 3, color: '#6CD2EA' },
{ x: 2, y: 0, color: '#6CD2EA' },
{ x: 2, y: 1, color: '#6CD2EA' },
{ x: 2, y: 2, color: '#6CD2EA' },
{ x: 2, y: 3, color: '#6CD2EA' },
{ x: 2, y: 4, color: '#6CD2EA' },
{ x: 3, y: 1, color: '#6CD2EA' },
{ x: 3, y: 2, color: '#6CD2EA' },
{ x: 3, y: 3, color: '#6CD2EA' },
{ x: 4, y: 2, color: '#6CD2EA' },
],
},
/** 箭头(向左) */
{
id: 'arrow-left-5x5-001',
name: '向左箭头',
category: 'geometric',
difficulty: 2,
supportSymmetry: false,
isComplete: true,
cells: [
{ x: 4, y: 2, color: '#6CD2EA' },
{ x: 3, y: 1, color: '#6CD2EA' },
{ x: 3, y: 2, color: '#6CD2EA' },
{ x: 3, y: 3, color: '#6CD2EA' },
{ x: 2, y: 0, color: '#6CD2EA' },
{ x: 2, y: 1, color: '#6CD2EA' },
{ x: 2, y: 2, color: '#6CD2EA' },
{ x: 2, y: 3, color: '#6CD2EA' },
{ x: 2, y: 4, color: '#6CD2EA' },
{ x: 1, y: 1, color: '#6CD2EA' },
{ x: 1, y: 2, color: '#6CD2EA' },
{ x: 1, y: 3, color: '#6CD2EA' },
{ x: 0, y: 2, color: '#6CD2EA' },
],
},
/** 多色圆形 */
{
id: 'colorful-circle-5x5-001',
name: '多色圆形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FFE176' },
{ x: 2, y: 0, color: '#F9A857' },
{ x: 3, y: 0, color: '#FFE176' },
{ x: 0, y: 1, color: '#F9A857' },
{ x: 4, y: 1, color: '#F9A857' },
{ x: 0, y: 2, color: '#ED6D50' },
{ x: 4, y: 2, color: '#ED6D50' },
{ x: 0, y: 3, color: '#F9A857' },
{ x: 4, y: 3, color: '#F9A857' },
{ x: 1, y: 4, color: '#FFE176' },
{ x: 2, y: 4, color: '#F9A857' },
{ x: 3, y: 4, color: '#FFE176' },
],
},
/** 多色十字 */
{
id: 'colorful-cross-5x5-001',
name: '多色十字',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'both',
isComplete: true,
cells: [
{ x: 2, y: 0, color: '#FFE176' },
{ x: 2, y: 1, color: '#F9A857' },
{ x: 0, y: 2, color: '#ED6D50' },
{ x: 1, y: 2, color: '#F9A857' },
{ x: 2, y: 2, color: '#FFE176' },
{ x: 3, y: 2, color: '#F9A857' },
{ x: 4, y: 2, color: '#ED6D50' },
{ x: 2, y: 3, color: '#F9A857' },
{ x: 2, y: 4, color: '#FFE176' },
],
},
/** 多色V形 */
{
id: 'colorful-v-5x5-001',
name: '多色V形',
category: 'geometric',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#ED6D50' },
{ x: 4, y: 0, color: '#ED6D50' },
{ x: 0, y: 1, color: '#F9A857' },
{ x: 4, y: 1, color: '#F9A857' },
{ x: 1, y: 2, color: '#FFE176' },
{ x: 3, y: 2, color: '#FFE176' },
{ x: 2, y: 3, color: '#B2D94B' },
{ x: 2, y: 4, color: '#53D1B6' },
],
},
/** 简化小猫 */
{
id: 'simple-cat-5x5-001',
name: '简化小猫',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F2A4C0' }, // 粉色(耳朵)
{ x: 2, y: 0, color: '#ED6D50' }, // 红色
{ x: 3, y: 0, color: '#F2A4C0' }, // 粉色(耳朵)
{ x: 0, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 1, color: '#ED6D50' }, // 红色
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 0, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 2, color: '#ED6D50' }, // 红色
{ x: 2, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 3, y: 2, color: '#ED6D50' }, // 红色
{ x: 4, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 3, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 3, y: 3, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 4, color: '#ED6D50' }, // 红色(腿)
{ x: 2, y: 4, color: '#F2A4C0' }, // 粉色(尾巴)
{ x: 3, y: 4, color: '#ED6D50' }, // 红色(腿)
],
},
/** 简化小狗 */
{
id: 'simple-dog-5x5-001',
name: '简化小狗',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F9A857' }, // 橙色(耳朵)
{ x: 2, y: 0, color: '#ED6D50' }, // 红色
{ x: 3, y: 0, color: '#F9A857' }, // 橙色(耳朵)
{ x: 0, y: 1, color: '#F9A857' }, // 橙色
{ x: 1, y: 1, color: '#ED6D50' }, // 红色
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F9A857' }, // 橙色
{ x: 0, y: 2, color: '#F9A857' }, // 橙色
{ x: 1, y: 2, color: '#ED6D50' }, // 红色
{ x: 2, y: 2, color: '#F9A857' }, // 橙色
{ x: 3, y: 2, color: '#ED6D50' }, // 红色
{ x: 4, y: 2, color: '#F9A857' }, // 橙色
{ x: 1, y: 3, color: '#F9A857' }, // 橙色
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 3, y: 3, color: '#F9A857' }, // 橙色
{ x: 1, y: 4, color: '#ED6D50' }, // 红色(腿)
{ x: 2, y: 4, color: '#F9A857' }, // 橙色(尾巴)
{ x: 3, y: 4, color: '#ED6D50' }, // 红色(腿)
],
},
/** 简化小鸟 */
{
id: 'simple-bird-5x5-001',
name: '简化小鸟',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FFE176' }, // 黄色
{ x: 2, y: 0, color: '#F9A857' }, // 橙色
{ x: 3, y: 0, color: '#ED6D50' }, // 红色(嘴巴)
{ x: 0, y: 1, color: '#FFE176' }, // 黄色
{ x: 1, y: 1, color: '#F9A857' }, // 橙色
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#F9A857' }, // 橙色
{ x: 4, y: 1, color: '#FFE176' }, // 黄色
{ x: 0, y: 2, color: '#FFE176' }, // 黄色
{ x: 1, y: 2, color: '#F9A857' }, // 橙色
{ x: 2, y: 2, color: '#ED6D50' }, // 红色
{ x: 3, y: 2, color: '#F9A857' }, // 橙色
{ x: 4, y: 2, color: '#FFE176' }, // 黄色
{ x: 1, y: 3, color: '#F9A857' }, // 橙色(翅膀)
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 3, y: 3, color: '#F9A857' }, // 橙色(翅膀)
{ x: 2, y: 4, color: '#ED6D50' }, // 红色(脚)
],
},
/** 简化小鱼 */
{
id: 'simple-fish-5x5-001',
name: '简化小鱼',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 1, color: '#6CD2EA' }, // 浅蓝
{ x: 1, y: 1, color: '#79A7ED' }, // 蓝色
{ x: 2, y: 1, color: '#53D1B6' }, // 青色
{ x: 3, y: 1, color: '#53D1B6' }, // 青色
{ x: 4, y: 1, color: '#6CD2EA' }, // 浅蓝
{ x: 0, y: 2, color: '#79A7ED' }, // 蓝色
{ x: 1, y: 2, color: '#53D1B6' }, // 青色
{ x: 2, y: 2, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 2, color: '#53D1B6' }, // 青色
{ x: 4, y: 2, color: '#79A7ED' }, // 蓝色
{ x: 0, y: 3, color: '#6CD2EA' }, // 浅蓝
{ x: 1, y: 3, color: '#79A7ED' }, // 蓝色
{ x: 2, y: 3, color: '#53D1B6' }, // 青色
{ x: 3, y: 3, color: '#53D1B6' }, // 青色
{ x: 4, y: 3, color: '#6CD2EA' }, // 浅蓝
{ x: 1, y: 4, color: '#6CD2EA' }, // 浅蓝(尾巴)
{ x: 2, y: 4, color: '#79A7ED' }, // 蓝色(尾巴)
{ x: 3, y: 4, color: '#6CD2EA' }, // 浅蓝(尾巴)
],
},
/** 简化小兔子 */
{
id: 'simple-rabbit-5x5-001',
name: '简化小兔子',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#F2A4C0' }, // 粉色(左耳)
{ x: 1, y: 0, color: '#ED6D50' }, // 红色
{ x: 2, y: 0, color: '#F2A4C0' }, // 粉色
{ x: 3, y: 0, color: '#ED6D50' }, // 红色
{ x: 4, y: 0, color: '#F2A4C0' }, // 粉色(右耳)
{ x: 0, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 1, color: '#ED6D50' }, // 红色
{ x: 2, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 3, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 2, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 3, color: '#F2A4C0' }, // 粉色
{ x: 2, y: 3, color: '#ED6D50' }, // 红色(鼻子)
{ x: 3, y: 3, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 4, color: '#ED6D50' }, // 红色(腿)
{ x: 2, y: 4, color: '#F2A4C0' }, // 粉色
{ x: 3, y: 4, color: '#ED6D50' }, // 红色(腿)
],
},
/** 简化小鸭子 */
{
id: 'simple-duck-5x5-001',
name: '简化小鸭子',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#FFE176' }, // 黄色
{ x: 2, y: 0, color: '#F9A857' }, // 橙色
{ x: 3, y: 0, color: '#ED6D50' }, // 红色(嘴巴)
{ x: 0, y: 1, color: '#FFE176' }, // 黄色
{ x: 1, y: 1, color: '#F9A857' }, // 橙色
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#F9A857' }, // 橙色
{ x: 4, y: 1, color: '#FFE176' }, // 黄色
{ x: 0, y: 2, color: '#FFE176' }, // 黄色
{ x: 1, y: 2, color: '#F9A857' }, // 橙色
{ x: 2, y: 2, color: '#ED6D50' }, // 红色
{ x: 3, y: 2, color: '#F9A857' }, // 橙色
{ x: 4, y: 2, color: '#FFE176' }, // 黄色
{ x: 1, y: 3, color: '#F9A857' }, // 橙色(翅膀)
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 3, y: 3, color: '#F9A857' }, // 橙色(翅膀)
{ x: 1, y: 4, color: '#ED6D50' }, // 红色(脚)
{ x: 2, y: 4, color: '#ED6D50' }, // 红色(脚)
{ x: 3, y: 4, color: '#ED6D50' }, // 红色(脚)
],
},
/** 简化小熊 */
{
id: 'simple-bear-5x5-001',
name: '简化小熊',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#F9A857' }, // 橙色(左耳)
{ x: 2, y: 0, color: '#ED6D50' }, // 红色
{ x: 3, y: 0, color: '#F9A857' }, // 橙色(右耳)
{ x: 0, y: 1, color: '#F9A857' }, // 橙色
{ x: 1, y: 1, color: '#ED6D50' }, // 红色
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F9A857' }, // 橙色
{ x: 0, y: 2, color: '#F9A857' }, // 橙色
{ x: 1, y: 2, color: '#ED6D50' }, // 红色
{ x: 2, y: 2, color: '#F9A857' }, // 橙色
{ x: 3, y: 2, color: '#ED6D50' }, // 红色
{ x: 4, y: 2, color: '#F9A857' }, // 橙色
{ x: 1, y: 3, color: '#F9A857' }, // 橙色
{ x: 2, y: 3, color: '#ED6D50' }, // 红色
{ x: 3, y: 3, color: '#F9A857' }, // 橙色
{ x: 1, y: 4, color: '#ED6D50' }, // 红色(腿)
{ x: 2, y: 4, color: '#F9A857' }, // 橙色
{ x: 3, y: 4, color: '#ED6D50' }, // 红色(腿)
],
},
/** 简化小象 */
{
id: 'simple-elephant-5x5-001',
name: '简化小象',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 1, y: 0, color: '#79A7ED' }, // 蓝色
{ x: 2, y: 0, color: '#6CD2EA' }, // 浅蓝
{ x: 3, y: 0, color: '#79A7ED' }, // 蓝色
{ x: 0, y: 1, color: '#79A7ED' }, // 蓝色(鼻子)
{ x: 1, y: 1, color: '#6CD2EA' }, // 浅蓝
{ x: 2, y: 1, color: '#666666' }, // 黑色(眼睛)
{ x: 3, y: 1, color: '#6CD2EA' }, // 浅蓝
{ x: 4, y: 1, color: '#79A7ED' }, // 蓝色(鼻子)
{ x: 0, y: 2, color: '#79A7ED' }, // 蓝色
{ x: 1, y: 2, color: '#6CD2EA' }, // 浅蓝
{ x: 2, y: 2, color: '#79A7ED' }, // 蓝色
{ x: 3, y: 2, color: '#6CD2EA' }, // 浅蓝
{ x: 4, y: 2, color: '#79A7ED' }, // 蓝色
{ x: 0, y: 3, color: '#79A7ED' }, // 蓝色
{ x: 1, y: 3, color: '#6CD2EA' }, // 浅蓝
{ x: 2, y: 3, color: '#79A7ED' }, // 蓝色
{ x: 3, y: 3, color: '#6CD2EA' }, // 浅蓝
{ x: 4, y: 3, color: '#79A7ED' }, // 蓝色
{ x: 0, y: 4, color: '#79A7ED' }, // 蓝色(腿)
{ x: 1, y: 4, color: '#6CD2EA' }, // 浅蓝
{ x: 2, y: 4, color: '#79A7ED' }, // 蓝色
{ x: 3, y: 4, color: '#6CD2EA' }, // 浅蓝
{ x: 4, y: 4, color: '#79A7ED' }, // 蓝色(腿)
],
},
/** 简化小蝴蝶 */
{
id: 'simple-butterfly-5x5-001',
name: '简化小蝴蝶',
category: 'animal',
difficulty: 2,
supportSymmetry: true,
symmetryType: 'vertical',
isComplete: true,
cells: [
{ x: 0, y: 0, color: '#F2A4C0' }, // 粉色(左翅膀)
{ x: 1, y: 0, color: '#ED6D50' }, // 红色
{ x: 2, y: 0, color: '#F2A4C0' }, // 粉色
{ x: 3, y: 0, color: '#ED6D50' }, // 红色
{ x: 4, y: 0, color: '#F2A4C0' }, // 粉色(右翅膀)
{ x: 0, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 1, color: '#ED6D50' }, // 红色
{ x: 2, y: 1, color: '#666666' }, // 黑色(身体)
{ x: 3, y: 1, color: '#ED6D50' }, // 红色
{ x: 4, y: 1, color: '#F2A4C0' }, // 粉色
{ x: 0, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 2, color: '#ED6D50' }, // 红色
{ x: 2, y: 2, color: '#666666' }, // 黑色(身体)
{ x: 3, y: 2, color: '#ED6D50' }, // 红色
{ x: 4, y: 2, color: '#F2A4C0' }, // 粉色
{ x: 1, y: 3, color: '#F2A4C0' }, // 粉色(左翅膀)
{ x: 2, y: 3, color: '#666666' }, // 黑色(身体)
{ x: 3, y: 3, color: '#F2A4C0' }, // 粉色(右翅膀)
{ x: 2, y: 4, color: '#666666' }, // 黑色(身体)
],
},
];
/**
* 随机获取一个 5x5 形状
*/
export function getRandom5x5Shape(): ShapeTemplate {
const randomIndex = Math.floor(Math.random() * ALL_5X5_SHAPES.length);
return ALL_5X5_SHAPES[randomIndex];
}