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.
104 lines
3.2 KiB
TypeScript
104 lines
3.2 KiB
TypeScript
import type { Stage } from '../types'
|
||
|
||
const numeros2d = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 30, 33, 40, 44, 50]
|
||
|
||
const exercises: any[] = []
|
||
|
||
for (const n of numeros2d) {
|
||
const dec = Math.floor(n / 10)
|
||
const uni = n % 10
|
||
const decStr = '🔟'.repeat(dec)
|
||
const uniStr = '●'.repeat(uni)
|
||
|
||
exercises.push({
|
||
id: `num7-componer-${n}`,
|
||
stage: 7,
|
||
skillCode: 'valor-posicional',
|
||
type: 'eleccion',
|
||
prerequisites: n <= 15 ? ['num6-resta-visual-3-1'] : [`num7-componer-${numeros2d[numeros2d.indexOf(n) - 1]}`],
|
||
content: {
|
||
instruction: `${dec} decenas + ${uni} unidades = ?`,
|
||
text: `${dec}×10 + ${uni}×1 = ?`,
|
||
audioText: `${n}: ${dec} decenas y ${uni} unidades`,
|
||
options: [
|
||
...Array.from({ length: 4 }, (_, i) => n - 2 + i + (i >= 2 ? 2 : 0))
|
||
.filter(j => j >= 10 && j <= 55 && 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: decStr,
|
||
},
|
||
functionalContext: 'Componer números de 2 dígitos en decenas y unidades.. Método Montessori.',
|
||
errorType: 'confusion-letra',
|
||
})
|
||
}
|
||
|
||
// Write the number of tens and units
|
||
for (const n of [15, 23, 30, 47, 50]) {
|
||
const dec = Math.floor(n / 10)
|
||
const uni = n % 10
|
||
exercises.push({
|
||
id: `num7-descomponer-${n}`,
|
||
stage: 7,
|
||
skillCode: 'valor-posicional',
|
||
type: 'conciencia',
|
||
prerequisites: [`num7-componer-${n}`],
|
||
content: {
|
||
instruction: `¿Cuántas decenas y unidades tiene ${n}?`,
|
||
text: `${n} = ? decenas + ? unidades`,
|
||
audioText: `${n} tiene ${dec} decenas y ${uni} unidades`,
|
||
options: [
|
||
{ label: `${dec} dec, ${uni} uni`, correct: true, id: `d${dec}u${uni}` },
|
||
{ label: `${uni} dec, ${dec} uni`, correct: false, id: `d${uni}u${dec}` },
|
||
{ label: `${dec + 1} dec, ${Math.max(0, uni - 1)} uni`, correct: false, id: `d${dec + 1}u${Math.max(0, uni - 1)}` },
|
||
],
|
||
emoji: '🔟',
|
||
},
|
||
functionalContext: 'Descomponer números en decenas y unidades.. Método Montessori.',
|
||
errorType: 'inversion-letra',
|
||
})
|
||
}
|
||
|
||
// Compare 2-digit numbers
|
||
const comparaciones = [
|
||
{ a: 15, b: 20 },
|
||
{ a: 23, b: 18 },
|
||
{ a: 30, b: 25 },
|
||
{ a: 42, b: 39 },
|
||
{ a: 50, b: 49 },
|
||
]
|
||
|
||
for (const { a, b } of comparaciones) {
|
||
const mayor = a > b ? a : b
|
||
const menor = a < b ? a : b
|
||
exercises.push({
|
||
id: `num7-comparar-${a}-${b}`,
|
||
stage: 7,
|
||
skillCode: 'comparacion-2d',
|
||
type: 'eleccion',
|
||
prerequisites: [`num7-descomponer-${mayor}`],
|
||
content: {
|
||
instruction: `¿Cuál número es más grande?`,
|
||
text: `${a} vs ${b}`,
|
||
audioText: `¿Cuál es más grande?`,
|
||
options: [
|
||
{ label: String(a), correct: a === mayor, id: String(a) },
|
||
{ label: String(b), correct: b === mayor, id: String(b) },
|
||
],
|
||
emoji: '📏',
|
||
},
|
||
functionalContext: 'Comparar números de 2 dígitos.. Método Montessori.',
|
||
errorType: 'confusion-letra',
|
||
})
|
||
}
|
||
|
||
const stage: Stage = {
|
||
id: 7,
|
||
name: 'Decenas y unidades',
|
||
description: 'Componer y descomponer números de 2 dígitos en decenas y unidades. Comparar números.',
|
||
exercises,
|
||
}
|
||
|
||
export default stage
|