import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { private static int[][] juego = new int[3][3]; private static int ganador; public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int jugador = 1; empate(); do { if (jugador == 0) { jugador = 1; } else { jugador = 0; } boolean listo = false; do { try { System.out.println("Intro las coordenadas de manera seguido: 11, 12, 13, 21, 22, ...:"); String e = br.readLine(); if (e.equals("11") || e.equals("12") || e.equals("13") || e.equals("21") || e.equals("22") || e.equals("23") || e.equals("31") || e.equals("32") || e.equals("33")) { listo = juego(jugador, e); } else { System.out.println("Movimiento fuera de rango"); } } catch (IOException | NumberFormatException ex) { System.out.println("Únicamente valores numéricos."); } } while (!listo); visualizarTablero(); comprobarGanador(); if (ganador == 0) { System.out.println("El jugador 1 es el Ganador"); } else if (ganador == 1) { System.out.println("El jugador 2 es el Ganador"); } } while (ganador == -1); } private static void comprobarGanador() { // Horizontal for (int[] h : juego) { if (h[0] == 0 && h[1] == 0 && h[2] == 0) { ganador = 0; } else if (h[0] == 1 && h[1] == 1 && h[2] == 1) { ganador = 1; } } // Vertical for (int v = 0; v < juego[0].length; v++) { if (juego[0][v] == 0 && juego[1][v] == 0 && juego[2][v] == 0) { ganador = 0; } else if (juego[0][v] == 1 && juego[1][v] == 1 && juego[2][v] == 1) { ganador = 1; } } // cruz if (juego[0][0] == 0 && juego[1][1] == 0 && juego[2][2] == 0 || juego[0][2] == 0 && juego[1][1] == 0 && juego[2][0] == 0) { ganador = 0; } else if (juego[0][0] == 1 && juego[1][1] == 1 && juego[2][2] == 1 || juego[0][2] == 1 && juego[1][1] == 1 && juego[2][0] == 1) { ganador = 1; } else { if (juego[0][2] != -1 && juego[1][2] != -1 && juego[2][2] != -1 && juego[1][1] != -1 && juego[1][3] != -1 && juego[2][1] != -1 && juego[0][3] != -1) { System.out.println("Empate!\n"); empate(); } } } private static void empate() { ganador = -1; for (int[] ints : juego) { Arrays.fill(ints, -1); } System.out.println(" 1 2 3\n" + "1 . . .\n" + "2 . . .\n" + "3 . . ."); } private static void visualizarTablero() { StringBuilder tab = new StringBuilder(); tab.append(" 1 2 3 \n"); for (int x = 0; x < juego.length; x++) { tab.append(x + 1).append(" "); for (int y = 0; y < juego[x].length; y++) { tab.append((juego[x][y] == -1) ? "· " : (juego[x][y] == 0) ? "O " : "X "); } tab.append("\n"); } System.out.println(tab.toString()); } private static boolean juego(int jugador, String coordenada) { int x = Integer.parseInt(coordenada.substring(0, 1)) - 1; int y = Integer.parseInt(coordenada.substring(1, 2)) - 1; if (juego[x][y] == -1) { juego[x][y] = jugador; System.out.println("Listo!"); return true; } else { System.out.println("Ya ocupado!"); return false; } } }[/aux_code]
3 en Raya con Array
con
No hay comentarios
[aux_code language=»javascript» theme=»tomorrow» title=»3 en Raya con Array» extra_classes=»»]