84 lines
2.6 KiB
TypeScript
84 lines
2.6 KiB
TypeScript
import type { Stage } from '../types'
|
|
|
|
const exercises: any[] = []
|
|
|
|
for (let n = 11; n <= 20; n++) {
|
|
exercises.push({
|
|
id: `num4-contar-${n}`,
|
|
stage: 4,
|
|
skillCode: `contar-${n}`,
|
|
type: 'conciencia',
|
|
prerequisites: n === 11 ? ['num3-cantidad-10'] : [`num4-contar-${n - 1}`],
|
|
content: {
|
|
instruction: `Contá. ¿Cuántos hay? (${n})`,
|
|
audioText: `Son ${n}`,
|
|
text: `🔵🔵🔵🔵🔵 🟣🟣🟣🟣🟣 ${n > 10 ? `+${n - 10}` : ''}`,
|
|
options: [
|
|
...Array.from({ length: 5 }, (_, i) => n - 2 + i)
|
|
.filter(j => j >= 10 && j <= 20 && j !== n)
|
|
.slice(0, 2)
|
|
.map(j => ({ label: String(j), correct: false, id: String(j) })),
|
|
{ label: String(n), correct: true, id: String(n) },
|
|
].sort(() => Math.random() - 0.5),
|
|
emoji: String(n),
|
|
},
|
|
functionalContext: `Reconocer el número ${n}.`,
|
|
errorType: 'confusion-letra',
|
|
})
|
|
}
|
|
|
|
// Decenas y unidades visual
|
|
for (let n = 10; n <= 20; n++) {
|
|
const decenas = Math.floor(n / 10)
|
|
const unidades = n % 10
|
|
exercises.push({
|
|
id: `num4-descomponer-${n}`,
|
|
stage: 4,
|
|
skillCode: 'decenas-unidades',
|
|
type: 'eleccion',
|
|
prerequisites: [`num4-contar-${n}`],
|
|
content: {
|
|
instruction: `${n} son ${decenas} decena${decenas > 1 ? 's' : ''} y ${unidades} unidades`,
|
|
text: `🔟🔟${'●'.repeat(unidades)} = ${n}`,
|
|
audioText: `${n} es ${decenas} decenas y ${unidades} unidades`,
|
|
options: [
|
|
{ label: '🔟 Decenas', correct: false, id: `decenas-${n}` },
|
|
{ label: String(n), correct: true, id: String(n) },
|
|
...Array.from({ length: 3 }, (_, i) => n + i - 1)
|
|
.filter(j => j >= 10 && j <= 20 && j !== n)
|
|
.slice(0, 1)
|
|
.map(j => ({ label: String(j), correct: false, id: String(j) })),
|
|
].sort(() => Math.random() - 0.5),
|
|
emoji: '🔟',
|
|
},
|
|
functionalContext: 'Introducir decenas y unidades.',
|
|
errorType: 'confusion-letra',
|
|
})
|
|
}
|
|
|
|
// Secuencia 11-20
|
|
exercises.push({
|
|
id: 'num4-secuencia-11-20',
|
|
stage: 4,
|
|
skillCode: 'secuencia-11-20',
|
|
type: 'secuencia',
|
|
prerequisites: ['num4-descomponer-20'],
|
|
content: {
|
|
instruction: 'Ordená los números del 11 al 20',
|
|
audioText: 'Ordená del 11 al 20',
|
|
sequence: ['11', '12', '13', '14', '15', '16', '17', '18', '19', '20'],
|
|
emoji: '🔢',
|
|
},
|
|
functionalContext: 'Conocer la secuencia del 11 al 20.',
|
|
errorType: 'inversion-letra',
|
|
})
|
|
|
|
const stage: Stage = {
|
|
id: 4,
|
|
name: 'Números del 11 al 20',
|
|
description: 'Aprender los números del 11 al 20. Introducir decenas y unidades.',
|
|
exercises,
|
|
}
|
|
|
|
export default stage
|