feat: Puente Mayúscula-Minúscula + TTS SpeechSynthesis + E2E fixes
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
import type { Stage } from '../types'
|
||||
|
||||
const exercises: any[] = []
|
||||
|
||||
// Count 6-10
|
||||
for (let n = 6; n <= 10; n++) {
|
||||
const emojis = '🟢'.repeat(n)
|
||||
exercises.push({
|
||||
id: `num2-contar-${n}`,
|
||||
stage: 2,
|
||||
skillCode: `contar-${n}`,
|
||||
prerequisites: n === 6 ? ['num1-trazo-5'] : [`num2-contar-${n - 1}`],
|
||||
type: 'sensibilizacion',
|
||||
content: {
|
||||
instruction: `¿Cuántos círculos verdes hay?`,
|
||||
audioText: `Contá los círculos`,
|
||||
emoji: emojis,
|
||||
options: [
|
||||
...Array.from({ length: 5 }, (_, i) => i + 6)
|
||||
.filter(j => 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),
|
||||
},
|
||||
functionalContext: `Contar hasta ${n} elementos.`,
|
||||
errorType: 'discriminacion-auditiva',
|
||||
})
|
||||
}
|
||||
|
||||
// Recognize written digits 6-10
|
||||
for (let n = 6; n <= 10; n++) {
|
||||
exercises.push({
|
||||
id: `num2-digito-${n}`,
|
||||
stage: 2,
|
||||
skillCode: `digito-${n}`,
|
||||
type: 'eleccion',
|
||||
prerequisites: [`num2-contar-${n}`],
|
||||
content: {
|
||||
instruction: `Señalá el número ${n}`,
|
||||
audioText: `Buscá el ${n}`,
|
||||
options: [
|
||||
...Array.from({ length: 5 }, (_, i) => i + 6)
|
||||
.filter(j => 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 dígito ${n}.`,
|
||||
errorType: 'confusion-letra',
|
||||
})
|
||||
}
|
||||
|
||||
// Order sequence 1-10
|
||||
exercises.push({
|
||||
id: 'num2-secuencia-1-10',
|
||||
stage: 2,
|
||||
skillCode: 'secuencia-1-10',
|
||||
type: 'secuencia',
|
||||
prerequisites: ['num2-digito-10'],
|
||||
content: {
|
||||
instruction: 'Ordená los números del 1 al 10',
|
||||
audioText: 'Ordená del 1 al 10',
|
||||
sequence: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
|
||||
emoji: '🔢',
|
||||
},
|
||||
functionalContext: 'Conocer la secuencia numérica del 1 al 10.',
|
||||
errorType: 'inversion-letra',
|
||||
})
|
||||
|
||||
// Trace 6-10
|
||||
for (let n = 6; n <= 10; n++) {
|
||||
exercises.push({
|
||||
id: `num2-trazo-${n}`,
|
||||
stage: 2,
|
||||
skillCode: `digito-${n}`,
|
||||
type: 'trazo',
|
||||
prerequisites: [`num2-digito-${n}`, ...(n > 6 ? [`num2-trazo-${n - 1}`] : [])],
|
||||
content: {
|
||||
instruction: `Trazá el número ${n} con tu dedo`,
|
||||
text: String(n),
|
||||
audioText: `Trazá el ${n}`,
|
||||
emoji: '✍️',
|
||||
},
|
||||
functionalContext: `Aprender a trazar el número ${n}.`,
|
||||
errorType: 'confusion-letra',
|
||||
})
|
||||
}
|
||||
|
||||
const stage: Stage = {
|
||||
id: 2,
|
||||
name: 'Conteo del 6 al 10',
|
||||
description: 'Contar objetos, reconocer dígitos y trazar números del 6 al 10, y ordenar del 1 al 10.',
|
||||
exercises,
|
||||
}
|
||||
|
||||
export default stage
|
||||
Reference in New Issue
Block a user