MuPuF
Messages postés536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008
-
18 mai 2005 à 12:59
cs_skawll
Messages postés1Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention19 mai 2010
-
19 mai 2010 à 12:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Vishnouu
Messages postés13Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention13 juillet 2005 29 juin 2005 à 22:01
Est ce que quelqu'un aurait un tuto (pas trop dur) qui explique le fonctionnement avec minimax,alphabeta, avec source et explications svp ? (oui je suis exigeant^^)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 20 mai 2005 à 17:26
Bah voilà mon code est fini et il m'a même battu. Je ne comprends pas que tu dises que le minimax marche assez mal. À mon avis, c'est surtout une affaire d'implémentation. Si ton IA développes l'arbre entier, il n'y a aucune raison pour qu'elle puisse perde, les règles sont trop restreintes pour que l'heuristique puisse se planter.
cs_Mcjo
Messages postés403Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention 3 septembre 20122 20 mai 2005 à 09:55
il y a un exemple de morpion qui utilise minimax et ça marche assé mal :
http://lwh.free.fr/pages/algo/minmax/minmax.htm en effet pour gagner à tous les coups :
on joue dans un coin, puis dans le coin opposé enfin dans le coin restant et on a ganger la partie car l'IA semble pensé qu'il faut essayer de prendre le milieu puis un coin alors que le milieu n'est pas une bonne position au morpion ;)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 19 mai 2005 à 21:13
À vrai dire, c'est en cours de production à l'instant ^^ Mais c'est mon premier essai, donc ce ne sera certainement pas "the state of the art" ;) Si ça vaut le coup, je posterai, mais je le fais rarement. Je te tiens au courant sur ce post.
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 19 mai 2005 à 21:09
Moi non plus mais je crois que je vais eviter de me pencher trop longtemps dessus, c'est au dessus de mes competences, :)
Mais je dois pas etre le seul dans ce cas car sur les site que j'ai testé y avait generallement des puissance4 et des morpions a tester comme exemple et sur 5 partie a chaqu'un j'ai gagné les 5 a chaque fois donc meme pour la personne qui expliquait le truc elle avait mal programmé son algorithme.
Sinon je ne connaissais pas du tout Kirua, et si tu avais des sources qui utilise le minimax ca m'interesserait !!
MuPuF
Messages postés536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008 19 mai 2005 à 20:01
jamais entendu parler du minimax, mais je vais en avoir besoin .....
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 19 mai 2005 à 18:34
Bien entendu, les règles très spécifiqus du morpion permettent ce genre d'optimisations draconiennes en considérant directement les règles. Je vois pour ma part le morpion comme un exemple simpliste permettant de s'exercer à l'implémentation d'un algorithme de la théorie des jeux, bcp plus général et largement utilisé, qu'est le minimax. Avec une bonne heuristique (typiquement, c'est la qualité de l'heuristique qui définit la qualité de l'IA, comme souvent), on peut faire une IA d'échecs avec l'alpha bêta.
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 19 mai 2005 à 18:25
Nan c'est beaucoup plus simple que tu le pense un exemple
Tu possede les case 8 3
Ton adversaire 2 7
C'est a toi de jouer tu as
boucle avec le 8
15 - (8 + 1) = 9 (case 9)
2 deja pris
15 - (8 + 3) = 4 (case 4)
15 - (8 + 4) = 3 (tu posede deja le 3 donc gain)
15 - (8 + 5) = 2 (2 deja prit)
15 - (8 + 6) = 1 (case 1)
fin car on depasse 15
Ici on recupere 4 case a jouer dont un amenant le gain
2 eme boucle avec le 3
.....
On chosit soit la case amenant le gain, soit celle ressortant plusieur fois, soit une au pif figurant dans celle recupéré
En fait on est tres loin des 360 000 combinaison a tester vu que les test a faire sont 15 - (case en train de tester) + (valeur de 1 a 9) sachant que ce resultat de doit pas depasser 15 !!!
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 19 mai 2005 à 16:48
au premier coup, il y a 9! parties possibles (enfin, sans décompter les parties qui se terminent parce qu'il y a un gagnant), ce qui fait qq ch de l'ordre de 360 000 parties je pense. c'est tout à fait accessible à un ordinateur ^^, quoique brutal. si tu veux programmer une chouette IA, pense au Minimax (recherche ça sur internet), et comme le jeu est petit tu n'as même pas besoin de t'acharner à comprendre l'alpha-bêta, qui est une optimisation sérieuse du minimax. tout ça rentre dans la théorie des jeux, c'est terriblement passionnant :) doc à foison sur google. il te faut juste comprendre ce qu'est la récursivité à vrai dire, et puis avoir un bon sens de la synthèse.
tu tombes à pic à vrai dire, car depuis hier soir je veux coder mon minimax, mais j'avais la flemme de coder une interface de jeu console :D mci ;) je vais voir si je peux récupérer ça :)
MuPuF
Messages postés536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008 18 mai 2005 à 20:14
bah, ya que 9 combinaisons alors ....
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 18 mai 2005 à 19:21
Salut !!
Si ca t'interesse y'avait un truc tout simple pour les IA de morpion en fait il te suffisait de faire un carré magique avec les valeur de 1 a 9 ( 5 etant au centre ) et de chercher quelle case choisir pour avoir le plus de chance de faire un total de 15 avec 3 valeurs differentes prise totallement au hazard entre 0 et 9( mais le plus simple etant de les tester dans l'ordre) en faisant des boucles avec les valeurs deja choisit et celles encore dispo, meme en faisant un algorytme brutal qui teste toutes les combinaisons sachant que chaque valeur n y été qu'une seule fois c'etait tres rapide.
cs_Mcjo
Messages postés403Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention 3 septembre 20122 18 mai 2005 à 18:38
Je pense à l'IA, c'est pour ça que j'ai pondérer les valeurs du tableau à -1 et 1 je pense l'implémenter avec une AI qui jouerai en fonction du poid la case qui devrait correspondre à la somme des poids des cases contiguës, un truc dans le genre...
MuPuF
Messages postés536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008 18 mai 2005 à 12:59
BRAVO, tu as reussi un code tres simple, explicite, avec des classes et MIS CA EN DEBUTANT, y'en a qui devrait t'imiter (moi au passage).
Ralala, heuresement qu'il y a des types qui sont reglo avec eux meme ....
Pour le resultat, il est tout a fais regardable, bien que now, ce serais bien de le faire en win32, comme ça tu pourras fdonner a l'utilisateur le moyen d'utiliser sa souris et de se rettrouver avec une "belle" fenetre windows. Et puis quoi de plus ludique qu'un jeu (a développer et a jouer ...)
19 mai 2010 à 12:05
Comment faire pour l'éxécuter?
12 juin 2007 à 17:58
5 sept. 2006 à 22:53
30 juin 2005 à 14:12
30 juin 2005 à 00:22
avec plaisir ;)
29 juin 2005 à 22:01
20 mai 2005 à 17:26
20 mai 2005 à 09:55
http://lwh.free.fr/pages/algo/minmax/minmax.htm
en effet pour gagner à tous les coups :
on joue dans un coin, puis dans le coin opposé enfin dans le coin restant et on a ganger la partie car l'IA semble pensé qu'il faut essayer de prendre le milieu puis un coin alors que le milieu n'est pas une bonne position au morpion ;)
19 mai 2005 à 21:13
19 mai 2005 à 21:09
Mais je dois pas etre le seul dans ce cas car sur les site que j'ai testé y avait generallement des puissance4 et des morpions a tester comme exemple et sur 5 partie a chaqu'un j'ai gagné les 5 a chaque fois donc meme pour la personne qui expliquait le truc elle avait mal programmé son algorithme.
Sinon je ne connaissais pas du tout Kirua, et si tu avais des sources qui utilise le minimax ca m'interesserait !!
19 mai 2005 à 20:01
19 mai 2005 à 18:34
19 mai 2005 à 18:25
Tu possede les case 8 3
Ton adversaire 2 7
C'est a toi de jouer tu as
boucle avec le 8
15 - (8 + 1) = 9 (case 9)
2 deja pris
15 - (8 + 3) = 4 (case 4)
15 - (8 + 4) = 3 (tu posede deja le 3 donc gain)
15 - (8 + 5) = 2 (2 deja prit)
15 - (8 + 6) = 1 (case 1)
fin car on depasse 15
Ici on recupere 4 case a jouer dont un amenant le gain
2 eme boucle avec le 3
.....
On chosit soit la case amenant le gain, soit celle ressortant plusieur fois, soit une au pif figurant dans celle recupéré
En fait on est tres loin des 360 000 combinaison a tester vu que les test a faire sont 15 - (case en train de tester) + (valeur de 1 a 9) sachant que ce resultat de doit pas depasser 15 !!!
19 mai 2005 à 16:48
tu tombes à pic à vrai dire, car depuis hier soir je veux coder mon minimax, mais j'avais la flemme de coder une interface de jeu console :D mci ;) je vais voir si je peux récupérer ça :)
18 mai 2005 à 20:14
18 mai 2005 à 19:21
Si ca t'interesse y'avait un truc tout simple pour les IA de morpion en fait il te suffisait de faire un carré magique avec les valeur de 1 a 9 ( 5 etant au centre ) et de chercher quelle case choisir pour avoir le plus de chance de faire un total de 15 avec 3 valeurs differentes prise totallement au hazard entre 0 et 9( mais le plus simple etant de les tester dans l'ordre) en faisant des boucles avec les valeurs deja choisit et celles encore dispo, meme en faisant un algorytme brutal qui teste toutes les combinaisons sachant que chaque valeur n y été qu'une seule fois c'etait tres rapide.
18 mai 2005 à 18:38
18 mai 2005 à 12:59
Ralala, heuresement qu'il y a des types qui sont reglo avec eux meme ....
Pour le resultat, il est tout a fais regardable, bien que now, ce serais bien de le faire en win32, comme ça tu pourras fdonner a l'utilisateur le moyen d'utiliser sa souris et de se rettrouver avec une "belle" fenetre windows. Et puis quoi de plus ludique qu'un jeu (a développer et a jouer ...)
Et puis pourquoi ne pas penser a la suite, IA ?