import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { private static String[][] tablero = new String[6][7]; private static int jug = 1; public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int x; cargarTablero(); do { try { String e = br.readLine(); if (e.equalsIgnoreCase("fin")) { System.out.println("Me despido..."); x = -1; } else { x = Integer.parseInt(e); if (x > 0 && x <= 7) { if (insertar(x - 1)) { visualizar(); if (comprobar()) { System.out.println("El jugador " + jug + " es el ganador"); x = -1; } else { jug = jugador(); System.out.println("Jugador " + jug + ", selecciona del 1 al 7 para colocar la ficha: (fin para finalizar)"); } } else { System.out.println("Posición llena."); x = 0; } } else { System.out.println("Posición no válida."); x = 0; } } } catch (IOException | NumberFormatException e) { x = 0; System.out.println("Posición no válida."); } } while (x >= 0); } private static int jugador() { if (jug == 1) { return 2; } else { return 1; } } private static boolean comprobar() { return horizontal() || vertical() || diagonal(); } private static boolean horizontal() { boolean es = false; for (int x = 0; x < tablero.length && !es; x++) { StringBuilder linea = new StringBuilder(); for (int y = 0; y < tablero[x].length; y++) { linea.append(tablero[x][y]); } if (linea.toString().contains("1111") || linea.toString().contains("2222")) { es = true; } } return es; } private static boolean vertical() { boolean es = false; for (int x = 0; x < tablero[0].length && !es; x++) { StringBuilder linea = new StringBuilder(); for (String[] strings : tablero) { linea.append(strings[x]); } if (linea.toString().contains("1111") || linea.toString().contains("2222")) { es = true; } } return es; } private static boolean diagonal() { boolean es = false; StringBuilder linea = new StringBuilder(); int x = 3; int y = 6; for (int a = 0; a < 3 && !es; a++) { int e = x + a; // hacia abajo for (int b = 0; b <= 3 && !es; b++) { int d = y - b; for (int c = 0; c <= 3; c++) { linea.append(tablero[e - c][d - c]); } if (linea.toString().contains("1111") || linea.toString().contains("2222")) { es = true; } } // hacia arriba for (int b = 6; b >= 3 && !es; b--) { int d = y - b; for (int c = 0; c <= 3; c++) { linea.append(tablero[e - c][d + c]); } if (linea.toString().contains("1111") || linea.toString().contains("2222")) { es = true; } } } return es; } private static boolean insertar(int linea) { if (tablero[0][linea].equals("0")) { for (int x = tablero.length - 1; x >= 0; x--) { if (tablero[x][linea].equals("0")) { if (jug == 1) tablero[x][linea] = "1"; else tablero[x][linea] = "2"; x = -1; } } return true; } else { return false; } } private static void visualizar() { for (String[] strings : tablero) { for (String string : strings) { System.out.print(string); } System.out.print("\n"); } } private static void cargarTablero() { for (int x = 0; x < tablero.length; x++) { for (int y = 0; y < tablero[x].length; y++) { tablero[x][y] = "0"; System.out.print("0"); } System.out.print("\n"); } System.out.println("Jugador " + jug + ", selecciona del 1 al 7 para colocar la ficha: (fin para finalizar)"); } }[/aux_code]
4 en raya
con
No hay comentarios
[aux_code language=»javascript» theme=»tomorrow» title=»4 en raya» extra_classes=»»]