Fiz um jogo da velha para 2jogadores, mas estou querendo colocar para um jogador apenas. porém estou com dificuldade para fazer as jogadas do computador e implementar no código. O computador contendo 3Dificuldades Exemplo: fácil, médio e difícil.
package com.JVelha;
import java.util.Scanner;
public class JogoVelha {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
Ms jogo = new Ms();
String posicao;
int valida = 0, Jogadas = 0;
while(true) {
System.out.println("+++++Jogo Da Velha+++++");
jogo.Mostrar();
do {//inicia o primeiro jogador
System.out.print("Jogador 1, informe a posição: ");
posicao = ler.next();
while(!jogo.Valido(posicao)) {
System.out.println("Jogada Invalida, Escolha Outra Posição!!!");
System.out.print("Jogador 1, informe a posição: ");
posicao = ler.next();
valida = 0;
}
jogo.jogada(posicao, "X");
valida = 1;
}while(valida == 0);//fim primeiro jogador
Jogadas++;
valida = 0;
jogo.Mostrar();
if(!jogo.Ganhou(Jogadas).equals("null")) {
break;
}
do {//inicia o segundo jogador
System.out.print("Jogador 2, informe a posição: ");
posicao = ler.next();
while(!jogo.Valido(posicao)) {
System.out.println("Jogada Invalida, Escolha Outra Posição!!!");
System.out.print("Jogador 2, informe a posição: ");
posicao = ler.next();
valida = 0;
}
jogo.jogada(posicao, "O");
valida = 1;
}while(valida == 0);//fim segundo jogador
Jogadas++;
valida = 0;
jogo.Mostrar();
if(!jogo.Ganhou(Jogadas).equals("null")) {
break;
}
}
System.out.println("O "+jogo.Ganhou(Jogadas)+" Venceu!");
}
}
________________________________________________________________________________________________________________________
package com.JVelha;
public class Ms {
private String[][] m = {{"1","2","3"},
{"4","5","6"},//Tabuleiro
{"7","8","9"}};
public String Mostrar() {
for(int linha=0; linha<3; linha++) {
for(int coluna=0; coluna<3; coluna++) {
System.out.printf(" "+ m[linha][coluna]);
}
System.out.println("\n");
}
return null;
}
public boolean Valido(String p) {
for(int linha=0; linha<3; linha++) {
for(int coluna=0; coluna<3; coluna++) {
if(m[linha][coluna].equals(p))
return true;
}
}
return false;
}
public void jogada(String p, String j) {
if(p.equals("1"))
m[0][0] = j;
else if(p.equals("2"))
m[0][1] = j;
else if(p.equals("3"))
m[0][2] = j;
else if(p.equals("4"))
m[1][0] = j;
else if(p.equals("5"))
m[1][1] = j;
else if(p.equals("6"))
m[1][2] = j;
else if(p.equals("7"))
m[2][0] = j;
else if(p.equals("8"))
m[2][1] = j;
else if(p.equals("9"))
m[2][2] = j;
}
public String Ganhou(int jogadas) {
String[] T = new String[8];
String vencedor = "null";
if(jogadas == 9) {
vencedor = "EMPATE";
}
T[0] = m[0][0] + m[0][1] + m[0][2];
T[1] = m[1][0] + m[1][1] + m[1][2];
T[2] = m[2][0] + m[2][1] + m[2][2];
T[3] = m[0][0] + m[1][0] + m[2][0];
T[4] = m[0][1] + m[1][1] + m[2][1];
T[5] = m[0][2] + m[1][2] + m[2][2];
T[6] = m[0][0] + m[1][1] + m[2][2];
T[7] = m[0][2] + m[1][1] + m[2][0];
for(int i=0; i<T.length; i++) {
if(T[i].equals("XXX")) {
vencedor = "Jogador 1";
}else if(T[i].equals("000")) {
vencedor = "Jogador 2";
}
}
return vencedor;
}
}