Galera estou fazendo uma trabalho da escola em que tenho que desenvolver um jogo da velha de um humano vs o computador e quero ajudar para desenvolver a IA do jogo. A IA e baseada na seguinte heurística:
Para cada posição desocupada no tabuleiro, some:
Mais 02 pontos se a posição for a central;
Mais 01 ponto se a posição estiver nos quatro cantos da matriz;
Menos 02 pontos, se já houver uma ou mais peças do adversário na mesma linha, coluna ou diagonal onde a posição se encontra;
Mais 04 pontos se a posição impedir a vitória do adversário;
Mais 04 pontos se a posição levar a uma vitória;
Ao final, a posição escolhida será aquela que tiver o maior número de pontos.
O código está aí
A variável “mac” era que eu estava tentando pegar uma variável do tipo String que é o marcador X ou O e tentando converter para inteiro, mas não está dando certo.
Eu quero saber uma forma mais fácil de fazer isso sem ser tão manual.
O meu professor falou para usar três laços do tipo for, mas não sei como usar.
static void escolherJogadaComputador(int inteligencia[][], String tabuleiro[][], int mac){
for(int i = 0; i < tabuleiro.length; i++){
for(int m = 0; m < tabuleiro[i].length; m++){
if(inteligencia[2][2] == 0 ){
inteligencia[2][2] = 2;
}
if((inteligencia[1][1] == 0) || (inteligencia[3][1] == 0) || (inteligencia[3][3] == 0) || (inteligencia[1][3] == 0)){
inteligencia[1][1] = 1;
inteligencia[3][1] = 1;
inteligencia[3][3] = 1;
inteligencia[1][3] = 1;
}
if((inteligencia[1][1] == mac) || (inteligencia[1][2] == mac) || (inteligencia[1][3] == mac)|| (inteligencia[2][1] == mac) || (inteligencia[2][2] == mac))
if((inteligencia[2][3] == mac) || (inteligencia[3][1] == mac) || (inteligencia[3][2] == mac)|| (inteligencia[3][3] == mac)){
inteligencia[1][1] = 4;
inteligencia[1][2] = 4;
}
}
}
}