La verdad no lei mucho el codigo puesto que si se me hizo muy am enredoso asi jeje, pero recorde que habia hecho algo asi hace tiempo y pues aqui te lo dejo si deceas:
TresRaya.java
Código Javascript
:
Ver originalpackage TresEnRaya;
import java.util.*;
public class TresRaya
{
private char [][] tablero = new char[3][3];
private int jugador = 1;
private char clave;
private boolean HayDisponibles;
private boolean Ganador = false;
private Scanner leer = new Scanner(System.in);
public TresRaya()
{
for(int x = 0; x < 3; x++)
for(int xx = 0; xx < 3; xx++)
tablero[x][xx] = 'T';
}
public void jugar()
{
do{
if(jugador == 1)
{
SOP("Turno Jugador 1\n");
jugador = 2;
clave = 'X';
}else{
SOP("Turno Jugador 2\n");
jugador = 1;
clave = 'O';
}
MostrarTabla();
SOP("\nPosiciones Disponibles");
SOP("\n");
int [] pos = Posiciones();
tablero[pos[0]][pos[1]] = clave;
checar();
}while(HayDisponibles && !Ganador);
if(!Ganador)
SOP("Empate No Hubo Ganadores!!");
}
private void ChecarGanador()
{
char X = 'X', O = 'O';
if((tablero[0][0] == X && tablero[0][1] == X && tablero[0][2] == X) ||
(tablero[1][0] == X && tablero[1][1] == X && tablero[1][2] == X) ||
(tablero[2][0] == X && tablero[2][1] == X && tablero[2][2] == X) ||
(tablero[0][0] == X && tablero[1][1] == X && tablero[2][2] == X) ||
(tablero[0][2] == X && tablero[1][1] == X && tablero[2][0] == X) ||
(tablero[0][0] == X && tablero[1][0] == X && tablero[1][0] == X) ||
(tablero[1][0] == X && tablero[1][1] == X && tablero[1][2] == X) ||
(tablero[2][0] == X && tablero[2][1] == X && tablero[2][2] == X))
{
SOP("Jugador 1 ha ganado!!");
Ganador = true;
}
if((tablero[0][0] == O && tablero[0][1] == O && tablero[0][2] == O) ||
(tablero[1][0] == O && tablero[1][1] == O && tablero[1][2] == O) ||
(tablero[2][0] == O && tablero[2][1] == O && tablero[2][2] == O) ||
(tablero[0][0] == O && tablero[1][1] == O && tablero[2][2] == O) ||
(tablero[0][2] == O && tablero[1][1] == O && tablero[2][0] == O) ||
(tablero[0][0] == O && tablero[1][0] == O && tablero[1][0] == O) ||
(tablero[1][0] == O && tablero[1][1] == O && tablero[1][2] == O) ||
(tablero[2][0] == O && tablero[2][1] == O && tablero[2][2] == O))
{
SOP("Jugador 2 ha ganado!!");
Ganador = true;
}
}
private void checar()
{
ChecarGanador();
if(!Ganador)
{
HayDisponibles = false;
for(int x = 0; x < 3; x++)
for(int xx = 0; xx < 3; xx++)
if(tablero[x][xx] == 'T')
HayDisponibles = true;
}
}
private void MostrarTabla()
{
for(int x = 0; x < 3; x++)
{
for(int xx = 0; xx < 3; xx++)
{
System.out.print(tablero[x][xx]);
if( xx < 2)
System.out.print("|");
}
System.out.println();
}
}
private int [] Posiciones()
{
int [][] resp = new int[10][2];
int cont = 0;
for(int x = 0; x < 3; x++)
{
for(int xx = 0; xx < 3; xx++)
{
if(tablero[x][xx] == 'T')
{
cont++;
SOP(cont + ".- [" + x + "][" + xx + "]");
resp[cont][0] = x;
resp[cont][1] = xx;
}
}
}
int ver = -1;
do{
SOP("\nQue Posicion deceas?");
ver = leer.nextInt();
}while(ver <= 0 || ver > cont);
int [] devolver = { resp[ver][0], resp[ver][1] };
return devolver;
}
public void SOP(String msj)
{
System.out.println(msj);
}
}
Principal.java
Código Javascript
:
Ver originalpackage TresEnRaya;
public class Principal
{
public static void main(String[] args)
{
TresRaya Juego = new TresRaya();
Juego.jugar();
}
}