Salve, sto tentando di fare il giochino del tris in maniera che il computer giochi in maniera ottimale, ad ogno chiamata la funzione considera tutte le possibili "partire " partendo dalla casella selezionata in maniera ricorsiva, se ottiene che ovunque metta il suo simbolo con un giocatore perfetto dall' altro lato pareggia allora posiziona il simbolo in maniera random, scarta automaticamente le mosse che lo condurrebbero alla sconfitta e sceglie quelle che lo portano alla vittoria.
il codice è il seguente, la funzione ha come val di ritorno "casella" che una struttura definita con due interi che indicano le coordinate del del simbolo sullo schema di gioco, come parametri ha una matrice 3*3 di giocatori, giocatori è un tipo enumerazione che può valere O X. e VR è un altro tipo enumerazione che pùo valere continua, patta sconfitta o vittoria. Il tutto secondo me dovrebbe funzionare solo che c'è qualche errore che non riesco a trovare... qualcuno è in grado di aiutarmi? grazie.
codice:
Casella calcolaMossa (Giocatori tab[][3], Giocatori G, Voto &VR) {
//Posiziono il mio simbolo su una posizione vuota
//Controllo se la config e vincente
VR = v;
//cout<<v<<"voto"<<G<<endl;
if (v != Continua) {
//Ritorno la casella
}
else {
Casella c = //Chiamata ricorsiva
}
//stampa(tab);
tab[i][j] = N;
//stampa(tab);
}
}
}
/*Decisione della posizione dove effettuare la mossa*/
// Il tutto viene ripetuto per ogni casella cosi da visitare tutto l'albero decisionale
}