3 en raya

[aux_code language=»javascript» theme=»tomorrow» title=»3 en raya» extra_classes=»»]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    private static int p11 = -1;
    private static int p12 = -1;
    private static int p13 = -1;
    private static int p21 = -1;
    private static int p22 = -1;
    private static int p23 = -1;
    private static int p31 = -1;
    private static int p32 = -1;
    private static int p33 = -1;
    private static int ganador;

    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int e;
        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, ...:");
                    e = Integer.parseInt(br.readLine());
                    if (e == 11 || e == 12 || e == 13 || e == 21 || e == 22 || e == 23 || e == 31 || e == 32 || e == 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() {
        if (p11 == 0 && p12 == 0 && p13 == 0) {
            ganador = 0;
        } else if (p11 == 1 && p12 == 1 && p13 == 1) {
            ganador = 1;
        } else {
            if (p21 == 0 && p22 == 0 && p23 == 0) {
                ganador = 0;
            } else if (p21 == 1 && p22 == 1 && p23 == 1) {
                ganador = 1;
            } else {
                if (p31 == 0 && p32 == 0 && p33 == 0) {
                    ganador = 0;
                } else if (p31 == 1 && p32 == 1 && p33 == 1) {
                    ganador = 1;
                } else {
                    if (p11 == 0 && p21 == 0 && p31 == 0) {
                        ganador = 0;
                    } else if (p11 == 1 && p21 == 1 && p31 == 1) {
                        ganador = 1;
                    } else {
                        if (p21 == 0 && p22 == 0 && p23 == 0) {
                            ganador = 0;
                        } else if (p21 == 1 && p22 == 1 && p23 == 1) {
                            ganador = 1;
                        } else {
                            if (p11 == 0 && p22 == 0 && p33 == 0) {
                                ganador = 0;
                            } else if (p11 == 1 && p22 == 1 && p33 == 1) {
                                ganador = 1;
                            } else {
                                if (p33 == 0 && p22 == 0 && p31 == 0) {
                                    ganador = 0;
                                } else if (p33 == 1 && p22 == 1 && p31 == 1) {
                                    ganador = 1;
                                } else {
                                    if (p13 == 0 && p22 == 0 && p31 == 0) {
                                        ganador = 0;
                                    } else if (p13 == 1 && p22 == 1 && p31 == 1) {
                                        ganador = 1;
                                    } else {
                                        if (p12 == 0 && p22 == 0 && p32 == 0) {
                                            ganador = 0;
                                        } else if (p12 == 1 && p22 == 1 && p32 == 1) {
                                            ganador = 1;
                                        } else {
                                            if (p12 != -1 && p22 != -1 && p32 != -1 && p21 != -1 && p23 != -1 && p31 != -1 && p13 != -1) {
                                                System.out.println("Empate!\n");
                                                empate();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    private static void empate() {
        ganador = -1;
        p11 = -1;
        p12 = -1;
        p13 = -1;
        p21 = -1;
        p22 = -1;
        p23 = -1;
        p31 = -1;
        p32 = -1;
        p33 = -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");

        tab.append("1 ").append((p11 == -1) ? "· " : (p11 == 0) ? "O " : "X ");
        tab.append((p12 == -1) ? "· " : (p12 == 0) ? "O " : "X ");
        tab.append((p13 == -1) ? "· " : (p13 == 0) ? "O " : "X ").append("\n");

        tab.append("2 ").append((p21 == -1) ? "· " : (p21 == 0) ? "O " : "X ");
        tab.append((p22 == -1) ? "· " : (p22 == 0) ? "O " : "X ");
        tab.append((p23 == -1) ? "· " : (p23 == 0) ? "O " : "X ").append("\n");

        tab.append("3 ").append((p31 == -1) ? "· " : (p31 == 0) ? "O " : "X ");
        tab.append((p32 == -1) ? "· " : (p32 == 0) ? "O " : "X ");
        tab.append((p33 == -1) ? "· " : (p33 == 0) ? "O " : "X ").append("\n");

        System.out.println(tab.toString());
    }

    private static boolean juego(int jugador, int coordenada) {
        boolean estado = false;
        switch (coordenada) {
            case 11:
                if (p11 == -1) {
                    p11 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 12:
                if (p12 == -1) {
                    p12 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 13:
                if (p13 == -1) {
                    p13 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 21:
                if (p21 == -1) {
                    p21 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 22:
                if (p22 == -1) {
                    p22 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 23:
                if (p23 == -1) {
                    p23 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 31:
                if (p31 == -1) {
                    p31 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 32:
                if (p32 == -1) {
                    p32 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
            case 33:
                if (p33 == -1) {
                    p33 = jugador;
                    System.out.println("Listo!");
                    estado = true;
                } else {
                    System.out.println("Ya ocupado!");
                    estado = false;
                }
                break;
        }
        return estado;
    }
}
[/aux_code]
Etiquetas: Sin etiquetas

Añadir un comentario

Debes estar conectado para publicar un comentario