amsterdam a écrit :
Bonjour.
Voici un bout de code qui me sert à mélanger les valeurs contenues dans un tableau.
v0 = UBound(tableau_mots) - LBound(tableau_mots)
For i = LBound(tableau_mots) To UBound(tableau_mots)
v1 = Rnd() * v0 + LBound(tableau_mots)
v2 = Rnd() * v0 + LBound(tableau_mots)
v3 = tableau_mots(v2)
tableau_mots(v2) = tableau_mots(v1)
tableau_mots(v1) = v3
|
Je n'ai qu'un problème, c'est que le mot qui se trouve en première place dans mon tableau avant le mélange se retrouve régulièrement deux fois après le brassage.
Je pensai que ça pouvait être lié à " option base 1 " mais à priori non.
Si qqun avait une idée...
Merci d'avance.
|
Salut,
Bon, à voir il semble qu'avec les fonctions Randomize et Rnd tu n'arrives pas à faire tirer à VB une fois et une seule fois les chiffres d'une série...
Si tu te souviens de ton précédent Post, il y avait une remarque de dahlo:
Citation :
l'essentiel est dans la dernière boucle Do...
|
Je ne peux donc que confirmer sa remarque... Et si tu te souviens bien, sa boucle Do fait:
Code :
- Do
- MyValue = Int((UBound(MonTabl, 1) * Rnd))
- Loop While MonTabl(MyValue) <> ""
|
Voilà... il ne te reste plus qu'à adapter tout ça pour ton code
A+ et bon week-end
Message édité par gfa le 10-06-2005 à 16:55:45