Algorithme oxo?

Fermé
sebastien - 20 mai 2003 à 17:13
 seb - 20 mai 2003 à 18:13
voila je dois réaliser une sorte d'oxo : je dois aligner 3 pions de la meme couleur, dans une grille de 3 sur 3, dans n'importe quel sens. pour 2 joueurs j'ai fait ca facilement, mais pour jouer contre l'ordinateur, j'aimerais avoir un algorithme pour l'ordinatur, est-ce que c possible de trouver ca? si oui ou? c assez urgent merci
seb

4 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
20 mai 2003 à 17:17
Le plus marrant et instructif est de l'ecrire soit meme, ca reste simple comme jeu donc tu ne devrais pas avoir de probleme...
La meilleure solution, jouer contre quelqu'un et analyser ses propres decisions...

.  .
\_/
0
etienne gauthier
20 mai 2003 à 17:35
oui après tu as différentes possibilité pour coder une "intelligence artificielle" tu peux utiliser un système de priorité:
ton ordi joue à chaque coup le coup correspondant de priorité la plus élevés dans ta stratégie (ex: prio 1 "coup gagnant", prio 2 "contrer coup gagnant adversaire", prio 3 "coup gagnant au prochain coup" etc... souvent les priorité sont symétrique mais c'est à toi de les définir, et l'ordinateur doit toujours jouer un coup quelque soit la position, donc il doit y avoir un coup "standard".)
Cette méthode est facile à coder, mais demande une bonne définition des dites priorités. Avec l'exemple ci dessus, pour illustrer, l'ordinateur essaira d'abord de trouver un coup gagnant, s'il n'en trouve pas, il vérifie que l'adversaire n'ait pas de coup gagnant à jouer (s'il en a, l'ordi essaie de le parer) et ainsi de suite, en descendant dans l'ordre des priorités.

Autre possibilité: le min max
Là c'est plus chaud, c'est à coder en récursif. En fait le principe, c'est d'avoir une fonction d'évaluation qui à partir d'une position précise du jeu ( un état du jeu à un moment en fait) et d'un coup joué renvoie une valeur correspondant à la qualité de ce coup joué. a partir de là, l'ordinateur applique cette fct d'éval sur toutes les cases ou il peut jouer, et retient le coup d'évaluation la plus forte.(logique, il joue le meilleur coup possible!)
Là ou cette technique est bien, c'est qu'en l'appliquant récursivement, on arrive à des profondeurs de calculs (en fait, pour chaque coup possible de l'ordinateur, il évalue ce coup, puis il évalue, à partir de cette nouvelle position, tout les coups que pourrait jouer son adversaire, et retient le meilleur. il retranche alors la valeur du coup de l'adversaire à celle de son coup et fait de même avec tous les coups possible.)
De cette manière, il obtient le meilleur coup à jouer EN TENANT COMPTE du coup que jouera son adversaire (et en pensant que son adversaire joue bien également). Bref il prendra le meilleur coup possible. (on peux bien sur le faire à des profondeurs plus importantes, mais les temps de calculs peuvent devenir plus important, peut etre pas pour oxo, mais pour d'autres jeux)
Le plus difficile dans le min max est d'avoir cette fameuse fonction d'évaluation. (à titre indicatif, elle renvoie sa plus grande valeur quand un coup est gagnant, etc...)
J'espère avoir apporté quelques idées pour ton jeu, (je te rassure tout de suite, la stratégie de ce jeu est pas très comment dire... évoluée, tu trouveras vite en cherchant les coups à jouer qui permettent de jouer optimalement)
tu n'es pas obligé d'appliquer une des deux méthodes que je viens de citer, c'était çà à titre indicatif, moi aussi j'ai coder un jeu à une époque (y'a 2 ans.. c'est pas si vieux) et j'ai trouvé ça super interessant à développer.
Bon courage
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
20 mai 2003 à 17:43
En tout cas on te sent interesse :o)
Moi ca remonte a plus longtemps mais c'etait pas encore au point quand j'ai tout perdu, mais sinon en intelligence artificielle j'ai progresse, et la deuxieme methode se developpe tres biens en reseau de neurones alors que la premiere est beaucoup plus adaptee a la generation de regle. En effet, avec un reseau de neurone, tu fais un certain nombre de partie contre plusieurs bon joueurs et l'ordi apprendra a evaluer ses coups...

.  .
\_/
0
le système du min max m'intéresse, mais je pige pas tout. je susi débutant, j'ai trouvé un algo de min max. pourrais tu m'expliquer concrètement comment l'appliquer a mon jeu?
0
ca va merci pas la peine je viens de le finir il a l'air de marcher assez bien sans le min max.
merci beaucoup
0