1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| // Fonction d'intelligence artificielle
int IA(
int profondeur,
int JoueurActuel,
int grille_simuler[LIGNE][COLONNE],
int x)
{
profondeur--; // on descend dans la profondeur du calcul
int solution = 0;
PlacerJeton(joueurActuel, x ,ligne_simuler, grille_simuler);
if (VerifierVictoire(joueurActuel, grille_simuler) == false) // Si ce que je joue ne me fait pas tout de suite gagner
{
if (profondeur != 0) // Tant que la profondeur maximal n'est pas atteinte, on continue de jouer
{
int ligne_simuler; // Correspond a la ligne simuler par l'IA
int c; // Correspond a la colonne simuler jouer par le joueur adverse
ligne_simuler = DeterminerLigne(x, grille_simuler); // On détermine la ligne de jeu pour la colonne x
PlacerJeton(joueurActuel, x ,ligne_simuler, grille_simuler); // On place le pion a la case définit
x++ ; // On incrémente x
// On change de joueur
if (joueurActuel == 'X')
joueurActuel = 'O';
else
joueurActuel = 'X';
for (int i = 0 ; i < COLONNE ; i++) // On parcour de nouveau toute les colonnes possible
{
if (DeterminerLigne(c, grille) != 6) // On vérifie si la colonne n'est pas pleine
{
c = IA(profondeur,joueurActuel,grille_simuler,i); // Appel récursif de IA pour prévoir tout les coups
}
}
}
}
// Si ce que l'IA vient de jouer la fait gagner, on retourne la colonne
if (VerifierVictoire(joueurActuel, grille_simuler) == true && joueurActuel == 'O')
{
return x;
}
// Cas ou on ne peut pas gagner, ou que la partie est finit
return 1; // Je retourne une valeur aléatoire, cette partie est a finir
} |
Partager