Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1787 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...

n°1241995
Profil sup​primé
Posté le 09-11-2005 à 10:37:53  answer
 

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
mood
Publicité
Posté le 09-11-2005 à 10:37:53  profilanswer
 

n°1241999
Vobiscum
Vénérez moi !
Posté le 09-11-2005 à 10:53:00  profilanswer
 

Utilise Randomize avant l'appel du premier rnd ...


---------------
Ce qui est affirmé sans preuve peut être nié sans preuve.
n°1242001
Profil sup​primé
Posté le 09-11-2005 à 10:55:17  answer
 

C'est à dire???

n°1242004
Vobiscum
Vénérez moi !
Posté le 09-11-2005 à 10:58:16  profilanswer
 

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.


---------------
Ce qui est affirmé sans preuve peut être nié sans preuve.
n°1242008
Profil sup​primé
Posté le 09-11-2005 à 10:59:54  answer
 

ok. il suffit juste de ralouter Randomize avant le code... Merci.
Ca marche...

n°1243293
gandalf-ze​-wizard
Vous n'avez besoin de rien ?
Posté le 10-11-2005 à 15:38:08  profilanswer
 

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 ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...

 

Sujets relatifs
incrémentation par un nombre décimal[ActionScript] musique mp3 aleatoire
diviseur d'un nombre entierNombre de lettres et de chiffres
Langage de prog. simple type BASIC pour RS232, vos idées SVPcompter le nombre de fois que le mot est dans une chaine de caractére:
indentation du code dans visual basiccompilateur basic
Valeur aléatoire comprise entre 2 nombres?.. 
Plus de sujets relatifs à : [Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR