Bonjour je voulais savoir sil est possible de faire deux rand different pour utiliser un dans une fonction et un autre dans un autre fonction . Jai essayé mais celui-ci reproduit la meme chose dans mes deux fonction.
Bonjour je voulais savoir sil est possible de faire deux rand different pour utiliser un dans une fonction et un autre dans un autre fonction . Jai essayé mais celui-ci reproduit la meme chose dans mes deux fonction.
Bonjour,
As-tu bien appelé srand() au préalable ?
Sinon tu as des entrées sur srand dans la FAQ C.
Pourquoi ne pas utiliser les nombres aléatoire tels qu'ils le devraient en C++ plutôt que d'utiliser ce qui est fourni par le C ?
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <random> void fn1(unsigned int x); void fn2(unsigned int x); void sample() { std::mt19937 eng; std::uniform_int_distribution<unsigned int> rnd(0, 10); fn1(rnd(eng)); fn2(rnd(eng)); }
J'ai ça dans mon main
et dans une de mes fonctions j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part srand(static_cast<unsigned int>(time(0)));
j'ai associé des chiffres entre 0 a 4 à des déplacements
Code : Sélectionner tout - Visualiser dans une fenêtre à part random=rand() % 4;
ma première fonction de déplacement marche mais si je copie la même chose
dans mon autre fonction de déplacement celui-ci va copier l'autre alors j'ai deux personnages qui bougent de la même manière comme si le rand était le même pour les deux ce que je ne veux pas du tout.
Tiré du man de rand:
Si vous désirez engendrer un entier aléatoire entre 1 et 10, vous devez toujours procéder en utilisant les bits de poids forts, comme dans :
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
et jamais ainsi :
j=1+(rand() % 10);
(car cette derniere version utilise les bits de poids faibles).
Partager