IA d'un jeu auquel on n'a jamais joué ?

IA d'un jeu auquel on n'a jamais joué ? - Algo - Programmation

Marsh Posté le 06-12-2003 à 16:42:14    

youp,
 
 
je suis en train de faire mon premier pitit jeu. Pour l'instant je le fais en vb parce que c'est simple, et j'espère pouvoir le faire en C ensuite.
 
C'est un jeu d'echec avec des pierres de go.
 
pour ceux qui veulent voir le premier jet (toutes les possibilité de déplacement ne sont pas encore là): http://www.belgibique.be/downloads/Cheego.zip
 
 
 
Ma question est, comment on fait la partie IA de ce type de jeux ? Faut-il d'abord y jouer et noter les tactiques possibles, est-ce possible de faire "apprendre" le programme (on sait jamais), ...
 
 
merci
 
 
 
je suis neuneu ! n'est-ce pas ?


Message édité par art_dupond le 07-12-2003 à 23:51:45

---------------
oui oui
Reply

Marsh Posté le 06-12-2003 à 16:42:14   

Reply

Marsh Posté le 06-12-2003 à 17:04:46    

je veux pas te faire un tackle à la gorge, mais ton message précédent semble montrer que tu as encore un peu à apprendre avant d'aborder ce genre de problèmes compliqués

Reply

Marsh Posté le 06-12-2003 à 17:26:41    

http://ai-depot.com/
 
 
sinon min max semble bien indique pour ce genre de jeu
 
jlai implemente recement dans un puissance 4 mais en Caml et je peut t'assurer que ca fonctionne tres bien  :D

Reply

Marsh Posté le 06-12-2003 à 20:36:32    

art_dupond a écrit :

youp,
 
 
je suis en train de faire mon premier pitit jeu. Pour l'instant je le fais en vb parce que c'est simple, et j'espère pouvoir le faire en C ensuite.
 
C'est un jeu d'echec avec des pierres de go.
 
pour ceux qui veulent voir le premier jet (toutes les possibilité de déplacement ne sont pas encore là): http://www.belgibique.be/downloads/cheego.zip
 
 
 
Ma question est, comment on fait la partie IA de ce type de jeux ? Faut-il d'abord y jouer et noter les tactiques possibles, est-ce possible de faire "apprendre" le programme (on sait jamais), ...
 
 
merci
 
 
 
je suis neuneu ! n'est-ce pas ?


Ca dépend des règles du jeu. La méthode la plus simple, c'est d'évaluer toutes les possibilités de jeu pour sélectionner la plus intéressante. Pour améliorer le truc, tu peux essayer de faire la même chose en te projetant plusieurs tours à l'avance. Encore faut-il être capable d'évaluer les situations de jeu, ce qui selon les règles peut être assez délicat et demander une bonne connaissance du jeu.
L'étape suivante consiste à optimiser la chose, en général pour des raisons de performances, en guidant le choix de la machine en fonction de certains paramètres. Il s'agit là d'élaborer des stratégies prédéfinies, et là oui, je pense que ça demande une bonne connaissance du jeu en question et des dites stratégies.
Enfin, faire en sorte que le programme soit capable d'apprendre est bien entendu le top. C'est à dire que tu donnes les règles du jeu au programme, et il se charge seul d'élaborer des stratégies. Mais là c'est vraiment pas pour les débutants.


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 06-12-2003 à 22:48:12    

Pour un jeu genre les échecs, t'es quasi obligé de gérer une petite bibliothèques d'ouverture, car on joue pas n'importe quoi au début, et le mec va pas apprécier d'attendre 1à minute le premier coup. Pour ça c'est surtout un travail de documentation. C'est quand on sort de la théorie que ça se complique. Généralement, on construit un arbre avec tous les coups possibles, selon un proffondeur donnée (=nb de coups joués à la suite). Il faut un algo qui permet ensuite de trouver parmis l'énorme nombre de possibilités de coups celui qui est le meilleur (y'en a plusieurs : min-max, alpha-beta,...). Pour cela, il faut aussi donner une note à chaque coup, et c'est là que se fait la différence entre les IA (par exemple, la note = 1 pour un pion mangé, 3 pour un fou, 5 pour une tour, ...). plus ton arbre est profond, et meilleurs seront les coups joués, mais plus ce sera long à calculer. Généralement, la proffondeur = le niveau de l'ordi.
http://www.ed-diamond.com/produit.php?produit=150
http://www.faqs.org/docs/Linux-HOW [...] HOWTO.html

Reply

Marsh Posté le 07-12-2003 à 11:25:02    

merci tout le monde...
 
 
bon si j'ai bien compris, vaut mieux savoir jouer au jeu avant d'essayer de faire l'IA.  
 
Par contre pour la biblio d'ouvertures, je savais qu'il y avait ca pour les échecs, mais vu que mon jeu est un "jeu auquel on n'a pas encore joué..." (je l'ai pas inventé, mais je l'ai jamais vu non plus)
 
Bon, en tout cas, j'espère qu'avec les pions mutants de mon jeu, y aura pas trop de possibilité :p
 
 
merci à tous


---------------
oui oui
Reply

Marsh Posté le 07-12-2003 à 16:51:03    

Citation :

Par contre pour la biblio d'ouvertures, je savais qu'il y avait ca pour les échecs


Y'a énormément de littérature là dessus. En gros, si tu joues pas une certaine combinaison de coups dès le début, t'es mort. Des fios la théorie va jusqu'à 17 coups. Si, pdt 17 coups, tu en joue un autre, t'es mort :crazy:
Tous les IA d'échecs jouent les 3 premiers coups immédiatemment, C après qu'elles réfléchissent. Et puis y'a pas mals de règles à suivre pour placer ses pièces : occuper le centre, ne pas avoir de retard dans la sortie de ses pièces, comment matter avec un roi / 1 tour contre un seul roi, etc...

Reply

Marsh Posté le 07-12-2003 à 19:55:23    

oui oui comme je disais,  
 

Citation :

Par contre pour la biblio d'ouvertures, je savais qu'il y avait ca pour les échecs


 
mais c'est vrai que le "par contre" brouille les pistes ;)
 
 
et pour mon jeu, il dérive des échecs, mais c'est quand meme fort différent.
 
En deux mots, les règles:
 
- chaque "pion" est composé d'un maximum de 9 pierres réparties sur une case ( 3x3 )
 
- un pion ne peut se déplacer dans une direction que s'il possède une pierre qui "indique" cette direction (le repère étant le centre de la case)
 
- la pierre centrale permet à un pion de se déplacer de plus d'une case
 
- un pion peut déplacer tout ou partie des ses pierres (à condition d'emmener les pierres indispensables pour le déplacement)
 
- un pion peut aller sur une case déjà occupée par un pion "ami" si les deux pions peuvent s'emboiter.
 
- il faut toujours au minimum un roi  
 
... (parce que je ne connais pas encore toutes les règles, puis peut etre permettre de macrophager un pion adverse...)
 
voili... :)


Message édité par art_dupond le 07-12-2003 à 19:55:48

---------------
oui oui
Reply

Marsh Posté le 29-12-2003 à 18:28:28    

Y a un très bon article sur l'IA des jeux d'échecs dans le magazine LOGIN: n°106 du mois de Mai 2003. Je l'ai lu et il franchement bien, avec même des optimisations pour les architectures 64bits.

Reply

Marsh Posté le 29-12-2003 à 22:25:11    

Min-Max ou Alpha-Beta

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed