Verifier 4 pios aligner en puissance 4

maxw004 Messages postés 28 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 31 août 2006 - 17 août 2006 à 11:24
srib Messages postés 23 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 22 mars 2011 - 17 août 2006 à 18:23
Bonjour,
j'aimerai savoir si qq'un peux me donner une facon tres simple (je suis tres debutant en vb) pour verifier dans ma grille de puissance 4 si 4 pions sont aligner horizontalement , verticalement ou en diagonale.

en sachant que la grille est faite de label1(i) , avec 7 colonne et 6 ligne.

Merci

max

2 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 août 2006 à 11:54
Salut,


J ai fais il y a peu de temps un jeu ou il y avait un plateau. je devais verifier la couleur des cases entourant une case clique. pour cela je me suis creer un Type representant une case  (Ligne, Colonne, Couleur) puis a l aide d une fonction recursive, je regardait les couleurs des cases a cote.


Voici le lien peu être que tu pourras trouver quelque chos qui pourras t'aider. = > ICI




: @+ Juli?n : Règlement =>:Moteur de recherche
0
srib Messages postés 23 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 22 mars 2011
17 août 2006 à 18:23
Salut,

Je suis vraiment pas un pro du VB non plus, j'ai appris sur le tas, donc mes méthodes de code sont plutot... bourrin mais ça marche pas mal...
Si je devais faire un puissance 4, je creerais tout d'abord un tableau à 2 dimensions matérialisant le jeu, ou on aurait : 0 aucun pion, 1 pion rouge, 2 = pion jaune.

Ensuite tu fais une petite fonction qui fait ton lien entre un label et les coordonnées de ton tableau.

Enfin tu fais tes test pour les 4 pions aligné sur ton tableau.

Si le dernier pion a été mis en coordonnées x,y, tu fais des tests sur :
(x+i,y) -> horizontal
(x,y+i) -> vertical
(x+i,y+i) -> diagonal
avec i allant de -3 à 3.

Une idée (le dernier pion mis est jaune) pour le test d'une ligne horizontale :

borne_sup = 0
borne_inf = 0

test = false
do while test=false
    if tableau(x+borne_sup,y)="jaune" then
        borne_sup = borne_sup +1
    else
       test = true
    end if
loop

test = false

do while test=false

    if tableau(x+borne_inf,y)="jaune" then

        borne_inf = borne_inf -1

    else

       test = true

    end if

loop

If borne_sup - borne_inf -2 >=4 then : msgbox "Gagné !"

Voilà, comme je l'ai dit c'est bourrin, mais ça doit marcher. Mais je suis quasiment certain qu'on peut simplifier le truc facilement.

@+
Sylvain
0
Rejoignez-nous