Leinhardt
Messages postés2Date d'inscriptiondimanche 10 février 2008StatutMembreDernière intervention13 mai 2008
-
10 févr. 2008 à 14:03
Leinhardt
Messages postés2Date d'inscriptiondimanche 10 février 2008StatutMembreDernière intervention13 mai 2008
-
13 mai 2008 à 16:00
Bonjour à tous.
Je suis actuellement en dernière année de licence informatique et ce semestre, nous avons un projet à faire. Mes collègues et moi avons choisi de faire un jeu d'échec.
Aussi, le problème le plus épineux de ce projet nous semble être l'IA puisqu'elle devra être cohérente (et si possible performante). Seulement nous ne savons pas trop comment aborder la problématique qui se pose.
Aussi, j'aurais aimé savoir s'il existe des types d'algorithme particuliers pour aborder la chose ou avoir votre point de vue sur la question (savoir comment vous aborderiez le problème).
Je vous remercie d'avance pour votre aide et j'essaierai au possible de poster mes avancées sur la question.
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 10 févr. 2008 à 15:09
je crois qu'un simple alpha béta avec sauvegarde des hash des différents plateaux parcourus dans une archive pour ne pas parcourir plusieurs fois le même plateau suffit à faire quelque chose de pas mal
CCJ
Messages postés565Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention30 avril 20081 10 févr. 2008 à 15:24
La clé des des echecs c'est de prevoir les coups a lavance :
on essay toutes les pieces dans tous les mouvement quelles peuvent faire , on compte pour chaque mouvement le nmb de pieces prises / gagner . Ca ne me semble pas trop compliquer a mettre en place comme ca et ca pourrait permettre de parametrer l'IA : dificulté depend du nombre de coups , style de jeu : agressif jouera les coups qui ont le meilleur rapport piece prise / piece perdu , le joueur defensif lui se basera plus sur le rapport piece perdue / nombre de coups.
Ce n'est qu'un point de vue mais moi j'aborderais le probleme comme ca.
Si l'informatique été de l'alcool il y aurait des genies partout
Après, suivant la fonction d'évaluation du plateau que tu utiliseras tu auras le type de jeu de ton IA comme le disait CCJ.
Le niveau de difficulté de l'IA pour le joueur se fera après simplement en fonction du nombre de coups qu'il lit à l'avance.
Ps: cet algorithme marche aussi bien pour les échecs que le morpion, puissance4, othello, les dames, etc.... les seules choses qui changent c'est les fonctions DetermineCoupsPossibles, JoueUnCoup, EvaluePosition et ReprendUnCoup. L'algorithme après reste le même.
Leinhardt
Messages postés2Date d'inscriptiondimanche 10 février 2008StatutMembreDernière intervention13 mai 2008 13 mai 2008 à 16:00
Rebonjour. Me revoila...
Je n'ai pas eu l'occasion de revenir souvent comme promis, les études étant ce qu'elles sont, ça prend beaucoup de temps (et les beuveries aussi ^^) mais il n'est jamais trop tard...
Je viens vous tenir au courant de l'avancée de mon projet d'IA. Elle rentre dans la phase finale. J'ai opté également pour un algorithme Alpha-Beta; la machine génère bien tous les coups possibles de l'adversaire à partir d'une position donnée jusqu'à 3 niveaux de profondeur et elle évalue bien les cases (jusque là rien que de très normal) mais j'ai toujours un dernier petit soucis au niveau de la récursivité... Une fois l'évaluation arrivée au dernier niveau, elle ne fait pas remonter le score jusqu'au premier. L'IA est donc incapable de sélectionner le premier meilleur mouvement à effectuer : elle ne joue pas
Il me reste donc une semaine à passer h24 pour débeuguer tout ça et faire en sorte qu'elle pette le feu ^^