Ia d'échec

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 17 avril 2004 à 15:14
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 14 août 2004 à 12:57
comment faire une ia performante pour un jeu d'échec en c?
merci

8 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 avril 2004 à 23:49
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 11:35
Bon courage pour une IA d echec!!
en fait la seule methode valable c est l algorithme alpha-beta, tu doit trouver pas mal de doc sur cet algo en cherchant un peu sur google
0
cs_saispas Messages postés 8 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 29 juin 2004
27 juin 2004 à 19:07
Et une IA, tout simplement (pas nécessairement pour les echecs...), c est dur a mettre en place?
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
27 juin 2004 à 19:12
Ca depend vraiment de ce que tu veux faire, mais sache qu en general c est dur! L intelligence artificielle est un domaine de recherche tres pointu, et qui n a pas apporte beaucoup de reponses a des questions importantes a cause de la complexite de la chose. Si tu veux un apercu de certaines methodes, reporte toi aux excellents articles de Fabrice Rossi prus dans Linux Magazine (sur la reconnaissance de forme ce mois ci). Son site est apiacoa.org.

En fait une IA d echec est un exemple assez simple!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 juil. 2004 à 01:03
MetalDwarf, finalement, tu me rassure, c'est assez simple... Mais, c'est pas gagné quand même, depuis le temps que j'ai posé cette question (et en aditionnant le temps que j'ai passé a y réfléchir avant) je devrais avoir trouvé... mzi j'ai un petit problème et pas des moindre, j'ai pas mis une seule struct, et pas mis mon échiquier dedans (et rendu a 1600 lignes, metre un fichier a la corbeille, c'est chiant). J'ai trouvé un algo dans un linux mag : minimax, et j'aimerais savoir si c'est mieux que AB car selon ce que l'on dit AB est lent (et j'adore jouer aux échecs donc, je voudrais des parties plutot rapides). J'ariverais facilement a y ajouter une base de donnée, mais plu tard, pour le moment, je cherche une ia simple
Donc, j'ai pas mis une strucs, j'ai fais les fonctione echecblanc, echecnoir, droitblanc, droitnoir, main, et affichage, mais y a encore des bugs sur l'enregistrement des coups et les roques. J'ai pas mis d'interface graphique (pour plus de simplicitée et de portabilitée, j'ai besoin d'aucune librairie spéciale).
Donc, voila, je me suis renseigné, et dans les sources que j'ai croisé, j'ai rien compris, pourtant, j'ai fais des efforts (mais je commence le C depuis un an ... lol... Je fais aussi du javascript, et du tchat, donc, j'y passe pas bcp de temps...)
Donc, j'aimerais savoir si qqn savait comment incruster de la récursivitée dans un programme aussi mal débuté que le mien.
0
Katasstrov Messages postés 5 Date d'inscription samedi 24 juillet 2004 Statut Membre Dernière intervention 28 août 2004
24 juil. 2004 à 19:53
Aucun programme d'échecs performants ne s'appuie sur l'IA (Cf fritz, Deep junior, Crafty, Shredder).
En général, ils s'appuient sur 3 fonctions principales,
- alpha/beta,
- mini/max,
- évaluation,

Les 2 premières sont archi connues.
La dernière, en revanche, est la plus délicate car elle est entièrement personalisées.

Essaient ces sites ou tu trouveras de l'info en abondance

http://malin.webhostme.com/chess/links/Default.asp?tema=10/url

http://www.xs4all.nl/~verhelst/chess/' target='_blank'>http://www.xs4all.nl/~verhelst/chess/

http://www.cis.uab.edu/hyatt/pubs.html

Bon courage :)
0
cs_pjb Messages postés 19 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 17 août 2004
13 août 2004 à 17:56
hello

j'ai travaillé un peu sur l'IA, sur des jeux très simples : morpion, puissance 4, jeu des allumettes,... (je te conseille fortement de commencer par ça...)

c'est compliqué, mais ac de la doc (notamment sur minimax, alpha-betha) tu peux créer un petit moteur d'IA en quelques heures si tu tatouilles en C.

Mais ces fonctions minmax & A-B ne sont qu'une petite partie du code, le plus fastidieux est la (les) fonction(s) d'évaluation des coups; c'est la fonction d'évaluation qui est la plus importante dans le code.
La fonction de coupure (A-B) doit être optimisée un maximum, car elle consomme bcp de CPU (elle supprime tous les coups "inutiles" à calculer ; minmax sert à choisir le meilleur coup en remontant successivement les min puis les max des scores jusqu'à la racine de l'arbre de jeu, (si t'utilises un arbre, bien entendu). )

sans la récursivité, tu ne peux pas t'en sortir; t'as donc interret à être plus que familiarisé avec la récursivité

mon jeu des allumettes utilise une méthode tout-à fait originale et surprenante (c pas moi qui l'ai inventée...) : l'apprentissage. Si tu veux en savoir plus, réponds...

@+
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 août 2004 à 12:57
Je penssais a un minimax basique pas un AB car un AB ne peut pas s'apliquer aux échecs car certains coups sont calculés avec des sacrifices qui commencent a raporter 20 coups, alors le AB ne peut pas vraiment faire ça....

Je penses simplement donc a un minimax, puis une évaluation de la position, mais bon, c'ets vachement dur, a cause de cette *** d'évaluation, et puis la recherche des coups possible...

L'évaluation doit tennir compte :

Valeur des pièces
la structure des pions
IDP (^^on apelle ça comme ça des fois au club,) indice de dévelopement des pièces

la soliditée du roque
si un roi est déroqué
ect...
0
Rejoignez-nous