IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probl�me variable random pas tr�s random..


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par d�faut Probl�me variable random pas tr�s random..
    Bonjour � tous,
    j'ai un petit souci dont je n'arrive pas � me d�faire, il s'agit d'un random pour une variable...

    Je m'explique, je d�veloppe un jeu au tour par tour, et chaque fois des d�s sont lanc�s, donc 2 d�s, 2 variable de 1 � 6 al�atoires. MAis j'ai beau compiler, recompiler, les variables random suivent le m�me cheminement � chaque fois... Le premier d� me sort toujours un 6, puis un 2, puis un 4, etc..

    Comment faire pour que chaque fois le random marche vraiment?

    Voil� mon code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    srand(rand());
        de_1= (int)rand();
        de_1=(de_1%6+1);/*pour mettre alea de 1 à 6*/
    Merci d'avance si quelqu'un peut m'aider l� dessus^^!

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014

  3. #3
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Tu utilises toujours la m�me graine.

  4. #4
    Membre confirm� Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par d�faut
    Ah! Super, j'avais m�me pas pens� � la FAQ!
    Merci beaucoup, �a rox l�!

  5. #5
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par d�faut
    Bonjour,
    Sinon tu as une fonction dans la biblioth�que boost.
    boost.random
    www.boost.org

    un petit exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    boost::minstd_rand generator(static_cast<unsigned int>(std::time(0)));
    boost::uniform_int<boost::minstd_rand, int> uni(generator, 1, 15); // entre 1 et 15
    int nb = uni();
    A bient�t

  6. #6
    Membre confirm� Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par d�faut
    Le probl�me est r�solu, mais j'ai un autre truc qui me chagrine et je ne trouve pas la solution dans la FAQ!
    En fait imaginons que dans le jeu, il y a un lanc� de 2 d�s, soit 2 random. La tout marche, mais une fonction sp�ciale du jeu permet l'utilisation d'une �botte secr�te" qui permet 2 lancers de 2 d�s. Donc ma fonction bonus se pr�sente comme ceci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int Carte :: bonus()
    {
        Joueur J;
        int de;
        de=J.lancer_des();
        return de;
    }
    Donc je me douterais peut �tre que c'est le srand(time = (NULL)) qui fait que au m�me moment, les randoms sont �gaux, mais comment faire dans ce cas l�?


    EDIT: J'�vite d'utiliser trop de biblioth�que, car mon application devra �tre par la suite multi plateforme... Donc je pense que limiter les biblis m'aiderais...

  7. #7
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par d�faut
    srand() ne doit �tre appel� qu'une seule fois... au d�but du programme. (tu l'appelles � chaque fois?)


    pour boost : il est portable. (linux / windows en tout cas ).

  8. #8
    Membre confirm� Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par d�faut
    Ok, je l'ai mis au tout d�but, et �a marche, niquel! Pas besoin de boost du coup!

  9. #9
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    As-tu aussi lu cet article ?

  10. #10
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Citation Envoy� par Goten Voir le message
    pour boost : il est portable. (linux / windows en tout cas ).
    Et m�me Mac...
    Il supporte un grand panel de compilateurs, surtout pour une biblioth�que comme boost.random qui n'utilise pas des techniques tr�s avanc�es niveau C++...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Rnd(), la fonction random qui ne random pas
    Par zarohn dans le forum VB.NET
    R�ponses: 3
    Dernier message: 24/05/2010, 14h46
  2. Probl�me Borland builder + boost lib (random.hpp)
    Par visodyn dans le forum C++Builder
    R�ponses: 1
    Dernier message: 04/02/2008, 17h29
  3. Probl�me Borland builder + boost lib (random.hpp)
    Par visodyn dans le forum Boost
    R�ponses: 2
    Dernier message: 04/02/2008, 17h21
  4. Probl�me d'affichage IE/Firefox (c'est pas tr�s original)
    Par jpparmentier dans le forum Mise en page CSS
    R�ponses: 1
    Dernier message: 01/02/2007, 12h01
  5. random pas si random que �a
    Par Biosox dans le forum C
    R�ponses: 6
    Dernier message: 31/07/2006, 19h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo