Partage
  • Partager sur Facebook
  • Partager sur Twitter

Amelioration tp plus ou moins

Besoin d'optimiser le script

    9 mars 2006 à 8:47:19

    Bonjour, je me suis mit au c il n'y a meme pas une semaine cependant je connais d'autres langages dont les structures sont assez similaires. En bon zéro j'ai voulu ameliorer ce tp en rajoutant la possibilité de choisir le niveau, mais le probleme c'est que pour que mon script fonctionne j'ai du faire cette attrocitée,c'est a dire copier 3fois le script dans mes if, on doit pouvoir faire mieux! C'est ce que je vous demande gentiment!
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int main ( int argc‚ char** argv )
    {
        long difficulte;
       
        printf("Veuillez choisir le niveau de difficultee \n\n");
        printf("1. FACILE (Nombre entre 1 et 100 \n");
        printf("2. MOYEN  (Nombre entre 1 et 500 \n");
        printf("3. HARD   (Nombre entre 1 et 1000 \n");
        printf("Difficultee choisie? \n");
       
        scanf("%ld"‚&difficulte);
        if (difficulte == 1)
           {
           printf("Vous avez choisi le niveau facile \n");
           const long MAX = 100‚ MIN = 1;
               long nombreMystere = 0‚ nombreEntre = 0;

        // 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("%ld"‚ &nombreEntre);

            // 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 mystere !!!\n\n");
        } while (nombreEntre != nombreMystere);
           }
           
        else if (difficulte == 2)
           {
           printf("Vous avez choisi le niveau moyen \n");
           const long MAX = 500‚ MIN = 1;
               long nombreMystere = 0‚ nombreEntre = 0;

        // 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 a trouver? ");
            scanf("%ld"‚ &nombreEntre);

            // 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 ("Pas mal t'as trouve le nombre !!!\n\n");
        } while (nombreEntre != nombreMystere);
           }   
       
        else if (difficulte == 3)
           {
           printf("T'as choisi le niveau hard! Bonne chance... \n");
           const long MAX = 1000‚ MIN = 1;
               long nombreMystere = 0‚ nombreEntre = 0;

        // 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("%ld"‚ &nombreEntre);

            // 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 mystere !!!\n\n");
        } while (nombreEntre != nombreMystere);
           }       
     


        system("PAUSE");
    }
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2006 à 9:17:03

      genere ton nombre mystere des que le niveau est donné. Ensuite il ne te reste plus qu'a reprendre le script copier en une seule fois.
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2006 à 10:17:52

        salut,
        tu pourrai aussi utiliser un switch (tres pratique pour les menu en mode console )

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

        int main ( int argc‚ char** argv )
        {
            long difficulte;
            long nombreMystere = 0‚ nombreEntre = 0;
           
            printf("Veuillez choisir le niveau de difficultee \n\n");
            printf("1. FACILE (Nombre entre 1 et 100 \n");
            printf("2. MOYEN  (Nombre entre 1 et 500 \n");
            printf("3. HARD   (Nombre entre 1 et 1000 \n");
            printf("Difficultee choisie? \n");
           
            scanf("%ld"‚&difficulte);

            switch(difficulte)
            {
                case 1:
                   printf("Vous avez choisi le niveau facile \n");
                   const long MAX = 100‚ MIN = 1;
                   break;
                case 2:
                   printf("Vous avez choisi le niveau moyen \n");
                   const long MAX = 500‚ MIN = 1;
                   break;
                case 3:
                   printf("Vous avez choisi le niveau difficile \n");
                   const long MAX = 1000‚ MIN = 1;
                   break;
                default:
                   printf("Vous avez entre un mauvais numero \n");
                   break;
            }
            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("%ld"‚ &nombreEntre);

                // 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 mystere !!!\n\n");
            } while (nombreEntre != nombreMystere);
               }

        tu dois aussi rajouter une boucle autour du switch pour qu'il boucle si l'utilisateur rentre un monbre different de 1 2 ou 3.
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2006 à 20:52:48

          Ouais enfin juste un truc Lord Boo, si j'étais toi je déclarerai MAX et MIN au tout débu du code et je modifierai leur valeur après. Bien entendu, il faut enlever le const mais c'est une bnne habitude de déclarer ses variables en début de main.
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2006 à 23:04:20

            Pour les amelioration de niveau

            rajouter des niveau
            0=>100
            0=>200
            0=>500
            0=>1000
            0=>2000
            0=>5000
            0=>10000

            ensuite pour ton menu le passez en switch
            pour les niveau placer les valeurs dans des variables plutot que recopier le scripte

            autre possibilité

            modes 2 joueurs(1 mode ou l'ordi choisit le nombre ne fontion de la plage de nivea 1 mode ou c'est l'adversaire qui choisit le nombre)
            possibilité de rejouer

            • Partager sur Facebook
            • Partager sur Twitter

            Amelioration 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