Programme plus ou moins

pizzaiolo77 Messages postés 4 Statut Membre -  
Pinzou76 Messages postés 750 Statut Membre -
Bonjour, voila je suis en cours d'apprentissage . Afin d'apprendre le codage ( en C) j'utilise le site openclassrooms . Donc mon problème est que je désire faire une demande au joueur si il veut rejouer et en fonction de sa réponse soit arrêter soit recommencer un parti . J'ai lu plusieurs réponse a mon problème mais aucunes n'as fonctionné , j'allais oublié je veux aussi lui dire au revoir si il ou elle ne veut plus jouer. voici mon programme :

#include <iostream>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0, compteur = 0, rejouer = 1;
const int MAX = 100, MIN = 1;

// Génération du nombre aléatoire

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

/* La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère */

do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
compteur++;

// On compare le nombre entré avec le nombre mystère

if (nombreMystere > nombreEntre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombreEntre)
printf("C'est moins !\n\n");
else
printf ("Bravo, vous avez trouve le nombre mystère en %d coups !!!\n\n",compteur);

} while (nombreEntre != nombreMystere);

/* a partir d'ici rien de fonctionne */

printf("voulez vous jouer a nouveau ? oui(1) non (0)\n");
scanf("%d",&rejouer);
system("pause");
{

}
while (rejouer!=0);

printf("Au revoir!!!");
system("pause");
return 0 ;
}

merci d'avance pour votre aide .

1 réponse

  1. Pinzou76 Messages postés 750 Statut Membre 192
     
    Bonjour, tu pourrais faire un autre do...while de la sorte:
    do
    {
        do
        {
        //Le code de ton jeu
        //Boucle qui s'effectue tant que la réponse est fausse
        }
        while (nombreEntre != nombreMystere); 
        printf("voulez vous jouer a nouveau ? oui(1) non (0)\n"); 
        scanf("%d",&rejouer); 
    }
    while(rejouer!=0);
    //Et ici le message d'au revoir qui s'affichera quand l'utilisateur entrera 0


    Bon courage

    PS: Merci d'utiliser la coloration syntaxique la dernière fois pour être plus lisible :)
    0
    1. pizzaiolo77 Messages postés 4 Statut Membre
       
      le premier "do " correspond a mon " do " du départ de mon code , ou il faut que je le mette deux fois ?
      0
    2. Pinzou76 Messages postés 750 Statut Membre 192
       
      Il faut le mettre deux fois:
      -Un do...while tant que l'utilisateur veut rejouer,
      -Un autre à l'intérieur du précédent, celui que tu as déjà, tant que l'utilisateur a faux
      0
    3. pizzaiolo77 Messages postés 4 Statut Membre
       
      ok je vais essayer merci
      0
    4. pizzaiolo77 Messages postés 4 Statut Membre
       


      maintenant j'ai des erreur je suis vraiment nul
      0
    5. Pinzou76 Messages postés 750 Statut Membre 192
       
      Ce sont juste des erreurs de syntaxe, c'est normal.
      #include <iostream> 
      #include <stdio.h> 
      #include <stdlib.h> 
      #include <time.h> 
      
      int main ( int argc, char** argv ) 
      { 
      int nombreMystere = 0, nombreEntre = 0, compteur = 0, rejouer = 1; 
      const int MAX = 100, MIN = 1; 
      
      srand(time(NULL)); 
      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; 
      
      do
      {
          do 
          { 
              printf("Quel est le nombre ? "); 
              scanf("%d", &nombreEntre); 
              compteur++; 
      
              if (nombreMystere > nombreEntre) 
                  printf("C'est plus !\n\n"); 
              else if (nombreMystere < nombreEntre) 
                  printf("C'est moins !\n\n"); 
              else 
                  printf ("Bravo, vous avez trouve le nombre mystère en %d coups !!!\n\n",compteur); 
          } 
          while (nombreEntre != nombreMystere); 
      
          printf("voulez vous jouer a nouveau ? oui(1) non (0)\n"); 
          scanf("%d",&rejouer); 
      }
      while (rejouer!=0); 
      
      printf("Au revoir!!!"); 
      return 0 ; 
      } 

      Essaie ce code, puis résoud les erreurs 1 par 1 en commençant par celle du haut (la première). Chaque fois que tu résouds une erreur, essaie de relancer le programme.

      [EDIT] Le programme que je t'ai posté fonctionne, il faut juste enlever le
      #include <iostream>
      qui est une spécification du C++
      0