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 :

[newbie] comment programmer random en c++ ???


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �m�rite Avatar de zorm
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    584
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 584
    Par d�faut [r�solu] [newbie] comment programmer random en c++ ???
    j'ai cherche dans la FaQ du site mais j'ai pas trouve alors si quelqu'un pouvait me venir en aide.

    ce que je cherche a faire, c'est la selection au hazard d'un chiffre dans une map definit comme ceci:

    std::map<std::string, AttMot>;
    il me faudrait donc une fonction qui selectionne au hazard un chiffre qui aura ete entr� dans le std::string en first de la map.

    merci d'avance.

  2. #2
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    fonction random_shuffle dans la STL.
    http://support.microsoft.com/default.aspx?scid=kb;en-us;156994
    8)

  3. #3
    Membre �m�rite Avatar de zorm
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    584
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 584
    Par d�faut
    ok merci beaucoup,
    disons que la je vois pas trop comment l'utiliser mais j'y regarderai a tete repos� plus tard.
    sinon pendant que j'y suis, j'aimerai un conseil. j'essaye de programmer le jeu du pendu et j'ai programme actuellement la page de presentation, une partie qui permettra de rajouter des mots dans le dictionnaire et la je vais m'attaquer a la partie jeu.

    mon probleme est comment, apres avoir choisit un des mots dans le dictionnaire au hazard ( d'ou le random ), faire pour que a partir du mot choisi, on est la premiere lettre et le reste des lettres en _
    je pensais essayer de programmer pour que le mot choisit soit decompose lettre par lettre dans une autre map et apres faire un test pour voir si la lettre est dedans mais il existe surement un moyen plus simple pour le faire

    alors encore merci d'avance

  4. #4
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Hmm random_shuffle sert � melanger une sequence, pas � resortir un �l�ment al�atoirement. Pourquoi pas plutot g�n�rer un indice al�atoire (avec rand()) puis aller piocher l'�l�ment correspondant dans ta map ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    int Indice = rand() % Map.size();
    map<...>::iterator It = Map.begin();
    std::advance(It, Indice);
     
    std::string Mot = It->first;

  5. #5
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    et voila, j'ai encore lu trop vite.
    dsl.

  6. #6
    Membre �m�rite Avatar de zorm
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    584
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 584
    Par d�faut
    Citation Envoy� par Loulou24
    Hmm random_shuffle sert � melanger une sequence, pas � resortir un �l�ment al�atoirement. Pourquoi pas plutot g�n�rer un indice al�atoire (avec rand()) puis aller piocher l'�l�ment correspondant dans ta map ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    int Indice = rand() % Map.size();
    map<...>::iterator It = Map.begin();
    std::advance(It, Indice);
     
    std::string Mot = It->first;
    excuse moi de remettre ce message au gout du jour mais hier j'ai essaye d 'inclure ce que tu m'as propose ci dessus dans mon programme mais je n'y suis pas arrive, alors si quelqu'un pouvait me mettre les commentaires de chacune des lignes, je comprendrai surement mieux qu'est ce que je fais ( eh oui, je suis vraiment un gros newbie desole)

    merci a vous!

    zorm

    PS: y a t'il des includes specials a mettre pour pouvoir compiler ce code???

  7. #7
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <iterator> // pour std::advance
    #include <map> // pour std::map
    #include <string> // pour std::string
    #include <cstdlib> // pour rand
     
    // Génération d'un nombre aléatoire entre 0 et Map.size() - 1
    int Indice = rand() % Map.size();
     
    // Récupération d'un itérateur sur le début de la map
    map<std::string, AttMot>::iterator It = Map.begin();
     
    // On avance l'itérateur Indice fois : on pointe maintenant sur l'élément numéro Indice de la map
    std::advance(It, Indice);
     
    // On récupère ce qui est pointé par l'itérateur
    std::string Mot = It->first;
    j'ai essaye d 'inclure ce que tu m'as propose ci dessus dans mon programme mais je n'y suis pas arrive
    La prochaine fois pense � pr�ciser ton erreur �a peut �tre utile aussi .

  8. #8
    Membre �m�rite Avatar de zorm
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    584
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 584
    Par d�faut
    ok merci beaucoup.

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

Discussions similaires

  1. [Palm] Comment programmer pour Palm Os ?
    Par Pascal Lob dans le forum Mobiles
    R�ponses: 7
    Dernier message: 24/08/2007, 09h59
  2. comment programmer un gestionnaire d'interruptions
    Par youknowriad dans le forum C++
    R�ponses: 1
    Dernier message: 04/01/2006, 15h34
  3. Comment programmer un robot ?
    Par reggae dans le forum Robotique
    R�ponses: 4
    Dernier message: 18/12/2005, 11h41
  4. Comment programmer sous dos ?
    Par AsmCode dans le forum C++
    R�ponses: 8
    Dernier message: 17/11/2005, 02h07
  5. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    R�ponses: 3
    Dernier message: 13/11/2002, 11h07

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