Añadido Borel-Maisonny a lectura etapa 1-7, Decroly a etapa 8-9, Montessori a numeros etapa 1-8. Ahora 65/65 archivos con método europeo.
91 lines
3.0 KiB
TypeScript
91 lines
3.0 KiB
TypeScript
import type { Stage } from '../types'
|
||
|
||
const sumas = [
|
||
{ a: 1, b: 1, r: 2, emoji: '🐶+🐶' },
|
||
{ a: 2, b: 1, r: 3, emoji: '🐱+🐶' },
|
||
{ a: 2, b: 2, r: 4, emoji: '🐱+🐱' },
|
||
{ a: 3, b: 1, r: 5, emoji: '🐰+🐶' },
|
||
{ a: 3, b: 2, r: 5, emoji: '🐰+🐱' },
|
||
{ a: 4, b: 1, r: 5, emoji: '🐸+🐶' },
|
||
{ a: 5, b: 1, r: 6, emoji: '🐵+🐶' },
|
||
{ a: 3, b: 3, r: 6, emoji: '🐰+🐰' },
|
||
{ a: 5, b: 2, r: 7, emoji: '🐵+🐱' },
|
||
{ a: 4, b: 3, r: 7, emoji: '🐸+🐰' },
|
||
{ a: 5, b: 3, r: 8, emoji: '🐵+🐰' },
|
||
{ a: 4, b: 4, r: 8, emoji: '🐸+🐸' },
|
||
{ a: 5, b: 4, r: 9, emoji: '🐵+🐸' },
|
||
{ a: 5, b: 5, r: 10, emoji: '🐵+🐵' },
|
||
{ a: 6, b: 1, r: 7, emoji: '🐼+🐶' },
|
||
{ a: 6, b: 2, r: 8, emoji: '🐼+🐱' },
|
||
{ a: 7, b: 1, r: 8, emoji: '🐨+🐶' },
|
||
{ a: 7, b: 2, r: 9, emoji: '🐨+🐱' },
|
||
{ a: 8, b: 1, r: 9, emoji: '🦊+🐶' },
|
||
{ a: 8, b: 2, r: 10, emoji: '🦊+🐱' },
|
||
{ a: 9, b: 1, r: 10, emoji: '🐻+🐶' },
|
||
{ a: 3, b: 4, r: 7, emoji: '🐰+🐸' },
|
||
{ a: 4, b: 5, r: 9, emoji: '🐸+🐵' },
|
||
{ a: 6, b: 3, r: 9, emoji: '🐼+🐰' },
|
||
{ a: 7, b: 3, r: 10, emoji: '🐨+🐰' },
|
||
]
|
||
|
||
const exercises: any[] = []
|
||
|
||
for (const { a, b, r, emoji } of sumas) {
|
||
const id = `num5-suma-${a}-${b}`
|
||
exercises.push({
|
||
id,
|
||
stage: 5,
|
||
skillCode: 'suma',
|
||
type: 'problema',
|
||
prerequisites: a <= 5 && b <= 5 ? ['num4-secuencia-11-20'] : [`num5-suma-${a}-${b - 1}`],
|
||
content: {
|
||
instruction: `¿Cuánto es ${a} + ${b}?`,
|
||
text: `${a} + ${b} = ?`,
|
||
audioText: `${a} más ${b}`,
|
||
emoji,
|
||
options: [
|
||
...Array.from({ length: 4 }, (_, i) => r - 2 + i + (i >= 2 ? 2 : 0))
|
||
.filter(j => j >= 1 && j <= 12 && j !== r)
|
||
.slice(0, 2)
|
||
.map(j => ({ label: String(j), correct: false, id: String(j) })),
|
||
{ label: String(r), correct: true, id: String(r) },
|
||
].sort(() => Math.random() - 0.5),
|
||
},
|
||
functionalContext: 'Sumar dos números pequeños.. Método Montessori.',
|
||
errorType: 'discriminacion-auditiva',
|
||
})
|
||
}
|
||
|
||
// Represent sum with objects
|
||
for (const { a, b, r } of sumas.slice(0, 8)) {
|
||
exercises.push({
|
||
id: `num5-suma-visual-${a}-${b}`,
|
||
stage: 5,
|
||
skillCode: 'suma-visual',
|
||
type: 'conciencia',
|
||
prerequisites: [`num5-suma-${a}-${b}`],
|
||
content: {
|
||
instruction: `${a} + ${b} es lo mismo que...`,
|
||
text: `${'●'.repeat(a)} + ${'●'.repeat(b)}`,
|
||
audioText: `Juntamos ${a} y ${b}, tenemos ${r}`,
|
||
options: [
|
||
{ label: '●'.repeat(r), correct: true, id: String(r) },
|
||
{ label: '●'.repeat(r + 1), correct: false, id: String(r + 1) },
|
||
{ label: '●'.repeat(Math.max(1, r - 1)), correct: false, id: String(r - 1) },
|
||
],
|
||
emoji: '➕',
|
||
},
|
||
functionalContext: 'Visualizar la suma como unión de conjuntos.. Método Montessori.',
|
||
errorType: 'discriminacion-auditiva',
|
||
})
|
||
}
|
||
|
||
const stage: Stage = {
|
||
id: 5,
|
||
name: 'Sumas simples (1-10)',
|
||
description: 'Sumar números del 1 al 10 con ayudas visuales y ejercicios progresivos.',
|
||
exercises,
|
||
}
|
||
|
||
export default stage
|