-
Notifications
You must be signed in to change notification settings - Fork 50
Description
El código actual no permite agregar nuevos tipos de personajes (por ejemplo, enemigos adicionales o personajes jugables distintos) sin modificar las clases existentes. Esto viola el principio de Abierto/Cerrado, ya que el sistema está cerrado a la extensión y abierto a la modificación.
Problemas encontrados:
Los personajes (Pacman, Ghost) están definidos explícitamente dentro del código del Board o GameController.
Para agregar un nuevo personaje, se deben modificar los métodos move(), draw(), o updateGame().
Impacto:
Riesgo de introducir errores al modificar clases estables.
Dificultad para escalar el juego con nuevos tipos de personajes o comportamientos.
Dependencia rígida de tipos concretos.
Propuesta de solución:
Crear una interfaz o clase abstracta Character con los métodos comunes:
interface Character {
void move();
void draw(Graphics2D g);
}
Y hacer que las clases Pacman, Ghost y futuras (PowerGhost, SuperPacman, etc.) implementen esta interfaz. De este modo, se podrán agregar nuevos personajes sin modificar el código base.