Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème au niveau du TP

    30 décembre 2005 à 20:23:54

    Salut à tous !
    voilà j'ai voulu avancer plus profondement dans le TP en C, et je me suis planter royalement :D
    J'ai créé le nombre de coup, ca c'était simple. Mais celui du choix de difficultée est plus dur. Voici mon code:

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

    int main(int argc, char *argv[])
    {
        long nombre2 = 0, nombre1 = 0, nbr = 0, niveau;
        const long MAX = 100, MIN = 1;
       
      printf("==bienvenu dans le Plus ou Moins== \n\n\n");
      printf("==But du Jeu==\n");
      printf("Tu dois trouver le nombre mystere ! C'est pas trop dur ^^\n\n");
      printf("==Choississez une difficultée==\n");
      printf("1. Easy (1<100)\n 2. Normal (1<1 000)\n 3. Hard (1<10 000)\n\n");
      printf("Votre choix??? ");
      scanf("%d", &niveau);
      switch (niveau) {
             case 1:
             
      srand(time(NULL));
    nombre1 = (rand() % (MAX - MIN + 1)) + MIN;
     do
     {
         printf("Quel est le nombre mystere? ");
         scanf("%d", &nombre2);
         nbr++;
         
         if (nombre2 < nombre1)
         printf("le nombre est plus grand !\n");
         
         else if (nombre2 > nombre1)
         printf("le nombre est plus petit !\n");
         
         else
         printf("**BRAVO** Il t'as fallut %d tentative(s) \n", nbr);
         } while (nombre2 != nombre1);
         break;
         case 2:
              const long MAX = 1000, MIN = 1;
                srand(time(NULL));
    nombre1 = (rand() % (MAX - MIN + 1)) + MIN;
     do
     {
         printf("Quel est le nombre mystere? ");
         scanf("%d", &nombre2);
         nbr++;
         
         if (nombre2 < nombre1)
         printf("le nombre est plus grand !\n");
         
         else if (nombre2 > nombre1)
         printf("le nombre est plus petit !\n");
         
         else
         printf("**BRAVO** Il t'as fallut %d tentative(s) \n", nbr);
         } while (nombre2 != nombre1);
         break;
         case 3:
                        const long MAX = 10000, MIN = 1;
                srand(time(NULL));
    nombre1 = (rand() % (MAX - MIN + 1)) + MIN;
     do
     {
         printf("Quel est le nombre mystere? ");
         scanf("%d", &nombre2);
         nbr++;
         
         if (nombre2 < nombre1)
         printf("le nombre est plus grand !\n");
         
         else if (nombre2 > nombre1)
         printf("le nombre est plus petit !\n");
         
         else
         printf("**BRAVO** Il t'as fallut %d tentative(s) \n", nbr);
         } while (nombre2 != nombre1);
         break;
         default:
                 prinf("Arreuh Arreuh...");

                   
           
      system("PAUSE");     
      return 0;
    }


    Le problème: je ne sais pas changer le :
    srand(time(NULL));
    nombre1 = (rand() % (MAX - MIN + 1)) + MIN;

    au changement de difficulté :(
    J'ai fais un test (comme vous l'aurez constater dans mon code source) et il ne marche pas :-°

    Si vous pourriez m'aider un peu ;)
    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2005 à 20:31:39

      Une tite remarque : tu peux pas déclarer tes MAX et MIN comme des constantes si tu les modifie apres...

      Je te conseille ducoup de retirer le "const" devant...
      Déjà çà va calmer le bug :p Bon apres là je regarde et je te dis si je vois autre chose... ;)
      //declaration :
      long MAX = 100, MIN = 1;


      EDIT :
      Ducoup
      pour les case qui suivent :
      t'as pas à déclarer les variables puisqu'elles le sont au départ...

      suffit de mettre
      MAX = 1000, MIN = 1;
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        31 décembre 2005 à 8:35:16

        (ton code est mal indenté)
        Sinon voilà un exemple:
        printf("Niveau de difficult\x82?\n");
        printf("1: de 0 \x85 100 (pas de bonus)\n");
        printf("2: de 0 \x85 1 000 (bonus de 10 points)\n");
        printf("3: de 0 \x85 10 000 (bonus de 30 poins)\n");
        printf("Plus: de 0 \x85 100 000 (niveau diabolique, score multipli\x82 par 2)");
        scanf("%ld", &niveau);
        printf("\n\n");
        switch(niveau)
        {
          case 1:
            MAX = 100;
            break;
          case 2:
            MAX = 1000;
            break;
          case 3:
            MAX = 10000;
            break;
          default:
            MAX = 100000;
        }

        si tu regardes bien, je ne met pas le do ... while dans mon switch, je le met après, comme ça je l'écris qu'une fois (feignant!)
        • Partager sur Facebook
        • Partager sur Twitter
          31 décembre 2005 à 9:49:19

          Ze moi -> je remarque que Dev-C++ indente trés mal (enfin pour moi)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            31 décembre 2005 à 9:50:14

            Citation : tebonb

            Ze moi -> je remarque que Dev-C++ indente trés mal (enfin pour moi)


            J'indente moi-même sinon c'est vrai que c'est n'importe quoi
            • Partager sur Facebook
            • Partager sur Twitter
              31 décembre 2005 à 9:53:56

              Vi, pareil je fais ma propre indentation car dés fois il va te mettre un } à la suite des instructions, il décale les instructions de 2km, enfin du nimporte quoi comme tu dis
              • Partager sur Facebook
              • Partager sur Twitter

              Problème au niveau du TP

              × 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