Verifier 4 pions aligner en puissance 4

Résolu
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Salut,

j'aimerai savoir si qq'un pourrai me faire le code (ou me dire comment je peux faire ) pour verifier si 4 pions de la meme couleur sont aligner.

a savoir : les cases sont des label1(i)
               chaques ligne est composée de 7 labels qui se suive dans l'ordre des chiffres.

C'est assez urgent car j'ai exament jeudi .

Merci pour votre aide

13 réponses

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Voici un exemple basé sur la combinaison de 4 parmi 7
Tu dois vérifier par la suite si pour chaque combinaison
de cases les couleurs sont identiques


Dim FistIdx as integer
Dim i as integer
Dim j as integer
Dim k as integer
Dim p as integer
Dim Sortir as Boolean


Sortir=False


FistIdx représente le premier index sur une ligne

For i=FistIdx  to FistIdx +3
   For j=i+1 to FistIdx +4
         For k=j+1 to FistIdx +5
               For p=k+1 to FistIdx +6
                   If (Label(i).BackColor=Label(j).BackColor) And _           
                       (Label(J).BackColor=Label(K).BackColor) And _           
                       (Label(K).BackColor=Label(p).BackColor) Then _
                        //Traitement
                         Sortir=True       
                         Exit For
                Next p
                    If Sortir=True  Then  Exit For              
          Next k
               If Sortir=True  Then  Exit For
     Next j
        If Sortir=True  Then  Exit For
Next i
 

chaibat
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
"si qq'un pourrai me faire le code"

NON
certainement pas
"dire comment je peux faire" Oui, t'aider à résoudre tes problèmes, si quelqu'un sait, sans problème.
C'est clairement expliquer dans leréglement

"car j'ai exament jeudi" ????????? Toâ yanna kosé franchès ???

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006

J'ai examen jeudi , pour reussir mon année et je suis bloquer dans le programme que je dois m'entrainer a faire.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
exament ==> examen. Ok excuse, je sais pas pourquoi, j'avais compris 'exactement'

Ben dans ce cas donne nous une explication détaillée de ton blocage avec le bout de code qui pose problème, les messages d'erreurs s'il y a lieu, etc ....

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Ben alors entraîne toi, ca sert à cà les études non ?

Nous ne sommes pas là pour te faire tout ton programme tout fait non plus !

Comme le dit si bien notre ami casy : voir le [reglement.aspx réglement]!
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006

le code qui bloque :


'verifier horizontalement
      hr = 0
      hj = 0
      For b = i To i + 3
         If Label1(b).BackColor = &HC0& Then
            hr = hr + 1
            hj = hj - 1
         End If
         If Label1(b).BackColor = &HC0C0& Then
            hj = hj + 1
            hr = hr - 1
         End If         If hj 4 Or jr 4 Then
         Form2.Show
         Form1.Hide
         End If
         Next b

en fait il ne se passe rien du tout
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
i, j'imagine que c'est l'index de la case que tu vérifie.
hr, le compteur des cases rouges
hj, le compteur des cases jaunes

jr représente quoi ? ou est-elle affectée ?

Ta condition se base sur hj (ok) et jr, qui est ici à priori totalement inconue.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006

je me suis tromper jr c'est en fait hr

ui i c'est l'index , hj le compteur jaune et hr le compteur rouge
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Et donc j'imagine qu'avec hr à la place de jr, ça marche comme tu veux.

Par contre je pense que lorsque tu à trouver ta ligne de couleur tu devrai arreter la vérification et sortir de la boucle :

Form1.Hide
Exit For
End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
28
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
31 août 2006

en changeant jr en hr je n'ai aucun change .
et juste en dessous de cette boucle j'ai exit sub
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Ajoutes un End If avant Next p
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut,


Pas mal chaibat pour une ligne mais si mxw004 avait cherché un peu :

http://www.vbfrance.com/recherche.aspx?r=puissance4&tr=source

Il aurait ausi les solutions pour les colonnes et les diagonales.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonsoir Dolphin Boy,
Bien vu !
En fait je ne voulais pas lui compliquer les choses,
j' ai répondu juste à sa demande , à savoir "Alignés"
et "Horizentalement".
Mais bien sûr que tout ça peut être amélioré en
commençant pa exemple les boucles par le paramètre
ligne.et en paramètrant même le nombre de cases et le
nombre de pions par case pour que ça soit plus général.
Mais tu as vu comme il était pressé le gars
Et même pas Merci !
Réservons ça pour une prochaine fois.

a+