Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème programme

boucle fonctionne 1 fois

    20 décembre 2005 à 11:11:41

    Salut à tous les zeros! j'ai suivi un des tutos non officiel, celui qui fais faire un jeu. Bref je l'ai fais sans grande difficulté :-°, mais je me suis dis si tu essaye de le modifié ça pourait être simpa.
    Bravo, il parle tout seul, le pauvre enfant, ça c'est de l'overdose de prog, lol.

    Et donc cela donne ça :
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
       
       int nb_rech = 0;
       int nb_user = 0;
       int essai = 0;
       int gagne = 0;
       int difficulte = 1;
       int choix = 0;
       int quit = 0;
       
       while (quit != 1)
       {
             printf("Que voulez vous faire ?\n");
             printf("1. jouer\n");
             printf("2. quitter\n");
             scanf("%d", &choix);
             
       if   (choix == 2)
       {
        printf("Merci d'avoir jouer a Unknow Number\n");
        system("PAUSE");
        return 0;
       }
       else
       {
           system("CLS");
     
       
      printf("CHoisissez votre niveau de difficulte :\n");
      printf("1. facile\n");
      printf("2. moyen\n");
      printf("3. dur\n");
     
      scanf("%d", &difficulte);
     
      srand((int)time(NULL));
     
      if (difficulte == 1)
     
    {
         
         nb_rech=rand()%50;
         printf("Vous avez 5 chances pour trouver le nombre.\n");
         printf("Entrez un nombre entre 0 et 50 :\n");
         do
           {
                               scanf("%d", &nb_user);
                               if (nb_user < nb_rech)
                               {
                                       printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                               essai++;
                               }
                               else if (nb_user > nb_rech)
                               {
                                    printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                               essai++;
                               }
                               else
                               {
                                    printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                               gagne = 1;
                               }
           }while (gagne != 1 && essai !=5);
           
      if (gagne == 1)
          {
                printf("Vous avez gagne!!!\n");
          }
           else
             {
        printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
             }
         
    }
      else if(difficulte == 2)

    {
           
           nb_rech=rand()%500;
           printf("Vous avez 10 chances pour trouver le nombre.\n");
           printf("Entrez un nombre compris entre 0 et 500 :\n");
           do
           {
                               scanf("%d", &nb_user);
                               if (nb_user < nb_rech)
                               {
                                       printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                               essai++;
                               }
                               else if (nb_user > nb_rech)
                               {
                                    printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                               essai++;
                               }
                               else
                               {
                                    printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                               gagne = 1;
                               }
           }while (gagne != 1 && essai !=10);
           
      if (gagne == 1)
      {
                printf("Vous avez gagne!!!\n");
    }
    else
    {
        printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
    }
           
    }
      else if(difficulte == 3)
     
    {
           
           nb_rech=rand()%1000;
           printf("Vous avez 15 chances pour trouver le nombre.\n");
           printf("Entrez un nombre compris entre 0 et 1000 :\n");
           do
           {
                               scanf("%d", &nb_user);
                               if (nb_user < nb_rech)
                               {
                                       printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                               essai++;
                               }
                               else if (nb_user > nb_rech)
                               {
                                    printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                               essai++;
                               }
                               else
                               {
                                    printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                               gagne = 1;
                               }
           }while (gagne != 1 && essai !=15);
           
          if (gagne == 1)
            {
                printf("Vous avez gagne!!!\n");
            }
         else
        {
        printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
        }
    } 
      else

    {
          printf("ERREUR\a\n");
    }

    system("PAUSE");
    system("CLS");
                 
                               

    printf("Merci d'avoir joue a Unknow number\n");
    }
    }
     
      system("PAUSE");     
      return 0;
    }


    Mais le truc c'est que les boucles ne fonctionne qu'un seul fois. Je m'explique, je joue, je prend n'importe quel niveau, je trouve le nombre, je trouve le programme sympa donc je rejoue, je choisis, le niveau de difficulté, je rentre mon premier nombre et PAf, la il me dit:" votre nombre est trop petit, veuillez entrer un nombre plus grand :
    vous avez gagné!!!
    Appuyer sur une touche pour continuer..."

    C'est très très fort non, svp j'ai besoins d'aide, merci d'avance et svp ne me prenez pas pour un fou, lol

    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2005 à 11:17:49

      Tu as oublier de reinitialiser la variable gagne apres que le joueur est gagné.


         // ...
         int nb_rech = 0;
         int nb_user = 0;
         int essai = 0;
         int gagne = 0;
         int difficulte = 1;
         int choix = 0;
         int quit = 0;
         
         while (quit != 1)
         {
               gagne = 0; // Il fallait la reinitialisé
               printf("Que voulez vous faire ?\n");
               printf("1. jouer\n");
               printf("2. quitter\n");
               scanf("%d", &choix);
               // ...
      • Partager sur Facebook
      • Partager sur Twitter
        20 décembre 2005 à 11:22:30

        je crois que ça sa marche.


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

        int main()
        {
           
           int nb_rech = 0;
           int nb_user = 0;
           int essai = 0;
           int gagne = 0;
           int difficulte = 1;
           int choix = 0;
           int quit = 0;
           
           while (quit != 1)
           {

                 printf("Que voulez vous faire ?\n");
                 printf("1. jouer\n");
                 printf("2. quitter\n");
                 scanf("%d", &choix);
                 
           if   (choix == 2)
           {
            printf("Merci d'avoir jouer a Unknow Number\n");
            system("PAUSE");
            return 0;
           }
           else
           {
               system("CLS");
         
           
          printf("CHoisissez votre niveau de difficulte :\n");
          printf("1. facile\n");
          printf("2. moyen\n");
          printf("3. dur\n");
         
          scanf("%d", &difficulte);
         
          srand((int)time(NULL));
         
          if (difficulte == 1)
         
        {
             
             nb_rech=rand()%50;
             printf("Vous avez 5 chances pour trouver le nombre.\n");
             printf("Entrez un nombre entre 0 et 50 :\n");
             do
               {
                                   scanf("%d", &nb_user);
                                   if (nb_user < nb_rech)
                                   {
                                           printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                                   essai++;
                                   }
                                   else if (nb_user > nb_rech)
                                   {
                                        printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                                   essai++;
                                   }
                                   else if(nb_user == nb_rech)
                                   {
                                        printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                                   gagne = 1;
                                   }
               }while (gagne != 1 && essai !=5);
               
          if (gagne == 1)
              {
                    printf("Vous avez gagne!!!\n");
              }
               else
                 {
            printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
                 }
             
        }
          else if(difficulte == 2)

        {
               
               nb_rech=rand()%500;
               printf("Vous avez 10 chances pour trouver le nombre.\n");
               printf("Entrez un nombre compris entre 0 et 500 :\n");
               do
               {
                                   scanf("%d", &nb_user);
                                   if (nb_user < nb_rech)
                                   {
                                           printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                                   essai++;
                                   }
                                   else if (nb_user > nb_rech)
                                   {
                                        printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                                   essai++;
                                   }
                                   else if(nb_user == nb_rech)
                                   {
                                        printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                                   gagne = 1;
                                   }
               }while (gagne != 1 && essai !=10);
               
          if (gagne == 1)
          {
                    printf("Vous avez gagne!!!\n");
        }
        else
        {
            printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
        }
               
        }
          else if(difficulte == 3)
         
        {
               
               nb_rech=rand()%1000;
               printf("Vous avez 15 chances pour trouver le nombre.\n");
               printf("Entrez un nombre compris entre 0 et 1000 :\n");
               do
               {
                                   scanf("%d", &nb_user);
                                   if (nb_user < nb_rech)
                                   {
                                           printf("Votre nombre est trop petit, veuillez entrer un nombre plus grand :\n");
                                   essai++;
                                   }
                                   else if (nb_user > nb_rech)
                                   {
                                        printf("Votre nombre est trop grand, veuillez entrez un nombre plus petit :\n");
                                   essai++;
                                   }
                                   else if(nb_user == nb_rech)
                                   {
                                        printf("Bravo, vous avez trouve le bon nombre!!!\n\a");
                                   gagne = 1;
                                   }
               }while (gagne != 1 && essai !=15);
               
              if (gagne == 1)
                {
                    printf("Vous avez gagne!!!\n");
                }
             else
            {
            printf("Vous avez perdu, le nombre a trouve etait : %d.\n", nb_rech);
            }
        }
          else

        {
              printf("ERREUR\a\n");
        }

        system("PAUSE");
        system("CLS");
                     
                                   

        printf("Merci d'avoir joue a Unknow number\n");
        }
        }
         
          system("PAUSE");     
          return 0;
        }
        • Partager sur Facebook
        • Partager sur Twitter

        problème programme

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown