Manejador de entradas con el patrón Command
Mueve al robot y recoge todas las monedas. Cada tecla se convierte en un objeto comando que se ejecuta, se guarda y se puede deshacer o repetir.
Nivel 1Monedas: 0/0Bombas: 2Comandos: 0
Teclas (clic para reasignar)
Historial de comandos
Quién es quién en el patrón
- Command:
MoveCommandyBombCommand, ambos conexecute()yundo().MacroCommandagrupa varios (el Combo repite tus últimos 3 comandos y se deshace de una vez). - Invoker:
InputHandler, traduce teclas en comandos y guarda el historial. - Receiver:
Game, el estado que los comandos modifican. - Client: el código que configura qué tecla crea qué comando.
const cmd = handler.keyToCommand(e.key); // Invoker crea el comando if (cmd.execute(game)) history.push(cmd); // se ejecuta y se guarda handler.undo(); // history.pop().undo(game)