-
-
Save parzibyte/e892554183163bba05f774efbaf9ab7d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
static void iniciarJuego(int modo) { | |
if (modo != JUGADOR_JUGADOR && modo != JUGADOR_CPU && modo != CPU_CPU) { | |
System.out.print("Modo de juego no permitido"); | |
return; | |
} | |
// Para que salgan cosas aleatorias | |
// Iniciar tablero de juego | |
char[][] tablero = new char[FILAS][COLUMNAS]; | |
// Y limpiarlo | |
limpiarTablero(tablero); | |
// Elegir jugador que inicia al azar | |
char jugadorActual = jugadorAleatorio(); | |
System.out.printf("El jugador que inicia es: %c\n", jugadorActual); | |
int x = 0, y = 0; | |
// Y allá vamos | |
int[] coordenadas = new int[2]; | |
while (true) { | |
imprimirTablero(tablero); | |
if (modo == JUGADOR_JUGADOR || (modo == JUGADOR_CPU && jugadorActual == JUGADOR_X)) { | |
System.out.printf("Jugador %c. Ingresa coordenadas (x,y) para colocar la pieza\n", jugadorActual); | |
do { | |
x = solicitarNumeroValido("Ingresa X: ", 1, COLUMNAS); | |
y = solicitarNumeroValido("Ingresa Y: ", 1, FILAS); | |
if (!coordenadasVacias(y - 1, x - 1, tablero)) { | |
System.out.println("Coordenadas ocupadas. Intenta de nuevo"); | |
} | |
} while (!coordenadasVacias(y - 1, x - 1, tablero)); | |
// Al usuario se le solicitan números comenzando a contar en 1, pero en los arreglos comenzamos desde el 0 | |
// así que necesitamos restar uno en ambas variables | |
x--; | |
y--; | |
} else if (modo == CPU_CPU || jugadorActual == JUGADOR_CPU_O) { | |
// Si es modo CPU contra CPU o es el turno del CPU, dejamos que las coordenadas las elija | |
// el programa | |
coordenadas = elegirCoordenadasCpu(jugadorActual, tablero); | |
x = coordenadas[0]; | |
y = coordenadas[1]; | |
} | |
// Sin importar cuál modo haya sido, colocamos la pieza según las coordenadas elegidas | |
colocarPieza(y, x, jugadorActual, tablero); | |
// Puede que después de colocar la pieza el jugador gane o haya un empate, así que comprobamos | |
if (comprobarSiGana(jugadorActual, tablero)) { | |
imprimirTablero(tablero); | |
System.out.printf("El jugador %c gana\n", jugadorActual); | |
return; | |
} else if (empate(tablero)) { | |
imprimirTablero(tablero); | |
System.out.print("Empate"); | |
return; | |
} | |
// Si no, es turno del otro jugador | |
jugadorActual = oponenteDe(jugadorActual); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment