Class tresenraya
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
invalid reference
Partida
- Version:
- 2.1
- Author:
- Nacho
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringUsername del ganador.private char[][]Tablero 3x3.Fields inherited from class Juego
descripcion, juegoFinalizado, nombreJuego -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleancasillaOcupada(int fila, int columna) Comprueba si una casilla ya tiene una ficha.voidRestaura el estado desde un String serializado.Devuelve el estado actual del tablero en formato texto.char[][]Devuelve una copia del tablero para evitar modificaciones externas.private booleanhayVictoria(char ficha) Comprueba si la ficha dada tiene tres en línea.voidInicializa o reinicia la partida.booleanjugarTurno(String username, char ficha, int fila, int columna) Realiza una jugada en la posición indicada.Serializa el estado completo a un String.private booleanComprueba si el tablero está completamente lleno.voidterminar()Marca la partida como finalizada delegando en la clase padre.Methods inherited from class Juego
getDescripcion, getNombre, getPuntuacion, getPuntuaciones, isTerminado, sumarPuntos
-
Field Details
-
tablero
private char[][] tableroTablero 3x3. Cada celda contiene 'X', 'O' o ' ' si está vacía. -
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 ainicializar()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:
inicializarin classJuego
-
getEstadoTexto
Devuelve el estado actual del tablero en formato texto.Usa ' . ' para casillas vacías,
Xpara jugador 1 yOpara jugador 2. Si la partida ha terminado indica el resultado.- Specified by:
getEstadoTextoin classJuego- Returns:
- String con el tablero dibujado y el estado de la partida
-
serializarEstado
Serializa el estado completo a un String.Formato:
casilla00,casilla01,...,casilla22;ganador
Las casillas vacías se guardan como espacio' '. Si no hay ganador se guarda"null".- Specified by:
serializarEstadoin classJuego- Returns:
- String con el estado serializado
-
deserializarEstado
Restaura el estado desde un String serializado.El String debe tener el formato de
serializarEstado().- Specified by:
deserializarEstadoin classJuego- Parameters:
s- String con el estado serializado
-
terminar
-
jugarTurno
Realiza una jugada en la posición indicada.Coloca la ficha del jugador en (
fila,columna). Comprueba victoria o empate. El cambio de turno lo gestionaexternamente — esta clase no lo maneja.invalid reference
Partida- Parameters:
username- username del jugador que realiza la jugadaficha- ficha del jugador ('X' o 'O')fila- fila donde colocar la ficha (0-2)columna- columna donde colocar la ficha (0-2)- Returns:
truesi la jugada fue válida;falsesi la casilla estaba ocupada o el juego ya había terminado
-
casillaOcupada
private boolean casillaOcupada(int fila, int columna) Comprueba si una casilla ya tiene una ficha.- Parameters:
fila- fila de la casilla (0-2)columna- columna de la casilla (0-2)- Returns:
truesi la casilla está ocupada
-
hayVictoria
private boolean hayVictoria(char ficha) Comprueba si la ficha dada tiene tres en línea.Revisa las tres filas, tres columnas, diagonal principal (↘) y diagonal secundaria (↙).
- Parameters:
ficha- ficha a comprobar ('X' o 'O')- Returns:
truesi hay tres en línea
-
tableroLleno
private boolean tableroLleno()Comprueba si el tablero está completamente lleno.- Returns:
truesi no quedan casillas vacías
-
getGanador
- Returns:
- username del ganador, o
nullsi no hay ganador todavía
-
getTablero
public char[][] getTablero()Devuelve una copia del tablero para evitar modificaciones externas.- Returns:
- matriz 3x3 con el estado actual del tablero
-