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