Demande d'info avec boucle et condition

Résolu/Fermé
samghami Messages postés 61 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 2 mars 2016 - 21 mai 2012 à 22:22
samghami Messages postés 61 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 2 mars 2016 - 21 mai 2012 à 22:54
Bonjour, j'ai 16 ans, je suis actuellement en création d'un jeux COMPLET sur "C'est plus, C'est moin"
J'ai un problème pour mon codage.
Je voudrais faire un nombre de coup maximum utilisable. Si le nombre de coup est epuisée, l'on affiche "Perdu" . Je vous montre une partit de mon taff:
    case 2: {
       int nombreMystere = 0, nombreEntre = 0, compteur = 0, Ncompteur = 10;
    const int MAX = 500, MIN = 1;
    //génération du nombre aléatoire

    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    /*La boucle du programme. Elle se repete tant que l'utilisateur
    na pas trouvée le nombre mystere */
    //on explique la difficulté:
    printf("Vous avez choisie la difficulte Moyen! Le nombre est compris entre 1 et 500\n");
    do {

    //On demande le nombre
    printf("Quel est le nombre ? ");
    scanf("%d", &nombreEntre);
    compteur = compteur + 1;
    Ncompteur = Ncompteur - 1;

if (Ncompteur > 0)
{
    //on compare le nombre entrée avec le nombre mystere
    if (nombreMystere > nombreEntre)
        printf("C'est plus que %d !\n\n", nombreEntre);
    else if (nombreMystere < nombreEntre)
        printf("C'est moin que %d ! \n\n", nombreEntre);
    else
         printf("Bravo vous avez trouve le nombre mystere qui etais %d !!! \n\n Le nombre a ete trouve en %d coups", nombreMystere, compteur);

    }
else
{
    printf("Vous avez perdu!");
}
    }
     while (nombreEntre != nombreMystere);
       getchar();
    return 0;}
       break;

Mais lorsque je fais cela, Il affiche "Vous avez perdu!" mais le problème c'est qu'il reviens a "Quel est le nombre?" alors que je voudrais qu'il reste au message "Vous avez perdu!"

Y aurais-t-il quelqu'un qui serais m'aider?


A voir également:

2 réponses

Xerium Messages postés 80 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 13 avril 2016 1
21 mai 2012 à 22:45
Il me semble que la condition du [do ... while] n'est pas correcte pour ce que tu veux faire. En gros, tu dis de faire la boucle tant que l'utilisateur n'a pas trouvé le nombre. Il faut que tu ajoutes "ET que nCompteur > 0".

Tu dois donc avoir (nombreEntre != nombreMystere && nCompteur > 0) comme condition.
0
samghami Messages postés 61 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 2 mars 2016 1
21 mai 2012 à 22:54
Je te remercie, cela est opérationnel :)
0