Class TresEnRaya

java.lang.Object
Modelo.Juego
Modelo.TresEnRaya

public class TresEnRaya extends Juego
Implementación del juego Tres en Raya para dos jugadores.

Hereda de Juego e implementa todos sus métodos abstractos. El tablero es 3x3 con fichas 'X' y 'O'. La gestión del turno la lleva Partida externamente — esta clase solo conoce el estado del tablero.

Version:
2.1
Author:
Nacho
  • Field Details

    • tablero

      private char[][] tablero
      Tablero 3x3. Cada celda contiene 'X', 'O' o ' ' si está vacía.
    • ganador

      private String ganador
      Username del ganador. null si la partida no ha terminado o acabó en empate.
  • Constructor Details

    • TresEnRaya

      public TresEnRaya()
      Crea una nueva instancia de Tres en Raya. Llamar a inicializar() antes de empezar a jugar.
  • Method Details

    • inicializar

      public void inicializar()
      Inicializa o reinicia la partida. Limpia el tablero, resetea el ganador y marca el juego como no finalizado.
      Specified by:
      inicializar in class Juego
    • getEstadoTexto

      public String getEstadoTexto()
      Devuelve el estado actual del tablero en formato texto.
      Specified by:
      getEstadoTexto in class Juego
      Returns:
      String con el estado actual del juego.
    • serializarEstado

      public String serializarEstado()
      Serializa el estado completo a un String. Formato: casilla00,casilla01,...,casilla22;ganador
      Specified by:
      serializarEstado in class Juego
      Returns:
      String con el estado serializado.
    • deserializarEstado

      public void deserializarEstado(String s)
      Restaura el estado desde un String serializado.
      Specified by:
      deserializarEstado in class Juego
      Parameters:
      s - String con el estado serializado previamente.
    • terminar

      public void terminar()
      Marca la partida como finalizada.
      Specified by:
      terminar in class Juego
    • jugarTurno

      public boolean jugarTurno(String username, char ficha, int fila, int columna)
      Realiza una jugada en la posición indicada.
      Parameters:
      username - username del jugador
      ficha - 'X' o 'O'
      fila - 0-2
      columna - 0-2
      Returns:
      true si la jugada fue válida
    • casillaOcupada

      private boolean casillaOcupada(int fila, int columna)
    • hayVictoria

      private boolean hayVictoria(char ficha)
    • tableroLleno

      private boolean tableroLleno()
    • getGanador

      public String getGanador()
      Devuelve el username del ganador de la partida.
      Returns:
      username del ganador, o null si no hay ganador todavía (empate o en curso)
    • getTablero

      public char[][] getTablero()
      Devuelve una copia del tablero para evitar modificaciones externas.
      Returns:
      matriz 3x3 con el estado actual; celdas vacías contienen ' '