Verifier 4 pios aligner en puissance 4

Signaler
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006
-
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
23
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
22 mars 2011

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