JavaScript de Cero a Experto / Proyectos + retos
Proyecto: juego de trivia con timer y máquina de estados
Estado local, datos remotos… falta el tercer tipo de app: la interactiva con tiempo. Un juego de trivia junta todo: una máquina de estados que orquesta las pantallas (módulo 13), un temporizador que presiona, puntaje en vivo y eventos por delegación. La misma lógica que sostiene un quiz, un Wordle o cualquier juego por turnos.
Reto
Trivia contra el reloj
Qué debes construir
Un juego de preguntas con temporizador, sobre un banco de preguntas local (un array —sin API). La app tiene TRES pantallas gobernadas por una máquina de estados:
menu: título y botón "Empezar".jugando: la pregunta actual (N de total), sus opciones, el puntaje y un temporizador que corre; si se acaba el tiempo, la pregunta cuenta como perdida y avanza sola.fin: puntaje final y botón "Jugar de nuevo".
Requisitos concretos:
- Banco de datos: un array
PREGUNTAS, cada una{ pregunta, opciones: [...], correcta: <índice> }. - Máquina de estados: una variable
estadocon valores"menu","jugando","fin", y una función que hace las transiciones. Un solorender()pinta la pantalla según el estado. - Temporizador por pregunta (p. ej. 10 s) con
setInterval; al llegar a 0, avanza como si fallara. Al responder O cambiar de pantalla, LIMPIA el intervalo (módulo 9: unsetIntervalsinclearIntervales una fuga). - Puntaje: +1 por acierto; se muestra durante el juego y al final.
- Reinicio limpio: "Jugar de nuevo" vuelve al menú con puntaje e índice en cero, sin temporizadores zombis corriendo.
Reglas
- El
estadoes la fuente de verdad de QUÉ pantalla se ve;render()lo refleja. Nunca muestres/ocultes pantallas "a mano". - Un solo temporizador vivo a la vez: cada vez que arranca uno, el anterior debe estar muerto.
- Delegación de eventos (módulo 8) para los botones que nacen y mueren con cada pantalla.
- Guard
iniciar()conDOMContentLoaded.
180:00
Cuando estés listo, arranca el reloj.
Qué sigue
Tres proyectos, tres tipos de app: estado local, datos remotos e interacción
con tiempo. Ya construyes cosas completas. Lo que queda es afilar el otro
músculo que evalúa la industria: los retos cortos de entrevista. Diez katas, de
FizzBuzz al debounce que acabas de usar —resueltos con tests que corren en
vivo. La preparación que te abre la puerta.