Mon jeu en C ne s'arrête s'arrete tout seul..

Résolu
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -  
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, mon programme s'eteint automatiquement meme via la fonction
getchar();


Voici ma portion de code:
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("\nVous avez perdu!\n La reponse etait %d\n\n",nombreMystere);
}
    }
     while (nombreEntre != nombreMystere && Ncompteur > 0);
       getchar();}
       break;


Quelqu'un pourrais-t-il m'aider? je souhaite juste que si le nombre de chance (Variable Ncompteur) est epuisé, l'on affiche Vous avez perdu! etc... et qu'il face une pause, ensuite que l'utilisateur tape entrée et que le programme s'éteigne

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Mets tout simplement : system("pause"); avant le return 0; final.
0
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
 
Sur le Site du zero https://openclassrooms.com/fr/ Il est indiquer que ce n'est pas terrible d'utiliser système pause.

L'on ma conseiller d'utiliser "getchar()" pour faire une pause.
Tu en pense quoi?
Mais je vais tester la solution et je tiens infomer
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Effectivement, c'est un sujet polémique.
A savoir :
La fonction system() est une horreur car très peu performante. Ceci dit en fin de programme pour appeler l'instruction "pause" c'est négligeable. system("pause") n'est pas portable : sur GNU/Linux, ça ne marchera pas (à moins de définir une instruction pause bien évidemment).
D'un autre côté, getchar() est portable. Mais il faut bien gérer le buffer clavier. Du moins, il faut s'assurer qu'il soit vide avant d'appeler getchar() pour faire une pause.

Que ce soit getchar() ou system(""), la solution n'est pas top puisqu'en console, l'instruction n'a pas lieu d'être.

Donc pour conclure, si tu te fiches de la portabilité et que tu ne maîtrises pas trop le C, utilise system("pause"); sinon utilise getchar(), mais dans ce cas n'oublie pas de vider le buffer clavier.
0
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
 
Pour info je suis juste en train d'apprendre le C. Je connais assez de base pour faire le programme que j'ai fais ni plus ni moin. Je te remercie pour ton aide, j'essais ta solution et je te dis si cela fonctionne
0
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
 
Cela fonctionne a la perfection, Merci
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonne continuation et à bientôt sur CCM ;-)
0
samghami Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci est je pense que je reviendrai poser de nouvelle question de programmation.
Car l'entraide enrichi les connaissances et ça sa me plais :)
0