I am a beginner in java and I am doing a cat game, I need you to have a method in which the machine plays at random and another in which it plays calculatedly, trying to beat the user. I have no idea how to start to make the machine actively try to beat the player in each turn. This is the code that I have so far, I'm missing a couple of things and clean it up a bit but I want to have at least a base or idea of how to implement this competitive method before continuing in case you have something catastrophically wrong. p>
import javax.swing.JOptionPane;
public class Gato
{
String tabla[][];
char jugador;
boolean ganador;
public Gato()
{
tabla = new String[3][3];
for(int x = 0; x < 3; x++)
{
for(int y = 0; y < 3; y++)
{
tabla[x][y] = " ";
}
}
}
public void tablero()
{
for(int x = 0; x < 3; x++)
{
System.out.print("| ");
for(int y = 0; y < 3; y++)
{
System.out.print(tabla[x][y] + " | ");
}
System.out.println();
}
}
public boolean jugarRandom()
{
int x;
int y;
int xMaq;
int yMaq;
boolean ganador = false;
while(!ganador)
{
jugada();
}
return ganador;
}
public void encontrarGanadorMaq()
{
if (tabla[0][0]== "O" && tabla[0][1]== "O" && tabla [0][2]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[1][0]== "O" && tabla[1][1]== "O" && tabla [1][2]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[2][0]== "O" && tabla[2][1]== "O" && tabla [2][2]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[0][0]== "O" && tabla[1][0]== "O" && tabla [2][0]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[0][1]== "O" && tabla[1][1]== "O" && tabla [2][1]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[0][2]== "O" && tabla[1][2]== "O" && tabla [2][2]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[0][0]== "O" && tabla[1][1]== "O" && tabla [2][2]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
if (tabla[0][2]== "O" && tabla[1][1]== "O" && tabla [2][0]== "O") {
JOptionPane.showMessageDialog(null, "El ganador es la maquina ");
ganador = true;
}
}
public void encontrarGanadorUsu()
{
if (tabla[0][0]== "X" && tabla[0][1]== "X" && tabla [0][2]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[1][0]== "X" && tabla[1][1]== "X" && tabla [1][2]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
else if (tabla[2][0]== "X" && tabla[2][1]== "X" && tabla [2][2]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[0][0]== "X" && tabla[1][0]== "X" && tabla [2][0]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[0][1]== "X" && tabla[1][1]== "X" && tabla [2][1]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[0][2]== "X" && tabla[1][2]== "X" && tabla [2][2]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[0][0]== "X" && tabla[1][1]== "X" && tabla [2][2]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
if (tabla[0][2]== "X" && tabla[1][1]== "X" && tabla [2][0]== "X") {
JOptionPane.showMessageDialog(null, "Has ganado el juego");
ganador = true;
}
}
public void jugada()
{
int x;
int y;
int xMaq;
int yMaq;
x = Integer.parseInt(JOptionPane.showInputDialog("Digite una fila de 0 a 2"));
y = Integer.parseInt(JOptionPane.showInputDialog("Digite una columna de 0 a 2"));
tabla[x][y] = "X";
JOptionPane.showMessageDialog(null,"Turno de la maquina");
xMaq = (int)(Math.random()*3)+0;
yMaq = (int)(Math.random()*3)+0;
if (tabla[xMaq][yMaq] == "O" || tabla[x][y] == "X" ) {
xMaq = (int)(Math.random()*3)+0;
yMaq = (int)(Math.random()*3)+0;
tabla[xMaq][yMaq] = "O";
}
else
{
tabla[xMaq][yMaq] = "O";
}
tablero();
encontrarGanadorUsu();
encontrarGanadorMaq();
}
}