raziel62
Messages postés53Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention17 septembre 2005
-
9 mars 2005 à 15:34
cqui789
Messages postés261Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention18 mai 2009
-
10 mars 2005 à 01:04
salut,
je suis en train de faire un puissance 4 en vb6. mais je bloque pour voir qu´il y a 4 pions alignés ou non.
donc je vous explique ce que j´ai fait:
j´ai fait le jeu avec des images indexées (avec drag and drop) mais lorsque le joueur
met un pion, ça remplie aussi un tableau a deux dimensions tab(-2 to
10, -2 to 10)
normalement le joueur peut mettre des pions que entre 1 et 7 mais
j´ai rajouter une " bordure" de 3 pour pouvoir comparer car sinon j´ai
un message d´erreur.
le premier nombre c´est la collone et le deuxieme la ligne.
maintenant il ne reste plus qu´a ecrire l´algo mais j´aimerai faire
un truc propre et pas une succession de IF j'ai compté 16 cas differents ou on peut avoir 4 pions alignés. Quelqu´un a une idée?
raziel62
Messages postés53Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention17 septembre 2005 9 mars 2005 à 18:20
ok merci je pense que c'est ce que j'ai fait un peu pret :
j'ai fait quatres tests deux pour les diagonales et deux pour
l'orizontal et le vertical. Ca marche mais si quelqun a une idée pour
simplifier le code ...
Tabl(collone, ligne) permet de determiner quel est le pion du joueur qui a jouer en dernier.
For j = -3 To 3
If Tabl(collone + j, ligne - j) = Tabl(collone, ligne) Then
compteur1 = compteur1 + 1
If compteur1 = 4 Then
MsgBox ("V")
End If
Else
compteur1 = 0
End If
'''''''''''''''
If Tabl(collone - j, ligne - j) = Tabl(collone, ligne) Then
compteur2 = compteur2 + 1
If compteur2 = 4 Then
MsgBox ("V")
End If
Else
compteur2 = 0
End If
'''''''''''''''
If Tabl(collone, ligne - j) = Tabl(collone, ligne) Then
compteur3 = compteur3 + 1
If compteur3 = 4 Then
MsgBox ("V")
End If
Else
compteur3 = 0
End If
'''''''''''''
If Tabl(collone + j, ligne) = Tabl(collone, ligne) Then
DomCabana
Messages postés14Date d'inscriptionmardi 8 mars 2005StatutMembreDernière intervention 9 mars 2005 9 mars 2005 à 18:43
Je ne l'écrirai pas au point mais je te donne un apercu
for i = 0 to 3 ' 0=verticale, 1=horizontale, 2=dia1, 3 =dia2
for j = 0 to colonne-1
if Tabl(colonne+i,ligne+j) = Tabl(colonne+i+1, ligne+j)
else
end if
next
next
À partir de la tu dois ajuster tes variables pour couvrir tout ton tablo de jeu, exemple pour diagonale1 tu devras peut-être ajouter une variable x pour te permettre d'arrivé à la position désiré. Je ne peux pas m'assir et concevoir l'algorithme à ta place mais ca devrait resembler à ca avec des variantes
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 9 mars 2005 à 21:46
il y a 4 tests à faire: 1 pour l'orizontal, 1 pour la verticale, et 2 pour les diagonales.
soit la Table T(x,y) qui contient 0 si vide, 1 pour joueur n°1, 2 pour joueur n° 2, etc ...
soit xx, yy la taille de la grille, soit j le joueur en cours et x,y la dernière case jouée.
'test horizontal b y: n 0
for a = 1 to xx if T(a,b) j then n n + 1 if n 4 then cas 1: exit for
next
'text vertical a x: n 0
for b = y to yy if T(a,b) j then n n + 1 if n 4 then cas 2: exit for
next
'test diagonale 1 d x + y: n 0
for a = 1 to xx
b = d - a
if b <= yy and b > 0 then if T(a,b) j then n n + 1 if n 4 then cas 3: exit for
end if
next
'test diagonale 2 d x - y: n 0
for a = 1 to xx
b = a - d
if b <= yy and b > 0 then if T(a,b) j then n n + 1 if n 4 then cas 4 exit for
end if
next
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?