maxw004
Messages postés28Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention31 août 2006
-
17 août 2006 à 11:24
srib
Messages postés23Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention22 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.
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
srib
Messages postés23Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention22 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.