Package controllers

Class GameController

java.lang.Object
controllers.GameController

public class GameController extends Object
Controlador principal del juego.

Gestiona la interacción entre las vistas y los servicios del juego:

  • GameView: vista principal del juego
  • OnDeadView: vista mostrada al perder
  • InputView: vista para introducir el nombre del jugador
  • RankingView: vista del ranking de puntuaciones

Controla el flujo del juego mediante métodos de evento (onSomethingPressed) y un bucle principal startGameLoop() que actualiza el estado del juego y renderiza las vistas correspondientes.

Esta clase se inicializa desde la clase Main y constituye el punto central de la lógica de presentación y control del juego.

  • Constructor Summary

    Constructors
    Constructor
    Description
    Inicializa el controlador del juego creando las vistas y servicios necesarios.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Maneja el evento de cambio de nombre en la vista de replay
    void
    Maneja el evento de "Volver a jugar" en la vista de replay
    void
     
    void
    Procesa la entrado de teclado durante la partida y acutaliza la direccion de la serpiente en consecuencia
    void
    Maneja el momento en que el jugador pierde Oculta la vista del juego (gView) Actualiza la puntuacion maxima en los archivos locales (sService) Actualiza el ranking en vase a la nueva puntuacion alcanzada (rService) Renderiza la vista de ranking con los nuevos datos (rView) Muestra la vista de seleccion de replay (dView)
    void
    Gestiona el evento de pulsar Enter en la vista de selección de nombre.
    void
    Hace visible la interfaz de seleccion de nombre
    void
    Ejecuta un ciclo de actualización del juego

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GameController

      public GameController()
      Inicializa el controlador del juego creando las vistas y servicios necesarios.

      Se crean las siguientes vistas:

      • GameView (vista del juego)
      • OnDeadView (vista del fin de partida)
      • InputView (vista de entrada de nombre)
      • RankingView (vista de ranking)
      Ademas, se inicializa el servicio de ranking.

      Cada vista recibe una referencia al controlador para poder comunicarse con el.

  • Method Details

    • start

      public void start()
      Hace visible la interfaz de seleccion de nombre

      Este metodo se llama desde la clase Main para comenzar la aplicacion y permitir que el jugador ingrese su nombre antes de iniciar la partida

    • tick

      public void tick() throws DeadSnakeException
      Ejecuta un ciclo de actualización del juego

      En cada tick:

      • Mueve la serpiente
      • Comprueba si la serpiente sigue viva
      • Gestiona la ingesta de comida (crecimiento y puntuacion)
      • Actualiza la dirección de movimiento
      • Renderiza el nuevo estado del juego
      Throws:
      DeadSnakeException - Si la serpiente muere durante el tick
    • onGamePressed

      public void onGamePressed(KeyEvent e)
      Procesa la entrado de teclado durante la partida y acutaliza la direccion de la serpiente en consecuencia

      Mapea las teclas WASD y las flechas de direccion a las direcciones correspondientes del juego

      Parameters:
      e - El evento generado por la tecla pulsada
    • onGamesEnd

      public void onGamesEnd()
      Maneja el momento en que el jugador pierde
      • Oculta la vista del juego (gView)
      • Actualiza la puntuacion maxima en los archivos locales (sService)
      • Actualiza el ranking en vase a la nueva puntuacion alcanzada (rService)
      • Renderiza la vista de ranking con los nuevos datos (rView)
      • Muestra la vista de seleccion de replay (dView)
    • onBNamePressed

      public void onBNamePressed()
      Maneja el evento de cambio de nombre en la vista de replay

      Realiza las siguientes acciones:

      • Oculta la vista de replay (dView)
      • Oculta la vista de ranking (rView)
      • Muestra la vista de seleccion de nombre (iView)
    • onBReplayPressed

      public void onBReplayPressed()
      Maneja el evento de "Volver a jugar" en la vista de replay

      Realiza las siguientes acciones:

      • Reinicia la puntuacion y el estado de la serpiente
      • Oculta la vista de replay (dView) y la vista del ranking (rView)
      • Renderiza el estado reiniciado del juego en gView
      • Muestra la vista del juego
      • Inicia el bucle principal del juego mediante startGameLoop()
    • onNameKeyPressed

      public void onNameKeyPressed(KeyEvent e)
      Gestiona el evento de pulsar Enter en la vista de selección de nombre.

      Valida el nombre introducido y, si es correcto, inicializa el juego:

      • Normaliza el nombre (minúsculas y sin espacios)
      • Inicia los servicios y la partida
      • Muestra la vista del juego
      • Inicia el bucle del juego
      Parameters:
      e - evento de teclado que contiene la tecla pulsada
    • onDifPick

      public void onDifPick(Difficulty dif)