Algorithme jeu d'echec

Derto Messages postés 11 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 14 janvier 2009 - 17 déc. 2008 à 14:04
Derto Messages postés 11 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 14 janvier 2009 - 18 déc. 2008 à 10:45
Bonjour !

j'aurais besoin d'un peu d'aider pour la programmation d'un jeu d'echec.

J'utilise un Algorithme de type minimax utilisant une fonction récursive et je rencontre pas mal de problème, je m'embrouille un peu on va dire

Voici mon code brouillon qui n'est pas fonctionnel et j'aimerai un peu d'aide pour le finaliser.

Le premier problème est que fait comme cela, mon jeu ne prend pas en compte les réponses adverse.
Mais je n'arrive pas tellement a faire en sorte qu'il joue les coups blanc une profondeur sur deux.


Function analyse($positions_reel, $profondeur) // le plateau et la profondeur de la recherche.
{
$coups_possible coups_possible_noir($positions_reel); // renvoit un tableau avec la liste des coup possible du joueur noir (l'ordi), par exemple pour le premier coup $coups_possible[1][avant] case_avant et $coups_possible[1][apres] = case_apres
$score_meilleur_coup = -2000000;
$z = 1;
while ($coups_possible[$z][avant] != NULL)
{
$positions_reel_avant = $positions_reel; // fait une copie du plateau de jeu pour defaire le coup plus tard		
$positions_reel[$coups_possible[$profondeur][$z][apres]] = $positions_reel[$coups_possible[$z][avant]]; // on joue le coup
$positions_reel[$coups_possible [$z ][avant]] = 'vide';

if ($profondeur == 0)
{
$score_noir  = evaluation_noir($positions_reel);
$score_blanc  = evaluation_blanc($positions_reel);
$score  = $score_noir  - $score_blanc ;				
}
else
{ 
$score = analyse($positions_reel, $profondeur - 1);
}

$positions_reel = $positions_reel_avant ; // on defait le dernier coup

 if ($score  > $score_meilleur_coup)
 {
 $score_meilleur_coup  = $score ;
 $meilleur_coup = $z;
 }			 
 $z++;
}

return $score_meilleur_coup;
}


Merci d'avance ^^

3 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 déc. 2008 à 15:19
salut

ton code est illisible.

je te deconseille d'effectuer un minimax en php, ca va etre super lent... tu veux faire une IA ?