PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: en lignes... Ven 19 Juin 2009 - 19:50 | |
| Comment faire pour savoir si plusieurs instances (alignées selon une grille) sont en ligne de trois, comme pour un morpion? J'y ai bien réfléchis mais je n'arrive pas a savoir comment... |
|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: en lignes... Ven 19 Juin 2009 - 20:02 | |
| Il y a plein de moyen, en fesant des test. L'idée pour un jeu de morpion, c'est de stocker l'état des cases du morpion. par exemple: 0-> rien 1-> croix 2-> rond se qui donnerait - Code:
-
case[0,0]=0 case[0,1]=0 case[0,2]=0
case[1,0]=0 case[1,1]=0 case[1,2]=0
case[2,0]=0 case[2,1]=0 case[2,2]=0
pour un tableau de 9 cases vides ensuite il faut faire les test on test les 3 lignes les 3 colonnes les 2 diagonal le mieux c'est de faire des petite boucles par exemple pour les lignes, il faut trouver une ligne ou les trois cases ont la même valeur et que cette valeur ne soit pas égale à 0 donc - Code:
-
aligne=false for(i=0;i<=2;i+=1) { if (case[0,i]=case[1,i]) ) and (case[0,i]=case[1,i]) and case[0,i]!=0 aligne=true }
si a la fin aligne est vrai alors il existe une ligne des rond ou de crois aligné. Ensuite je pense qu'il est mieux de savoir sur quel ligne et quel genre (croix ou rond) donc on va utiliser des numéros - Code:
-
aligne=-1 vainqueur=0 for(i=0;i<=2;i+=1) { if (case[0,i]=case[1,i]) ) and (case[0,i]=case[1,i]) and case[0,i]!=0 { aligne=i vaiqueur= case[0,i] } }
donc si aligne=-1 il n'y a pas de vainqueur, sinon elle donne le numéro de la ligne aligné (0,1,2) et vainqueur donne le numéro du vainqueur (1 ou 2 si il existe.) |
|
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: en lignes... Sam 20 Juin 2009 - 14:13 | |
| |
|