MORPION (PAS ENCORE FINIT DONC SI VOUS AVEZ DES IDÉÉS)

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009 - 27 juin 2006 à 21:06
ded123 Messages postés 1 Date d'inscription mardi 11 octobre 2005 Statut Membre Dernière intervention 23 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.

https://codes-sources.commentcamarche.net/source/38339-morpion-pas-encore-finit-donc-si-vous-avez-des-idees

ded123 Messages postés 1 Date d'inscription mardi 11 octobre 2005 Statut Membre Dernière intervention 23 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és 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
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 ...
Utilisateur anonyme
31 juil. 2006 à 17:03
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és 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
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és 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
1 juil. 2006 à 22:43
sa va m'aider a faire plein de truc les matrices !! youpi : D
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
1 juil. 2006 à 22:43
bof j'ai comprit merci :D
MikaYuoadas Messages postés 15 Date d'inscription vendredi 9 septembre 2005 Statut Membre Dernière intervention 30 juin 2006
30 juin 2006 à 17:32
sans vouloir paraitre lourd, mais plus t'explique et moins je comprend
kingcobra Messages postés 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 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és 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
29 juin 2006 à 23:42
c'est quoi une matrice ? (moi uassi 15 and :D)
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 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és 337 Date d'inscription vendredi 15 octobre 2004 Statut Membre Derniè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és 3 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 29 juin 2006
29 juin 2006 à 16:43
merci pour votre importance.
kingcobra Messages postés 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 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és 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 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és 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 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és 15 Date d'inscription vendredi 9 septembre 2005 Statut Membre Dernière intervention 30 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és 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 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és 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 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és 316 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 19 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és 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 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és 15 Date d'inscription vendredi 9 septembre 2005 Statut Membre Dernière intervention 30 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és 15 Date d'inscription vendredi 9 septembre 2005 Statut Membre Dernière intervention 30 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és 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
27 juin 2006 à 21:06
c cool j'aime le designe des signe tu la fait toi meme ou avec un utilitaire ?
Rejoignez-nous