MORPION (PAS ENCORE FINIT DONC SI VOUS AVEZ DES IDÉÉS)
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009
-
27 juin 2006 à 21:06
ded123
Messages postés1Date d'inscriptionmardi 11 octobre 2005StatutMembreDernière intervention23 octobre 2006
-
23 oct. 2006 à 19:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ded123
Messages postés1Date d'inscriptionmardi 11 octobre 2005StatutMembreDernière intervention23 octobre 2006 23 oct. 2006 à 19:50
en tout cas pour faire une partie interressante il faut que l'ordinateur est un niveau debutant au morpion:a chaque tour il devra se poser quelque question:
-puis je gagner?(deux cases succesives de l'ordinateur suivi d'un vide)
donc l'odinateur doit utiliser cette case pour gagner!
-suis je sur le point de perdre?(deux case du joueur succesives suivi d'un vide)
donc il doit utiliser la case vide pour ne pas perdre!
-sinon jouer simplement donc jouer au hasard sur les cases vides
bon ba la on peut gagner contre lui c est clair
et c est po trop facile non plus
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 7 août 2006 à 01:11
Desolé de mon erreur .. je ne connaissais pas le type matrice qui n'existe pas dans bien d'autre language, mais ou les tableaux a deux dimensions gardent le nom de matrices ...
En réalité, deux matrices peuvent s'additioner, se multiplier, et tout plein de truc. Donc c'est pas des matrices, c'est juste des tableaux à 2 dimensions. Pour faire des matrices, tu peux avec Flash 8 > au lieu de new Array(), tu fais new Matrix() ;)
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 16 juil. 2006 à 00:33
pour revenir sur les matrices ( sans les notions mathematiques ^^) (une matrice c'est un tableau et vice versa .. fin considerons aujourd'hui ) alors tu fais de un tableau
mon_tab = new Array(10,11,12,13,14,15,16,17,18,19);
cela fait une variable mon_tab avec à l'interieur plusieurs valeurs, quand tu fait mon_tab[0], tu as le premier element .. celui à la case 0 ici il contient 10, ensuite tu fais mon_tab[9] , tu accede au dernier element .. faut pas depasser ..
bon apres cette breve explication du tableau , ce que le roi des cobras voulait t'expliquer c'est que tu peux reprensenter ton morpion dans un tableau a double entree, un representant les ordonnées et l'autre les abscisses. L'avantage est un gain enorme en liibilité ,
if(morpion[0][0]==morpion[0][1]&&morpion[0][2]==morpion[0][1]&&morpion[0][1]==joueur1)
//on a un gagnant ..
ensuite tu peux aussi faire une boucle sur le 0 (qui peut correspondre a l'abscisse si tu decide de rester dans x,y .. ) qui permet de tester plus "vite" en longueur de code ;.. et plus lisiblement ..
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 1 juil. 2006 à 22:43
sa va m'aider a faire plein de truc les matrices !! youpi : D
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 1 juil. 2006 à 22:43
bof j'ai comprit merci :D
MikaYuoadas
Messages postés15Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention30 juin 2006 30 juin 2006 à 17:32
sans vouloir paraitre lourd, mais plus t'explique et moins je comprend
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 30 juin 2006 à 09:40
mdr stefbuet, ouhai au moins on pourra le gagner ;) .
ouhai c'est vrai banana, autant pour moi.
une matrice 3x3 est un tableau a 2 dimensions qui permet des acces direct a 3*3=9 cases avec une variable.
//pour le créer
morpion = new Array(new Array(0,0,0),new Array(0,0,0),new Array(0,0,0));
//pour accéder ou modifier le contenu
morpion[0][1] pour la ligne 0 colonne 1
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 29 juin 2006 à 23:42
c'est quoi une matrice ? (moi uassi 15 and :D)
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 29 juin 2006 à 22:29
ba justement, si l'ordi n'est pas futé, c'est mieu que si il est obligé de gagner ou de faire nul :d
BananaTree
Messages postés337Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention 2 novembre 2010 29 juin 2006 à 22:17
heu kingcobra
"Deja je commencerai par représenter le jeu avec une matrice 3x3."
ça à fait tilt ! j'ai cliqué sur le profil de l'auteur : age 15 ans
pas très compatible avec les matrices ;)
BRDLAH
Messages postés3Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention29 juin 2006 29 juin 2006 à 16:43
merci pour votre importance.
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 29 juin 2006 à 09:02
random(10) pour un nombre aléatoire de 0 inclus à 9 inclus.
mais il sera pas tres futé le comp ;) .
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 28 juin 2006 à 23:01
sinon peut etre que tu peut etre faire un clip pour chaque case, si le joueur clique sur un clip, alors sa met une certaine valeur dans une variable : exemple : case1=1 ou2 ou3 pour une case vide, avec symbole ordi, ou symbole joueur alors il fait goto l'image correspondante en fonction de la valeur de la variable, et quand une ligne ou diagonale est remplite, alors sa met que tu as gagner, et pour la partie ordi, tu pourais faire (je ne connais pas trop cette commande) que a chaque tour, l'ordi, choisi une case au piff avec math je croi (la case est vide donc il choi partie les variables casex=1, et il lui assigne la valeur 3, valeur du symbole de l'ordinateur.
Tu pourrais me donner le code qui permet de choisir un nombre au pif stp ? merci :d
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 28 juin 2006 à 21:59
Deja je commencerai par représenter le jeu avec une matrice 3x3.
Pour vérifier si un joueur gagne, il suffit a chaque coup de vérifier si 3 sont alignés à partir du dernier posé et seulement celui ci. En effet si croix joue, rond ne peut pas gagner.
Une fois que c'est fait, la méthode la plus simple pour l'humain mais qui demande des calculs est la méthode de back tracking. un pion est placé VIRTUELLEMENT et à partir de celui ci toutes les possibilité de jeu restante sont calculées en oubliant pas de contabilisé combien de fois l'ordi gagne.
Puis on passe au coup suivant, de meme on contabilise. Le coup qui obtient le plus de victoire de l'ordi est selectionné et joué REELLEMENT.
Autre méthode pour le morpion (non extensible) :
Il n'y a que peu de cas de figure vu que c'est symétrique et que seuls les premiers coups sont important (soit il joue dans un coin, soit sur une médiane, soit au centre).
Tu peux donc facilement programmer un morpion avec des "if".
Mais je me tate à le faire vite fait c'est interessant l'ia.
A bientot. bon courage.
MikaYuoadas
Messages postés15Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention30 juin 2006 28 juin 2006 à 20:50
euh..
c'est vrai que la solution que j'ai choisit n'est sûrement pas la meilleure mais explique moi quand même ton idée j'essairai d'adapter mon code
cs_Mafassure
Messages postés1058Date d'inscriptionjeudi 24 juillet 2003StatutModérateurDernière intervention14 février 2009 28 juin 2006 à 18:25
en effet y'a jamais de gagnant au morpion, au pire un perdant si un joueur fait une étourderie...
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 28 juin 2006 à 12:11
euh... je viens de regarder ton code, c'est assez inexpoitable, je t'expliquerai peut etre comment faire seulement.
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 28 juin 2006 à 09:51
moi je peux t'aider si tu veux !
Pour le morbac je peux t'assurer que le pc gagnera tout le temps ou il fera match nul.
Si ça t'interesse fais moi signe.
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 27 juin 2006 à 22:43
c'est super :D maintenant bonne chance pour l'ie par ce que moi je ne voi vraiment pas :D
MikaYuoadas
Messages postés15Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention30 juin 2006 27 juin 2006 à 22:29
oui je l'ai ai fait moi-même
content que ça te plaise :-D
MikaYuoadas
Messages postés15Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention30 juin 2006 27 juin 2006 à 22:29
oui je l'ai ai fait moi-même
content que ça te plaise :-D
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009 27 juin 2006 à 21:06
c cool j'aime le designe des signe tu la fait toi meme ou avec un utilitaire ?
23 oct. 2006 à 19:50
-puis je gagner?(deux cases succesives de l'ordinateur suivi d'un vide)
donc l'odinateur doit utiliser cette case pour gagner!
-suis je sur le point de perdre?(deux case du joueur succesives suivi d'un vide)
donc il doit utiliser la case vide pour ne pas perdre!
-sinon jouer simplement donc jouer au hasard sur les cases vides
bon ba la on peut gagner contre lui c est clair
et c est po trop facile non plus
7 août 2006 à 01:11
31 juil. 2006 à 17:03
16 juil. 2006 à 00:33
mon_tab = new Array(10,11,12,13,14,15,16,17,18,19);
cela fait une variable mon_tab avec à l'interieur plusieurs valeurs, quand tu fait mon_tab[0], tu as le premier element .. celui à la case 0 ici il contient 10, ensuite tu fais mon_tab[9] , tu accede au dernier element .. faut pas depasser ..
bon apres cette breve explication du tableau , ce que le roi des cobras voulait t'expliquer c'est que tu peux reprensenter ton morpion dans un tableau a double entree, un representant les ordonnées et l'autre les abscisses. L'avantage est un gain enorme en liibilité ,
if(morpion[0][0]==morpion[0][1]&&morpion[0][2]==morpion[0][1]&&morpion[0][1]==joueur1)
//on a un gagnant ..
ensuite tu peux aussi faire une boucle sur le 0 (qui peut correspondre a l'abscisse si tu decide de rester dans x,y .. ) qui permet de tester plus "vite" en longueur de code ;.. et plus lisiblement ..
1 juil. 2006 à 22:43
1 juil. 2006 à 22:43
30 juin 2006 à 17:32
30 juin 2006 à 09:40
ouhai c'est vrai banana, autant pour moi.
une matrice 3x3 est un tableau a 2 dimensions qui permet des acces direct a 3*3=9 cases avec une variable.
//pour le créer
morpion = new Array(new Array(0,0,0),new Array(0,0,0),new Array(0,0,0));
//pour accéder ou modifier le contenu
morpion[0][1] pour la ligne 0 colonne 1
29 juin 2006 à 23:42
29 juin 2006 à 22:29
29 juin 2006 à 22:17
"Deja je commencerai par représenter le jeu avec une matrice 3x3."
ça à fait tilt ! j'ai cliqué sur le profil de l'auteur : age 15 ans
pas très compatible avec les matrices ;)
29 juin 2006 à 16:43
29 juin 2006 à 09:02
mais il sera pas tres futé le comp ;) .
28 juin 2006 à 23:01
Tu pourrais me donner le code qui permet de choisir un nombre au pif stp ? merci :d
28 juin 2006 à 21:59
Pour vérifier si un joueur gagne, il suffit a chaque coup de vérifier si 3 sont alignés à partir du dernier posé et seulement celui ci. En effet si croix joue, rond ne peut pas gagner.
Une fois que c'est fait, la méthode la plus simple pour l'humain mais qui demande des calculs est la méthode de back tracking. un pion est placé VIRTUELLEMENT et à partir de celui ci toutes les possibilité de jeu restante sont calculées en oubliant pas de contabilisé combien de fois l'ordi gagne.
Puis on passe au coup suivant, de meme on contabilise. Le coup qui obtient le plus de victoire de l'ordi est selectionné et joué REELLEMENT.
Autre méthode pour le morpion (non extensible) :
Il n'y a que peu de cas de figure vu que c'est symétrique et que seuls les premiers coups sont important (soit il joue dans un coin, soit sur une médiane, soit au centre).
Tu peux donc facilement programmer un morpion avec des "if".
Mais je me tate à le faire vite fait c'est interessant l'ia.
A bientot. bon courage.
28 juin 2006 à 20:50
c'est vrai que la solution que j'ai choisit n'est sûrement pas la meilleure mais explique moi quand même ton idée j'essairai d'adapter mon code
28 juin 2006 à 18:25
28 juin 2006 à 12:11
28 juin 2006 à 09:51
Pour le morbac je peux t'assurer que le pc gagnera tout le temps ou il fera match nul.
Si ça t'interesse fais moi signe.
27 juin 2006 à 22:43
27 juin 2006 à 22:29
content que ça te plaise :-D
27 juin 2006 à 22:29
content que ça te plaise :-D
27 juin 2006 à 21:06