Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP: plus ou moins

utiliser les fonctions ou pas

    13 avril 2006 à 21:49:28

    Bonjour,
    Je suis en train de m'inicier au C est j'ai réaliser le code du jeu plus ou moins. Or Mateo nous demende (à la fin du chapitre des fonctions) de refaire le code en utilisant des fonctions.
    Donc je voudrais savoir lequel des deux code est le plus clair pour vous:
    long choixDuNiveau(long niveau)//Fonction pour verifier si le choix est valable, si oui on lui attribut le niveau correspondant
    {   
         if(niveau == 2)   
              return 1000;
                   
         else if(niveau == 3)
              return 10000;

         else if(niveau < 1 || niveau > 3)       
              printf("Votre choix est incorrect!!! Recommencez\n\n");
             
         else
             return 100;
    }

    long genereNombreMystere(long max, long min)
    {
      srand(time(NULL));
      return (rand() % (max - min + 1)) + min;
    }


    void compareNombres(long nombreEntre, long nombreMystere, long nombreDeCoups)
    {
       if(nombreEntre > nombreMystere)
            printf("Essayez encore!!! C'est plus petit\n\n");             

       else if(nombreEntre < nombreMystere)
            printf("Essayez encore!!! C'est plus grand\n\n");

       else
           printf("Bravo!! Vous avez trouve le nombre mystere qui est %ld en %ld coups\n\n", nombreMystere, nombreDeCoups);
    }


    int main(int argc, char *argv[])
    {
        long max = 100, min = 1; //variables (par deafaut = niveau1) pour le calcul du nombre mystère
        long niveau = 0; //variables pour le choix du niveau
        long nombreEntre = 0, nombreMystere = 0, nombreDeCoups = 0; //variables que l'on va utiliser durant le jeu
        int continuerPartie = 1; //voir si le joueur veux faire une nouvelle partie
       
        printf("Bonjour voi-ci mon premier jeux, il consiste a trouver un nombre mystere.\n\n");
       
        while (continuerPartie) //Boucle qui gère si le joueur veux faire une autre partie
        {
              while (niveau < 1 || niveau > 3) //Boucle qui gère si le joueur n'a pas fait un choix incorrect pour le niveau
              {
                printf("Choisissez votre niveau de difficulte\n\n");
                printf("1. Entre 1 et 100\n");
                printf("2. Entre 1 et 1000\n");
                printf("3. Entre 1 et 10000\n\n");
                printf("Inserez le chiffre correspondant au niveau souhaite : "); scanf("%ld", &niveau);
             
                max = choixDuNiveau(niveau);           
               
              }
       
              printf("\n\n");
              printf("------------------------ Debut du jeux ----------------------");
              printf("\nVoyons en combiens de coups vous trouverez le nombre mystere. Bonne chance!!\n\n");   
           

             
             nombreMystere = genereNombreMystere(max, min);

             while (nombreEntre != nombreMystere)
             {
                   
                   //On récupère le nombre que l'utilisateur essaye
                   printf("Veuillez inserez un nombre : "); scanf("%ld", &nombreEntre);
                   nombreDeCoups++;
             
                   //On compare se nombre avec le nombre mystère
                   compareNombres(nombreEntre, nombreMystere, nombreDeCoups);     
              }
             
              nombreDeCoups = 0; //on remet le nombre de coups à 0
              niveau = 0; //pour afficher le menu si le joueur veut faire une autre partie
             
              printf("Voulez-vous faire une autre partie? (1 pour oui, 0 pour non)"); scanf("%ld", &continuerPartie);
        }
       
        system("PAUSE");   
        return 0;
    }

    OU
    int main(int argc, char *argv[])
    {
        long max = 100, min = 1; //calcul du nombre mystère
        int bonChoix = 1, niveau = 1; //vérification du bon choix du joueur por le niveaux
        long nombreEntre = 0, nombreMystere = 0, nombreDeCoups = 0; //varible que l'on va utilise lors du jeux
        int continuerPartie = 1; //voir si le joueur veux faire une nouvelle partie
       
        printf("Bonjour voi-ci mon premier jeux, il consiste a trouver un nombre mystere.\n\n");
       
        while (continuerPartie) //Boucle qui gère si le joueur veux faire une autre partie
        {
              while (bonChoix) //Boucle qui gère si le joueur n'a pas fait un choix incorrect pour le niveau
              {
                printf("Choisissez votre niveau de difficulte\n\n");
                printf("1. Entre 1 et 100\n");
                printf("2. Entre 1 et 1000\n");
                printf("3. Entre 1 et 10000\n\n");
                printf("Inserez le chiffre correspondant au niveau souhaite : "); scanf("%ld", &niveau);
             
                //Comparaison de choix avec les niveaux existant
                if(niveau == 1)
                    bonChoix = 0;
                else if(niveau == 2)
                {   
                    max = 1000;
                    bonChoix = 0;
                }
                else if(niveau == 3)
                {
                    max = 10000;
                    bonChoix = 0;
                }
                else         
                    printf("Ton choix est incorrect, recommence\n\n");
              }
       
              printf("\n\n");
              printf("------------------------ Debut du jeux ----------------------");
              printf("\nVoyons en combiens de coups tu trouveras le bon nombre. Bonne chance!!\n\n");   
           
             //Génération du nombre mystere au hasard
             srand(time(NULL));
             nombreMystere = (rand() % (max - min + 1)) + min;

             while (nombreEntre != nombreMystere)
             {
                   
                   //On récupère le nombre que l'utilisateur essaye
                   printf("Veuillez inserez un nombre : "); scanf("%ld", &nombreEntre);
                   nombreDeCoups++;
             
                   //On compare se nombre avec le nombre mystère
                   if(nombreEntre > nombreMystere)
                   {
                   printf("Essaye encore!!! C'est plus petit\n\n");             
                   }
                   else if(nombreEntre < nombreMystere)
                   {
                  printf("Essaye encore!!! C'est plus grand\n\n");
                  }
                  else
                  {
                  printf("Bravo!! Tu as trouve le nombre mystere qui est %ld en %ld coups\n\n", nombreMystere, nombreDeCoups);
                  }       
              }
             
              nombreDeCoups = 0; //on remet le nombre de coups à 0
              bonChoix = 1; //pour afficher le menu si le joueur veut faire une autre partie
             
              printf("Veux-tu faire une autre partie? (1 pour oui, 0 pour non)"); scanf("%ld", &continuerPartie);
        } 
       
        system("PAUSE");   
        return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      13 avril 2006 à 21:55:21

      Salut,

      il est vrai que sur des petits programmes l'utilité des fonctions n'est pas flagrante, mais sur des gros projet
      on voit tout de suite l'utilité des fonctions.

      A+
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        13 avril 2006 à 21:59:20

        Le premier il est plus facile a entretenir
        et puis la lisibilité veut aussi que ce soit le premier meme si ca pique un peu les yeux (mais c'est si on vien de passer de longue heure a code :p )
        • Partager sur Facebook
        • Partager sur Twitter

        TP: plus ou moins

        × 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