Partage
  • Partager sur Facebook
  • Partager sur Twitter

le nombre mystere (TP 1)

je comprend pas pourquoi ca marche pas

    13 janvier 2006 à 10:06:00

    Bonjour,

    Comme le demande le 1er TP du tutorial de m@teo, j'ai coder le petit jeu en voulant inclure un systeme de niveau (comme le conseil m@teo^^)
    Seulement voila, mon code marche, mais pas comme je veux..


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


    int main ( int argc, char** argv )
    {
        const long MIN=1;
       long nombreMystere1 = 0, nombre =0, niveau=0, nombreMax1=100, nombreMax2= 1000, nombreMax3= 10000;
       long nombreMystere2= 0, nombreMystere3 = 0;
      srand(time(NULL));
    nombreMystere1 = (rand() % (nombreMax1 - MIN + 1)) + MIN;
    nombreMystere2 = (rand()% (nombreMax2 - MIN + 1)) + MIN;
    nombreMystere3= (rand() % (nombreMax3 - MIN +1)) + MIN;

    /*J'ai changer la constante MAX=100 en variable nombreMax1,2 et 3. */

    printf ("Salut noble compagnie, un petit jeu vous tente?\n\n");
    printf ("Aller.. devinez le nombre mystere\n");
    printf ("1- 1/100\n", &nombreMax1);
    printf ("2- 1/1000\n", &nombreMax2);
    printf ("3- 1/10 000\n", nombreMax3);
    scanf  ("%d", &niveau);

    switch (niveau)

    /* Alors le plan du code: le choix du niveau de difficulté avec des swtichs
     Des boucles en do...while pour faire au moins une boucle a chaque niveau
     Et des conditions if .. else if et else pour les conditions ^^ */

     
    {
           case (1): //niveau 1

         do
    {
          printf ("\n\nQuel est le nombre mystere? ");
          scanf ("%d", &nombre);
     
    if (nombre == nombreMystere1)
          printf ("Jackpot!!\n\n\n");
    else if ( nombre < nombreMystere1)
          printf ("Na, c'est pas ca.. plus haut\n\n");
    else if ( nombre > nombreMystere1)
          printf("Na, c'est pas ca.. plus bas\n\n");
    else if ( nombre > 100 || nombre < 0)
          printf ("seulement des chiffres entre 1 et 100 svp!!\n");
    else
          printf ("plouf dans l'eau");
         
    } while (nombre != nombreMystere1);
                break; // fin du lvl 1
               
    /* MAIS POURQUOI IL N'Y A QUE LES 3 PREMIERES CONDITIONS QUI MARCHE ???? quand je rentre un truc qui va pas
    (par exemple un "plouf&quot;) il me dit que c'est plus bas et il continu la boucle a l'infini
    Je comprend pas pourquoi.. (a noté que j'ai tester le while a la place du do...while)*/
               
         
          case (2):// niveau 2
     
          printf ("Bienvenue au niveau 2\n");
          printf ("on commence? Aller, entre 1 et 1000 \n\n");   
         
           do
    {           
          printf ("Quel est le nombre mystere?? ");
          scanf  ("%d", &nombre);
    if (nombre == nombreMystere2)
          printf ("Jackpot !! T'as droit a un susucre :) \n\n");
    else if (nombre < nombreMystere2)
         printf ("C'est plus haut!!\n\n");
    else if ( nombre > nombreMystere2 )
        printf ("C'est plus bas!!\n\n");
    else
        printf ("ca marche pas ca.. entre 1 et 1000 c'est tout \n\n");
    }while (nombre !=nombreMystere2);

               break; // fin du lvl2
    /* Meme chose que pour le lvl 1.. J'arrive pas a comprendre */

              case (3)://niveau 3

          printf ("\nBienvenue au niveau 3\n");
          printf ("on commence? Aller, entre 1 et 10 000 \n\n");
          printf ("Quel est le nombre mystere?? \n\n");
          scanf  ("%d", &nombre);
         
          do
    {     
         
    if      (nombre == nombreMystere3)
               printf ("Jackpot !! T'as droit a un susucre :) \n\n");
    else if (nombre < nombreMystere3)
               printf ("C'est plus haut!!\n\n");
    else if (nombre > nombreMystere3)
               printf ("C'est plus bas!!\n\n");   
    else
               printf ("veuillez repondre par des chiffres ou des nombres compris entre 1 et 10 000 svp\n\n");
        }while (nombre !=nombreMystere3);
       
         break; //fin du lvl 3
         
    /* Alors là pour le lvl 3, c'est encore mieux, ya rien qui marche comme il faut */     
                 
               default:
                       
           printf ("desoler, il n'y a que 3 niveau, choisis deja parmis ces trois la\n\n");
    }

    /* Le switch marche tres bien.. pas de soucis de ce coté là (enfin un truc qui marche) */

      system("PAUSE");     
      return 0;
     
    }


    Je crois que c'est le code de debut avec les variables que ca peche, mais je vois pas où je me suis gourré. Quelqu'un peu-til m'expliquer où sont les erreurs?
    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2006 à 12:12:41

      niveau 1 et 2, si tu rentre du texte il foire, c'est normale.
      Par apres tu verra des methode pour tester le texte entre, mais pour le moment, limite toi a dire que l'utilisateur est "inteligent"

      Pour le niveau 3 tu a mis ton scanf en dehors de la boucle do ;)
      • Partager sur Facebook
      • Partager sur Twitter
        13 janvier 2006 à 12:28:06

        dsl de le dire comma ça mais ton code est pouris. j'ose même pas le lire :
        -pas d'acolades dans les if , else if etc...
        -printf ("1- 1/100\n", &nombreMax1);
        printf ("2- 1/1000\n", &nombreMax2);
        printf ("3- 1/10 000\n", nombreMax3);
        c'est quoi ces "&nombreMax1" ?? ca correspond à rien.
        -case (1)
        on met pas de parenthèses on fait "case 1:"
        -enfin ton code est hyper mal identé

        voila...
        • Partager sur Facebook
        • Partager sur Twitter
          13 janvier 2006 à 12:30:56

          Lol donc mon code du lvl 1 et 2 est bien fait.. (YES!!! :D )
          Pour le lvl3, jsuis trop con -_-

          Mais je voudrais savoir si mon code au debut

          const long MIN=1;
             long nombreMystere1 = 0, nombre =0, niveau=0, nombreMax1=100, nombreMax2= 1000, nombreMax3= 10000;
             long nombreMystere2= 0, nombreMystere3 = 0;
            srand(time(NULL));
          nombreMystere1 = (rand() % (nombreMax1 - MIN + 1)) + MIN;
          nombreMystere2 = (rand()% (nombreMax2 - MIN + 1)) + MIN;
          nombreMystere3= (rand() % (nombreMax3 - MIN +1)) + MIN;


          Est bien foutu ou pas ? J'ai pas tres bien compris le code original alors je tatonne un peu..


          Edit: (merde j'ai pas lu la 2eme reponse)
          Pour repondre les accolades entre les if..else etc.. c'est fait expres, j'aime pas mettre des accolade alors qu'on peu tres bien les enlever (je trouve que c'est plus propre sans les accolades pour ca)
          Pour les &nombremax1,2 et 3:
          le code originale etait

          long nombreMystere = 0, nombreEntre = 0;
              const long MAX = 100, MIN = 1;
              srand(time(NULL));
              nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

          Mais comme j'avais prit la decision de faire 3 niveau de difficulté, la constante MAX=100 n''etait plus valable.. Comme je ne savais pas trop comment y remedier j'ai mis nombreMax1 pour le lvl 1, nombreMax2 pour le lvl2 et nombreMax3 pour le lvl 3.

          Mais je ne suis absolument pas sur que ca soit bon ^^ en fait, j'en doute fortement :p

          Pour le case (1) je n'ai fait que recopier le code de M@teo ^^ pi ca marche aussi bien, mais merci pour l'info :)

          Et pour l'indentation de mon code.. je vois pas trop comment faire mieux ^^ je tatonne comme j'ai dis, c'est mon premier reel code que je fais alors bon :p
          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2006 à 1:42:01

            Personne peu me dire si mon code debut est bon? :(

            On m'a dit qu'il etait vraiment mal indenté, mais je vois pas pourquoi, je le trouve tres lisible..

            Qu'aurais-je pu ameliorer?
            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2006 à 11:15:09

              Tu peux rajouter ça juste après le scanf :euh: :
              getchar();
              if((char)nombre==0)
              printf("Pas de lettre\n");

              Heu je connais pas trop la commande pour interdire les lettres mais ça marche ça :p
              • Partager sur Facebook
              • Partager sur Twitter
                14 janvier 2006 à 15:06:09

                voilà...ton code c'est l'enfer mais maintenant il est tout beau tout propre et y marche :p

                tien cadeau ^^

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


                int main ( int argc, char* argv )
                {
                   long nombre = 0, niveau = 0,MIN = 1,nombreMystere = 0,nombreMax1 = 100,nombreMax2 = 1000;
                   long nombreMax3 = 10000,nombreMystere1 = 0;
                   long nombreMystere2 = 0,nombreMystere3 = 0;
                   srand(time(NULL));
                   nombreMystere1 = (rand() % (nombreMax1 - MIN + 1)) + MIN;
                   nombreMystere2 = (rand() % (nombreMax2 - MIN + 1)) + MIN;
                   nombreMystere3 = (rand() % (nombreMax3 - MIN + 1)) + MIN;
                   

                /*J'ai changer la constante MAX=100 en variable nombreMax1,2 et 3. */

                    printf ("Salut noble compagnie, un petit jeu vous tente?\n\n");
                    printf ("Aller.. devinez le nombre mystere\n");
                    printf ("1- 1/100\n");
                    printf ("2- 1/1000\n");
                    printf ("3- 1/10 000\n");
                    scanf  ("%d", &niveau);

                           switch (niveau)

                /* Alors le plan du code: le choix du niveau de difficulté avec des swtichs
                 Des boucles en do...while pour faire au moins une boucle a chaque niveau
                 Et des conditions if .. else if et else pour les conditions ^^ */

                 
                {
                       case 1: //niveau 1
                 
                 
                     do
                {
                      printf ("\n\nQuel est le nombre mystere? ");
                      scanf ("%d", &nombre);
                 
                            if (nombre == nombreMystere1)
                            {
                               printf ("Jackpot!!\n\n\n");
                               }
                               
                                      else if ( nombre < nombreMystere1)
                                      {
                                           printf ("Na, c'est pas ca.. plus haut\n\n");
                                           }
                                           
                                                  else if ( nombre > nombreMystere1)
                                                  {
                                                       printf("Na, c'est pas ca.. plus bas\n\n");
                                                       }
                                                       
                                                                         else
                                                                         {
                                                                             printf ("plouf dans l'eau");
                                                                             }
                     
                } while (nombre != nombreMystere1);
                            break; // fin du lvl 1
                           
                           
                /* MAIS POURQUOI IL N'Y A QUE LES 3 PREMIERES CONDITIONS QUI MARCHE ???? quand je rentre un truc qui va pas
                (par exemple un "plouf";) il me dit que c'est plus bas et il continu la boucle a l'infini
                Je comprend pas pourquoi.. (a noté que j'ai tester le while a la place du do...while)*/
                           
                     
                      case 2:// niveau 2
                 
                      printf ("Bienvenue au niveau 2\n");
                      printf ("on commence? Aller, entre 1 et 1000 \n\n");   
                     
                       do
                {           
                      printf("Quel est le nombre mystere?? ");
                      scanf("%d", &nombre);
                     
                              if(nombre == nombreMystere2)
                              {
                                    printf ("Jackpot !! T'as droit a un susucre :) \n\n");
                                    }
                     
                                                  else if(nombre < nombreMystere2)
                                                  {
                                                        printf ("C'est plus haut!!\n\n");
                                                        }
                                                                       
                                                               else if(nombre > nombreMystere2)
                                                               {
                                                                  printf ("C'est plus bas!!\n\n");
                                                                  }
                                                                                   
                                                                       else
                                                                       {
                                                                              printf ("ca marche pas ca.. entre 1 et 1000 c'est tout \n\n");
                                                                              }
                                                                                             
                                                                  }while (nombre !=nombreMystere2);

                        break; // fin du lvl2
                           
                           
                /* Meme chose que pour le lvl 1.. J'arrive pas a comprendre */

                          case 3://niveau 3
                         
                         
                      printf ("\nBienvenue au niveau 3\n");
                      printf ("on commence? Aller, entre 1 et 10 000 \n\n");
                     
                      do
                {     
                           printf ("Quel est le nombre mystere?? \n\n");
                           scanf  ("%d", &nombre);
                             if(nombre == nombreMystere3)
                             {
                                       printf ("Jackpot !! T'as droit a un susucre :) \n\n");
                                       }
                                            else if (nombre < nombreMystere3)
                                            {
                                                 printf ("C'est plus haut!!\n\n");
                                                 }                   
                                                            else if (nombre > nombreMystere3)
                                                            {
                                                                 printf ("C'est plus bas!!\n\n");   
                                                                 }
                            else
                                {
                                     printf ("veuillez repondre par des chiffres ou des nombres compris entre 1 et 10 000 svp\n\n");
                                     }
                               
                    }while (nombre !=nombreMystere3);
                   
                     break; //fin du lvl 3   
                             
                           default:
                       printf ("desoler, il n'y a que 3 niveau, choisis deja parmis ces trois la\n\n");
                }

                /* Le switch marche tres bien.. pas de soucis de ce coté là (enfin un truc qui marche) */

                  system("PAUSE");     
                  return 0;
                 
                }





                j'espère t'avoir aider :D
                • Partager sur Facebook
                • Partager sur Twitter
                  14 janvier 2006 à 15:24:40

                  Pourquoi tu créer un variable nombreMAx par niveau?
                  Autant en créer une que tu modifie suivant la difficulté choisis :-°
                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 janvier 2006 à 15:36:50

                    oulà max 2000 ton code est propre? Perso moi j'aime pas ton indentation
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 janvier 2006 à 15:51:56

                      oui mais bon...c'est mieux que l'autre non???

                      @ ekodant: j'ai essayé mais il y a 1 problème pas trop compréhensible...

                      EDIT: j'ai édité le code...il est mieux je pense...mais sous Dev-C++ ca rend bien au moins :p il était trop indenté avant je pense :D
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 janvier 2006 à 16:04:12

                        Je trouve mieux compréhensible l'autre. Parce que dans le tient on s'y retrouve pas, on sait pas quel bloc appartiant à quel if ...

                        Ton identation :


                        if (......) {
                              else if(.....) {
                                     else if(.....) {
                                     }
                              }
                        }


                        Moi je préfère un truc du style


                            if (.....) {
                            }
                            else if (.....) {
                            }
                            else if (.....) {
                            }


                        Maintenant si tu préfères ton style, c'est ton choix.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 janvier 2006 à 16:20:53

                          bah c'est ce que j'ai fait...

                          if(...)
                          {
                          ...
                          }
                          else if(...)
                          {
                          ...
                          }
                          else
                          {
                          ...
                          }
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 janvier 2006 à 22:47:02

                            Citation : ekodant

                            Pourquoi tu créer un variable nombreMAx par niveau?
                            Autant en créer une que tu modifie suivant la difficulté choisis :-°



                            C'est bien ce que je voudrais bien arriver a faire, mais je vois pas comment :$ Donc dans le doute, j'ai fait une variable par lvl.. Mais ce proceder ne me va pas, c'est pas pratique si je veux faire 40 lvl de difficulté, je me vois mal faire 40 variables :/

                            Pour ce qui est du code.. je prefere mon indentation ^^ je ne m'enquiquine pas avec les accolades, mis a part peu etre faire un décalé pour les printf et autres, je vois pas ce que je peu ameliorer.. Mais bon, c'est peu etre l'entetement du newbies qui parle là :p
                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 janvier 2006 à 23:30:15

                              moi je préfére :


                              if (variable1 = 0)
                              {
                                   cout << " la variable est égale a zero \n";
                                   cout << " Combien voulez-vous rajouter a cet variable (tapez 1 ou 2 svp)";

                                   if (variable2 = 1)
                                   {
                                         variable1++;
                                         cout <<"La variable est maintenan egale a" << variable1 ;
                                   }
                                   
                                   else if (variable2 == 2)
                                   {
                                         variable1 = variable1 + variabble2;
                                         cout <<" la variable vaut maintenan" << variable1;
                                   }
                              }


                              else if (...)
                              {
                                      (....)
                              }
                                   
                              • Partager sur Facebook
                              • Partager sur Twitter
                                14 janvier 2006 à 23:38:29

                                C'est pas du C++ ca par hasard? Mais c'est vrai que c'est bien lisible comme ca :)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 janvier 2006 à 23:33:08

                                  Coucou me revoilou ^^
                                  J'ai retaper entierement mon code de tete (pour voir si j'avais bien compris le tuto) Excusez s'il n'y a pas de commentaire ^^ j'ai taper ca d'une traite :p

                                  Seulement voila :( mon code marche, mais le nombre mystere reste irrémediablement a 0 peu importe le niveau de difficulté.. Je vois pas où ca peche..


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

                                  int main(int argc, char *argv[])
                                  {
                                     long niveau=0, nombreMystere=0, compteur=0, nombreEntre=0;
                                     long min=0, max=0;
                                    srand(time(NULL));
                                  nombreMystere = (rand() % (max - min + 1)) + min;
                                   
                                  printf ("****** LE NOMBRE MYSTERE !! ****** \n");
                                  printf ("\nBienvenue dans le jeu du mystere..\n\n");
                                  printf ("La regle est simple, trouvez le nombre mystere aleatoire\n");
                                  printf ("Il y a biensur, plusieurs niveau.. Veuillez choisir\n\n");
                                  printf ("Niveau 1: Le nombre se situe entre 1 et 100\n");
                                  printf ("Niveau 2: Le nombre se situe entre 1 et 1000\n");
                                  printf ("Niveau 3: Le nombre se situe entre 1 et 10 000\n\n");
                                  printf ("Apres c'est pas drole, donc il n'y a que 3 niveau.. Aller, faites votre choix!! \n");
                                  scanf ("%ld", &niveau);
                                   
                                    switch (niveau){
                                           case 1:
                                                max = 100;
                                                min=1;
                                                printf ("** Niveau 1** \n");
                                           do {
                                             printf ("Quel est le nombre Mystere??");
                                             scanf ("%ld", &nombreEntre);
                                                   if (nombreEntre > nombreMystere){
                                                      if (nombreEntre > 100){
                                                         printf ("Seulement entre 1 et 100, svp \n\n");
                                                         }
                                                   printf ("Nan, c'est plus bas, essaye encore\n\n");
                                                      }
                                                   else if (nombreEntre < nombreMystere){
                                                        if (nombreEntre < 1){
                                                           printf ("Entre 1 et 100 svp..\n\n");
                                                           }
                                                   printf ("Na, c'est plus haut\n\n");
                                                   }
                                                   else {
                                                   printf ("Jackpot !! Vous avez trouvez en %ld coups!!, c'est pas trop mal\n\n", compteur);
                                                   }
                                             }while (compteur ++, nombreEntre !=nombreMystere);
                                                    break;

                                            case  2:
                                                  max = 1000;
                                                  min=1;
                                                  printf ("***Niveau 2***");
                                            do {
                                             printf ("Quel est le nombre Mystere?? ");
                                             scanf ("%ld", &nombreEntre);
                                                   if (nombreEntre > nombreMystere){
                                                      if (nombreEntre > 1000){
                                                      printf ("Seulement entre 1 et 1000, svp");
                                                         }
                                                   printf ("Na, c'est plus bas, try again");
                                                   }
                                                   else if (nombreEntre < nombreMystere){
                                                        if (nombreEntre < 1){
                                                        printf ("Entre 1 et 1000 !! en dessous de 1 c'est pas bon\n");
                                                        }
                                                   printf ("Na, c'est plus haut !! essaye encore\n");
                                                   }
                                                   else {
                                                   printf ("Jackpot!! T'as reussi en %ld coups!!\n", compteur);
                                                   }
                                             }while (compteur ++, nombreEntre != nombreMystere);
                                                          break;
                                             
                                             case 3:
                                                  max = 10000;
                                                  min=1;
                                                  printf ("***Niveau 3***");
                                                 
                                             do{
                                             printf ("Quel est le nombre Mystere??");
                                             scanf ("%ld", nombreEntre);
                                                   if (nombreEntre > nombreMystere){
                                                      if (nombreEntre > 10000){
                                                      printf ("Seulement entre 1 et 10 000, svp");
                                                      }
                                                   printf ("Na, c'est plus bas.. Tu y arriveras jeune padawan");
                                                   }
                                                   else if (nombreEntre < nombreMystere){
                                                        if (nombreEntre < 1){
                                                        printf ("Seulement entre 1 et 10 000 svp");
                                                        }
                                                   printf ("Na, c'est plus haut.. essaye encore");
                                                   }
                                                   else {
                                                        printf ("Jackpot!! Tu as reussis en %ld coup!! c'est pas mal", compteur);
                                                        }
                                                        }while (compteur ++, nombreEntre != nombreMystere);
                                                               break;
                                                   
                                             default:
                                                     printf ("Il n'y a pas d'autre niveau.. veuillez choisir l'un des 3 proposé\n\n");
                                                     }
                                             
                                             
                                             
                                    system("PAUSE");     
                                    return 0;
                                  }
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 janvier 2006 à 1:45:39

                                    C'est parce que tu initialise tes variables max et min à 0, puis tu génère le nombre et après tu mets les bonnes valeurs aux variables max et min selon le niveau.

                                    Il faudrait initialiser les variables, leur affecter une valeur selon le niveau et puis générer le nombre mystère.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      27 janvier 2006 à 3:43:00

                                      heuu concretement ca donnerais:

                                      long max, min;

                                      Puis dans mes boucles selon les niveau mettre comme j'ai fait:

                                      max=100 (ou 1000 ou 10 000);
                                      min = 1;

                                      et voila?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        27 janvier 2006 à 3:51:04

                                        Tu les déclare puis tu leur attribut une valeur et ensuite tu mets la fonction sran().

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

                                        int main(int argc, char *argv[])
                                        {
                                           long niveau=0, nombreMystere=0, compteur=0, nombreEntre=0;
                                           long min=0, max=0;
                                         
                                         
                                        printf ("****** LE NOMBRE MYSTERE !! ****** \n");
                                        printf ("\nBienvenue dans le jeu du mystere..\n\n");
                                        printf ("La regle est simple, trouvez le nombre mystere aleatoire\n");
                                        printf ("Il y a biensur, plusieurs niveau.. Veuillez choisir\n\n");
                                        printf ("Niveau 1: Le nombre se situe entre 1 et 100\n");
                                        printf ("Niveau 2: Le nombre se situe entre 1 et 1000\n");
                                        printf ("Niveau 3: Le nombre se situe entre 1 et 10 000\n\n");
                                        printf ("Apres c'est pas drole, donc il n'y a que 3 niveau.. Aller, faites votre choix!! \n");
                                        scanf ("%ld", &niveau);
                                         
                                          switch (niveau){
                                                 case 1:
                                                      max = 100;
                                                      min=1;
                                        srand(time(NULL));
                                        nombreMystere = (rand() % (max - min + 1)) + min;
                                                      printf ("** Niveau 1** \n");
                                                 do {
                                                   printf ("Quel est le nombre Mystere??");
                                                   scanf ("%ld", &nombreEntre);
                                                         if (nombreEntre > nombreMystere){
                                                            if (nombreEntre > 100){
                                                               printf ("Seulement entre 1 et 100, svp \n\n");
                                                               }
                                                         printf ("Nan, c'est plus bas, essaye encore\n\n");
                                                            }
                                                         else if (nombreEntre < nombreMystere){
                                                              if (nombreEntre < 1){
                                                                 printf ("Entre 1 et 100 svp..\n\n");
                                                                 }
                                                         printf ("Na, c'est plus haut\n\n");
                                                         }
                                                         else {
                                                         printf ("Jackpot !! Vous avez trouvez en %ld coups!!, c'est pas trop mal\n\n", compteur);
                                                         }
                                                   }while (compteur ++, nombreEntre !=nombreMystere);
                                                          break;

                                                  case  2:
                                                        max = 1000;
                                                        min=1;
                                        srand(time(NULL));
                                        nombreMystere = (rand() % (max - min + 1)) + min;
                                                        printf ("***Niveau 2***");
                                                  do {
                                                   printf ("Quel est le nombre Mystere?? ");
                                                   scanf ("%ld", &nombreEntre);
                                                         if (nombreEntre > nombreMystere){
                                                            if (nombreEntre > 1000){
                                                            printf ("Seulement entre 1 et 1000, svp");
                                                               }
                                                         printf ("Na, c'est plus bas, try again");
                                                         }
                                                         else if (nombreEntre < nombreMystere){
                                                              if (nombreEntre < 1){
                                                              printf ("Entre 1 et 1000 !! en dessous de 1 c'est pas bon\n");
                                                              }
                                                         printf ("Na, c'est plus haut !! essaye encore\n");
                                                         }
                                                         else {
                                                         printf ("Jackpot!! T'as reussi en %ld coups!!\n", compteur);
                                                         }
                                                   }while (compteur ++, nombreEntre != nombreMystere);
                                                                break;
                                                   
                                                   case 3:
                                                        max = 10000;
                                                        min=1;
                                        srand(time(NULL));
                                        nombreMystere = (rand() % (max - min + 1)) + min;
                                                        printf ("***Niveau 3***");
                                                       
                                                   do{
                                                   printf ("Quel est le nombre Mystere??");
                                                   scanf ("%ld", nombreEntre);
                                                         if (nombreEntre > nombreMystere){
                                                            if (nombreEntre > 10000){
                                                            printf ("Seulement entre 1 et 10 000, svp");
                                                            }
                                                         printf ("Na, c'est plus bas.. Tu y arriveras jeune padawan");
                                                         }
                                                         else if (nombreEntre < nombreMystere){
                                                              if (nombreEntre < 1){
                                                              printf ("Seulement entre 1 et 10 000 svp");
                                                              }
                                                         printf ("Na, c'est plus haut.. essaye encore");
                                                         }
                                                         else {
                                                              printf ("Jackpot!! Tu as reussis en %ld coup!! c'est pas mal", compteur);
                                                              }
                                                              }while (compteur ++, nombreEntre != nombreMystere);
                                                                     break;
                                                         
                                                   default:
                                                           printf ("Il n'y a pas d'autre niveau.. veuillez choisir l'un des 3 proposé\n\n");
                                                           }
                                                   
                                                   
                                                   
                                          system("PAUSE");     
                                          return 0;
                                        }
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          27 janvier 2006 à 4:15:30

                                          Ha d'accord..

                                          Faut que je remette la formule de generation de nombre aleatoire dans chaque niveau.. oki..

                                          (ce qui est logique >_<)

                                          Merci beaucoup :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            27 janvier 2006 à 11:39:07

                                            Bonjor à tous,

                                            je viens de me mettre à la programmation en C/C++. J'en suis arrivé au TP. Je n'ai pas particulièrement de problème (il m'a quand même fallu 6 heures pour le faire en entier ...)

                                            Bien, au programme original que le TP demandait, j'y ai ajouté:
                                            - un menu de sélection sur 4 niveaux de difficulté
                                            - une option de menu pour quitter directement avec demande de confirmation
                                            - un menu de sélection du nombre de joueur (1 ou 2)
                                            - un possibilité de refaire une partie une fois que le jeu s'est terminé
                                            - mon système 2 joueurs se fait sur la base de la comparaison entre le nombre d'essai de chaque joueur (chacun ayant son nombre mystère aléatoire). Donc les 2 jouent chacun leur tour et le plus rapide gagne (avec message à la clef)

                                            à mon niveau de connaissance, avez vous des idées d'amélioration du programme?
                                            Sinon pour les autres voici des idées supplémentaires qu'il est possible de faire.

                                            Salut à tous !

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            le nombre mystere (TP 1)

                                            × 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