Nombre aléatoire qui n'est pas vraiment aléatoire... [Visual Basic 6] - VB/VBA/VBS - Programmation
Marsh Posté le 09-11-2005 à 10:53:00
Utilise Randomize avant l'appel du premier rnd ...
Marsh Posté le 09-11-2005 à 10:58:16
La fonction Randomize genere un "seed" basé sur le timer du système qui servira pour les fonctions "random" qui suivront. Comme le timer change tout le temps le nombre de base pour le random changera aussi.
Marsh Posté le 09-11-2005 à 10:59:54
ok. il suffit juste de ralouter Randomize avant le code... Merci.
Ca marche...
Marsh Posté le 10-11-2005 à 15:38:08
petite note :
c'est une fonctionnalite bien pratique pour le test et le debugage que de pouvoir connaitre a l'avance quelle serie va etre obtenue ...
et de pouvoir la passer en 'vraie aleatoire' simplement ^^
Marsh Posté le 09-11-2005 à 10:37:53
Salut à tous.
Je développe un petit jeu de dés en VB6.
Le principe est qu'il y a 5 dés et que quand je clique sur un bouton "GO", les 5 dés prennent chacun une valeur aléatoire comprise entre 1 et 6.
Chaque dé est un TextBox, et ils sont nommés de1, de2, de3, de4, de5.
Le code de mon bouton GO est le suivant :
Private Sub GO_Click()
de1.Text = Int(Rnd * 6) + 1
de2.Text = Int(Rnd * 6) + 1
de3.Text = Int(Rnd * 6) + 1
de4.Text = Int(Rnd * 6) + 1
de5.Text = Int(Rnd * 6) + 1
End Sub
Mon problème est le suivant:
Je lance mon programme et j'effectue 10 lancers consécutifs. J'obtiens les résultats suivants:
Lancer 1 : 5.4.4.2.2
Lancer 2 : 5.1.5.5.5
Lancer 3 : 1.3.6.5.3
Lancer 4 : 6.6.1.6.3
Lancer 5 : 4.5.1.4.3
Lancer 6 : 2.4.4.2.2
Lancer 7 : 5.5.4.6.6
Lancer 8 : 2.5.6.2.4
Lancer 9 : 1.6.5.1.4
Lancer 10 : 1.1.5.2.1
Je quitte le programme et je le relance, puis j'effectue une nouvelle série de 10 lancers. J'obtiens cette fois les résultats suivants :
Lancer 1 : 5.4.4.2.2
Lancer 2 : 5.1.5.5.5
Lancer 3 : 1.3.6.5.3
Lancer 4 : 6.6.1.6.3
Lancer 5 : 4.5.1.4.3
Lancer 6 : 2.4.4.2.2
Lancer 7 : 5.5.4.6.6
Lancer 8 : 2.5.6.2.4
Lancer 9 : 1.6.5.1.4
Lancer 10 : 1.1.5.2.1
Les deux séries de lancers sont strictement identiques...
Je me demande donc ce qui cloche dans mon programme, parce que si je lance une seule fois le programme, je peux effectivement croire que les dés sont joués de manière aléatoire, mais si j'exécute plusieurs fois le programme, je trouve les mêmes résultats à chaque fois...
Est-ce normal? Comment remédier à ce problème?
Merci à tous...
Message édité par Profil supprimé le 09-11-2005 à 10:45:11