UN MORPION QUI A LA CLASSE

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 18 mai 2005 à 12:59
cs_skawll Messages postés 1 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 19 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.

https://codes-sources.commentcamarche.net/source/31443-un-morpion-qui-a-la-classe

cs_skawll Messages postés 1 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 19 mai 2010
19 mai 2010 à 12:05
Slt,
Comment faire pour l'éxécuter?
Mic32768 Messages postés 9 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 11 juin 2007
12 juin 2007 à 17:58
Félicitations pour ta source, vraiment bien codée!
cs_zozor Messages postés 1 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 22:53
un peu de commentaire aurait été bien dans le code lol
Vishnouu Messages postés 13 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 13 juillet 2005
30 juin 2005 à 14:12
ok merci (et dsl pour le double post)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
30 juin 2005 à 00:22
Vishnouu Messages postés 13 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 13 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és 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 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és 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
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és 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 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és 571 Date d'inscription samedi 3 avril 2004 Statut Membre Derniè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és 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
19 mai 2005 à 20:01
jamais entendu parler du minimax, mais je vais en avoir besoin .....
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 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és 571 Date d'inscription samedi 3 avril 2004 Statut Membre Derniè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és 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 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és 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
18 mai 2005 à 20:14
bah, ya que 9 combinaisons alors ....
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Derniè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és 403 Date d'inscription dimanche 12 août 2001 Statut Membre Dernière intervention 3 septembre 2012 2
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és 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 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 ...)

Et puis pourquoi ne pas penser a la suite, IA ?