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: MoveCommand y BombCommand, ambos con execute() y undo(). MacroCommand agrupa 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)