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

Langage C++ Discussion :

TP Le mot mystère


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 3
    Par défaut TP Le mot mystère
    Bonjour/bonsoir,

    J'ai commencé un cours à propos du C++ et je me heurte déjà à un problème.
    Je n'arrive pas à faire la première amélioration du TP le mot Mystère.
    J'ai fait ce code ci :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
     
    using namespace std;
     
    string motUtilisateur, motJoueur, motMelange, reponse;
     
    string melangerLettres(string mot)
            {
                string melange;
                int position(0);
     
                while(mot.size() != 0)
                {
                    position = rand() % mot.size();
     
                    melange += mot[position];
     
                    mot.erase(position, 1);
                }
                return melange;
            }
     
     
            int main()
            {
                    do
                    {
                    cout << "Ton mot : "<<endl;
                    cin >> motUtilisateur;
                    motMelange = melangerLettres(motUtilisateur);
     
     
                    do
                    {
                        cout <<"Quel est ce mot ?"<< motMelange<< endl;
                        cin >> motJoueur;
                        if(motUtilisateur == motJoueur)
                        {
                            cout << "Bravo ! Vous voulez recommencer, oui ou non ?"<< endl;
                            cin>> reponse;
                        }
                        else if(motUtilisateur != motJoueur)
                        {
                            cout<< "Ce n'est pas le bon mot, voulez-vous recommencer, oui ou non ?"<< endl;
                            cin >> reponse;
                        }
     
     
                    }while(motUtilisateur != motJoueur);
     
                }while(reponse == "oui");
        return 0;
    }
    Je précise (même si vous l'avez sans doute remarqué) que je suis un débutant complet en programmation, j'essaye d'apprendre mais la j'avoue que je bloque.
    Ce code s'exécute, lance le jeu et tout se passe parfaitement bien lorsque la bonne réponse est donnée (que ce soit pour relancer ou stopper le jeu), mais lorsque la réponse est mauvaise le jeu se relance (parfaitement la aussi) quoi que je réponde.
    J'comprends pas du tout car pour moi que ce soit pour le IF ou le ELSE IF, si la réponse est "oui" bah ça relance et si non bah ça stop, mais pourtant c'est pas ce qu'il se passe.
    Donc voila si des gens peuvent m'expliquer le pourquoi du comment, je ne cherche pas à choper une correction (yen a déja pas mal partout), mais vraiment comprendre ou est mon erreur.

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    - using namespace std; ne devrait jamais être utilisé
    - les variables globales ne doivent jamais être utilisées
    - mélanger le mot ne sert à rien du tout
    - ton code fait littéralement
    > tant que l'utilisateur répond oui
    >> je lui demande un mot
    >> je mélange les lettres du mot sans aucune raison ni but
    >> tant que le mot qu'il me donne est incorrect
    >>> je lui demande un mot
    >>>> s'il est correct je dis bravo et lui demande s'il veut continuer
    >>>> s'il est incorrect je dis dommage et lui demande s'il veut continuer
    s'il rentre un mauvais mot, tu lui redemandes un mot..
    s'il répond pas oui, tu quittes la fonction
    la seule chance de sortir est de répondre le bon mot et de répondre autre chose que oui

    si tu lisais calmement et en comprenant chaque ligne, l'erreur est vraiment simple à comprendre.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 3
    Par défaut
    Ah je crois que j’ai saisi. En fait je dis que dès que le mot est différent il faut recommencer, ce qui prime par rapport à la boucle où je dis que si la réponse differe de oui, il faut stopper, c’est ça ? (J’aurai pas le temps de tester avant ce soir).
    Bon du coup merci, par contre par rapport au fait que je mélange sans raison ni but... c’est simplement des consignes données et que j’essaye d’appliquer hein, moi j’ai rien décidé je suis juste un cours 😜

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mot mystère en mode console
    Par dgonn98 dans le forum Langage
    Réponses: 13
    Dernier message: 18/02/2019, 10h18
  2. [WD24] Mystère pour moi - champ mot de passe
    Par bernisch dans le forum WinDev
    Réponses: 5
    Dernier message: 14/02/2019, 11h06
  3. Jeu du mot mystère
    Par jca dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 17h15
  4. Problème d'incrementation (mot mystère)
    Par matt99 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/12/2012, 10h27
  5. Bug insolite : le mot de passe mystère
    Par Kemantari dans le forum Administration
    Réponses: 1
    Dernier message: 21/04/2008, 12h53

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