Curso de JavaFX | Tres en raya - con FXML 1

Curso de JavaFX
Tres en raya - con FXML

Curso de JavaFX | Tres en raya - con FXML 2

En esta lección aprenderemos a crear el clásico juego Tres en raya utilizando JavaFX y archivos FXML. Usaremos eventos para manejar la interacción del usuario, y exploraremos cómo asociar IDs y controlar las acciones de cada jugador. Además, implementaremos la lógica necesaria para determinar al ganador.

  • Para detectar la pulsación de una casilla utilizaremos el evento onAction en lugar del evento onMouseClicked. De lo contrario si pulsasemos sobre el texto que hay en el botón, el target sería el label en lugar del propio botón.
  • Cada vez que pulsemos sobre una casilla, obtendremos la id de la casilla. Habremos asignado esa id a cada una de las casillas utilizando el Scene Editor. Utilizaremos esa id para ir rellenando con el color del jugador que ha pulsado sobre la casilla el array del tablero. Para recuperar la id de la casilla, utilizaremos el siguiente código:
@FXML
public void btnPulsado(Event e) {
 Button b = (Button) e.getTarget();
 int id = Integer.parseInt(b.getId());
 ...
}
  • Después de cada tirada, se comprobará si alguien ha ganado llamando al método evaluateWin(String [] tablero);
  • El método evaluateWin(String [] tablero) mediante sucesivos if evaluará todas las posibilidades de que un jugador gane.

Probar el juego

  1. Ejecuta la aplicación y juega turnos alternos entre los jugadores.
  2. Observa los mensajes en la consola cuando alguien gana.
  3. Añade mejoras como reiniciar el juego o mostrar un mensaje en la interfaz.

¡Con este proyecto has aprendido a crear un juego funcional en JavaFX con FXML! Continúa practicando para agregar más características.