Diseño Del Juego 3 en Raya
Diseño Del Juego 3 en Raya
Diseño Del Juego 3 en Raya
Debes desarrollar el juego 3 en raya en el que los dos jugadores sean humanos, a través de las
siguientes:
Orientaciones Generales:
1.- Diseño del Tablero: Debes decidir si quieres representar el tablero como una matriz 3x3.
Lo habitual es que inicialices la matriz con valores 0 (cero) en todos sus valores. El valor 0
(cero) representa que la casilla queda libre. Como vas a tener dos jugadores puedes
seguir las siguientes instrucciones: el valor 1 en cualquier lugar de la matriz significa que la
casilla está ocupada por el jugador 1. De forma análoga puedes hacerlo con el jugador 2.
2.- Turnos de Jugadores: Sería buena idea que tuvieras una variables llamada "turno". Esta
variable debería cambiar de valor desde el "1" hasta el "2" y vuelta a empezar. De esta
manera puedes mostrar mensajes en pantalla del tipo "Es el turno del jugador X" o también
puedes hacer que en cualquier casilla de la matriz introduzcas el valor del turno,
representando a los jugadores 1 ó 2.
3.- Establecer cómo alternar entre los turnos de los jugadores (jugador 1 y jugador 2).
Puedes hacer un método para este asunto o simplemente puedes tener una variable
entera, que comienza en 1 y queda cada vez que su aumenta el turno se le agrega una
unidad y, al resultado, se le calcula el módulo de la división entre 2, además de sumar
uno. En resumen: turno = ((turno + 1) % 2) + 1 - Este código consigue alternar el turno
entre los valores 1 y 2.
5.- Verificación del Ganador: Implementa la lógica (programación) para verificar si hay un
ganador después de cada movimiento.
6.- Bucle general: Todo el juego debería ser un bucle de tipo "do while" que repita las
mismas acciones 2 al 5.
Finalización del Juego: Decidan cómo terminar el juego cuando haya un ganador o si el
tablero está lleno (empate).
A modo orientativo, te facilito los siguientes nombres de métodos. Recuerda que son sólo
orientativas y depende de tu forma de enfocar este ejercicio.
void imprimirTablero(
int tablero[][] )
void realizarMovimiento(
int tablero[][], int fila, int columna, int jugador) // En lugar de "jugador" puedes usar el
"turno"
void esMovimientoValido(
int tablero[][])
main(String[] args)
Recuerda que, si terminas a tiempo todo lo anterior y te apetece, puedes pasar a los siguientes
niveles:
El programa desarrolla una pequeña IA que evita que el jugador humano consiga ganar.
El programa desarrolla una IA más elaborada que intenta ganar cuando detecta que
tiene "2 en línea".
¡Suerte!!!!!
import java.util.Scanner;
int turno = 1;
int ganador = 0;
do {
mostrarTablero(tablero);
do {
fila = input.nextInt();
columna = input.nextInt();
tablero[fila][columna] = turno;
ganador = verificarGanador(tablero);
// Alternar turno
turno = ((turno + 1) % 2) + 1;
mostrarTablero(tablero);
if (ganador != 0) {
} else {
System.out.println("Tablero:");
if (tablero[i][j] == 0) {
System.out.print(" - ");
} else if (tablero[i][j] == 1) {
System.out.print(" X ");
} else {
System.out.print(" O ");
if (j < 2) {
System.out.print("|");
System.out.println();
if (i < 2) {
System.out.println("-----------");
}
return false;
if (tablero[fila][columna] != 0) {
return false;
return true;
return tablero[i][0];
return tablero[0][i];
// Verificar diagonales
return tablero[0][0];
return tablero[0][2];
}
return 0;
if (tablero[i][j] == 0) {
return false;
return true;