[vc6] puissance 4 avec ia : négamax, variante du minimax

Description

bon, ce prog je l'ai juste écris pour la partie algorithmique qui m'intéressait, le reste c'est de la pature graphique. Voila je vous laisse plancher dessus :o)
Vous pouvez y jouer dans le zip(Attention garder l'arborescence)
Version du : 4/06/2002

Source / Exemple :


//Algorithme de recherche de la meilleure solution

int CGrille::Algo(BYTE n, int alpha, int beta, BYTE CouleurCourrante)
{
	BYTE	j;
	int		Maxi = -INFINI;
	// ======== ALGORITHME Négamax =========== //
	// *************************************** //
	// *************************************** //
	if (!n)
	{

		return this->evalStatiq(CouleurCourrante);

	}//if (!n)

	//Sinon faire la récursivité
	else
	{
		for(BYTE kmax=0;kmax < 7 && alpha < beta; kmax++)
		{
			j=RenvoieLignePionPHaut(kmax);
			if(!j)
				continue;
			//Inser le Pion
			this->	inserPion(kmax,CouleurCourrante);

			//Test si il y a un gagnant
			if(this->gagne() & CouleurCourrante)
			{
				if( n == Profondeur )
						LaColonne = kmax;
				//Retire le pion
				this->	retirePion(kmax);
				return 1000000;
			}

			Maxi = alpha;
			alpha = max(alpha, -Algo(n-1, -beta, -alpha,CouleurInverse(CouleurCourrante)));
			
			//Retire le pion
			this->	retirePion(kmax);

			//Si c la première fois ke l'algo est lancé, on enregistre LaColonne ...
			if( n == Profondeur )
			{
				if(alpha > Maxi)
					LaColonne = kmax;
			}
		}//for (7 colonnes)
		return alpha;
	}//fin else du if(!n)
	

}

Conclusion :


Nouvelle version !!!. Voila, Si vous avez des suggestions : galett@voila.fr
version : 04/06/2002

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.