[Algorithme MinMax] Application au puissance 4
Bonjour a tous,
Je suis en train de faire un puissance 4 et je bloque sur un point : la réponse de l'ordinateur. J'ai deux problèmes qui me minent depuis une petite semaine et qui sont liés...
Le problème 1 : mon algo de min max n'arrive pas a bloqué le joueur lorsqu'en face il y a une potentielle victoire.
Le problème 2 : Parfois il jouer n'importe quoi... =(
Voici le méta code que j'ai implémenté.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function GetPlay(bool IsMax, long Deep)
{
si (HaveWin)
GetPlay= _WIN_VAL_
sinon
{
si IsFeuil ou Deep >= _MAX_DEEP_
getplay=EvalThisPosition
else
{
'j'initialise la valeur de retour a cause des min et des max
GetPlay=si(IsMax,-1,1)*_WIN_VAL_
pour chaque colonne
{
Play(Colonnne)
si IsMax
GetPlay=Max(GetPlay, GetPlay(not IsMax, deep+1))
sinon
GetPlay=Min(GetPlay, GetPlay(not IsMax, deep+1))
}
}
}
} |
j'en suis au fond du trou.
Question en plus, Comment faire pour gerer le niveau de jeu de l'ordinateur ?