/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package tictactoe; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author roshka */ public class TicTacToe { /** * @param args the command line arguments */ public static void main(String[] args) { System.out.println("Bienvenido al TA-TE-TI de Fernando del Bootcamp 004 de Roshka"); try (Scanner entrada = new Scanner(System.in)) { int[][] tabla = new int[3][3]; int i = 0, j = 0; int jugadorActual = 1; boolean hayGanador = false; do { if (jugadorActual == 1) { System.out.println(" X -> Ingrese jugada: "); System.out.print("Siguiente jugada: "); }else{ System.out.println(" O -> Ingrese jugada: "); System.out.print("Siguiente jugada: "); } String fc = entrada.nextLine().toUpperCase(); i = fc.charAt(0) - 'A'; j = fc.charAt(1) - '1'; // Si la celda ya fue marcada por un jugador, anular la jugada if (tabla[i][j] > 0) { System.out.println(" ERR: Jugada Inválida - Casilla Ocupada"); // Ignora todo el codigo que viene después // y continua a la siguiente iteración del while continue; } else { // Guardar jugador en la celda tabla[i][j] = jugadorActual; // guardar el numero de jugador // Dibujar la tabla para representar la jugada for (int f = 0; f < tabla.length; f++) { for (int c = 0; c < tabla.length; c++) { // Imprimir simbolo según contenido de la celda switch(tabla[f][c]) { case 0: System.out.print("-"); break; // vacio case 1: System.out.print("X"); break; // jugador 1 case 2: System.out.print("O"); break; // jugador 2 } // Separador de columnas System.out.print(" | "); } // Separador de filas System.out.println("\n-----------"); } } // Chequear si el jugador actual hizo la jugada ganadora // Diagonal principal if (tabla[0][0] == jugadorActual && tabla[1][1] == jugadorActual && tabla[2][2] == jugadorActual) { hayGanador = true; if (jugadorActual==1) { System.out.println(" GANADOR X: "+fc); } } // Diagonal secundaria else if (tabla[0][2] == jugadorActual && tabla[1][1] == jugadorActual && tabla[2][0] == jugadorActual) { hayGanador = true; if (jugadorActual==2) { System.out.println(" GANADOR O: "+fc); } } // Rectas else { // Chequear en las 3 filas for (int f = 0; f < tabla.length; f++) { // Recta horizontal if (tabla[f][0] == jugadorActual && tabla[f][1] == jugadorActual && tabla[f][2] == jugadorActual) { hayGanador = true; if (jugadorActual==1) { System.out.println(" GANADOR X: "+fc); }else{ System.out.println(" GANADOR O: "+fc); } // Salir del for break; } } // Chequear en las 3 columnas for (int c = 0; c < tabla.length; c++) { // Recta vertical if (tabla[0][c] == jugadorActual && tabla[1][c] == jugadorActual && tabla[2][c] == jugadorActual) { hayGanador = true; System.out.println("GANADOR " + jugadorActual + "!"); // Salir del for break; } } } // Pasar el turno al siguiente jugador // equivalente a if(jugadorActual == 1) jugadorActual = 2; else jugadorActual = 1; jugadorActual = jugadorActual == 1 ? 2 : 1; } while (!hayGanador); } } public static void html(int tabla[][]){ PrintWriter writer; try { writer = new PrintWriter("tateti.html"); writer.println("\n" + "\n" + "\n" + "TaTeTi\n" + "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
"+tabla[0][0]+""+tabla[0][1]+""+tabla[0][2]+"
"+tabla[1][0]+""+tabla[1][1]+""+tabla[1][2]+"
"+tabla[2][0]+""+tabla[2][1]+""+tabla[2][3]+"
\n" + "\n" + ""); } catch (FileNotFoundException ex) { Logger.getLogger(TicTacToe.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(TicTacToe.class.getName()).log(Level.SEVERE, null, ex); } } }