Bom dia amigos, estou precisando de uma ajuda, tenho um trabalho para entregar que precisa seguir a seguinte lógica:
Implementação de um jogo da velha (utilizando Min-Max), o programa precisa ser feito utilizando árvores, uma vez que haverá como escolher o nível de dificuldade, sendo este nível, o número de linhas que a IA percorrerá na árvore (por exemplo: nível máximo -> percorre a árvore toda (nunca perde)).
Meu professor já disponibilizou uma função que cria todas as jogadas possíveis, dessa forma, eu preciso encontrar algum jeito de implementá-la no código, segue o mesmo:
#include<stdio.h>
#define quantidadePossibilidades 9
unsigned int vetorDisponibilidadeJogada[quantidadePossibilidades];
unsigned int vetorJogadas[9];
void imprimeJogada () {
int i;
for (i = 0; i < quantidadePossibilidades; i++){
printf("%d, ", vetorJogadas[i]);
}
printf("\n");
getchar();
}
void funcaoRecursivaPossibilidades (int alturaDaArvore) {
int i = 0;
if (alturaDaArvore == quantidadePossibilidades){
printf("Chegou ao fim da Arvore: ");
imprimeJogada();
}
else {
for (i = 0; i < quantidadePossibilidades; i++){
if (vetorDisponibilidadeJogada[i] == 1){
vetorDisponibilidadeJogada[i] = 0;
vetorJogadas[alturaDaArvore] = i;
funcaoRecursivaPossibilidades(alturaDaArvore + 1);
vetorDisponibilidadeJogada[i] = 1;
}
}
}
}
void inicializaVetorPossibilidades (){
int i;
for (i = 0; i < quantidadePossibilidades; i++){
vetorDisponibilidadeJogada[i] = 1;
}
}
main () {
/*inicializando o vetor de possibilidades
- no inicio, todas as possibilidades de jogada
estão disponiveis*/
inicializaVetorPossibilidades();
/*funcao recursiva para enumerar todas as possibilidades de jogada*/
funcaoRecursivaPossibilidades(0);
}
De forma resumida, tenho que criar uma árvore com todas as jogadas possíveis e ao utilizar o min-max fazer a IA escolher as melhores jogadas baseada na dificuldade.
Estou utilizando a seguinte estrutura para criação de nós da árvore:
typedef struct no
{
int minimax;
struct no *posicao[9];
int valor;
} node;
Preciso de ajuda para a construção da árvore (implementação da função inserir), espero que possam me ajudar e me perdoem por qualquer erro.