Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP: plus ou moins

c'est encore Aelthidin mais nouveau pseudo

Anonyme
    14 juin 2006 à 22:21:23

    Bonjour

    et oui j'ai encore besoin d'aide pour le nombre mystere car j'eesai de le faire le plus performant possible ;)

    Donc voila le code source auquel je suis arrivé grace a tout vos conseil (et des ajouts bizarre de ma part) seulement 2 choses bug encore:

    => Lorsque l'on decide de changer de niveaux de difficulté on ne peu plus reprendre le meme niveau

    =>Lorsque l'on rentre 2 a rejouer cela ne fini pas la boucle et pourtant c'est ce que j'ai mit :(

    Sans plus attendre voici le code:

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


    int main(int argc, char *argv[])
    {
    srand(time(NULL));
    long choixNiveau = 0;
    long rejouer = 0;
    long nombreEntree = 0;

    while (rejouer != 2)
    {

    system("cls");

    printf("\nBienvenue dans le jeu du nombre mytere !!!\n");
    printf("\nChoisissez un niveau de difficulte.\n\n");

    printf("1. Facile\n");
    printf("2. Moyen\n");
    printf("3. Difficile\n");

    printf("\nVotre choix?");
    scanf("%ld", &choixNiveau);

    system("cls");

    if (choixNiveau == 1)
        {
       while (rejouer != 3)
       {
        long compteur = 1;
        const long MAX = 10, MIN = 1;//nombre max 100 nombre min 1
        long nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;//tirage d'un nombre
        printf("\nTrouver le nombre mystere entre 1 et 10 !!!\n\n");

        do
        {
        printf("Tapez un nombre ! ");
        scanf("%ld", &nombreEntree);
           if (nombreEntree > nombreMystere)
             printf("c'est moins\n\n");
           else if (nombreEntree < nombreMystere)
             printf("c'est plus\n\n");
           else
             printf("Bravo vous avez trouve le nombre mystere en %ld coups!!!\n\n", compteur);
           compteur++;
        }while (nombreEntree != nombreMystere);

      printf("Rejouer?? (1=oui 2=non 3=changer de niveau)");
      scanf("%ld", &rejouer);
       }
      }
    else if (choixNiveau == 2)
        {
           while (rejouer != 3)
       {
        long compteur = 1;
        const long MAX = 100, MIN = 1;//nombre max 100 nombre min 1
        long nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;//tirage d'un nombre
        printf("\nTrouver le nombre mystere entre 1 et 100 !!!\n\n");

        do
        {
        printf("Tapez un nombre ! ");
        scanf("%ld", &nombreEntree);
           if (nombreEntree > nombreMystere)
             printf("c'est moins\n\n");
           else if (nombreEntree < nombreMystere)
             printf("c'est plus\n\n");
           else
             printf("Bravo vous avez trouve le nombre mystere en %ld coups!!!\n\n", compteur);
           compteur++;
        }while (nombreEntree != nombreMystere);
      printf("Rejouer?? (1=oui 2=non 3=changer de niveau)");
      scanf("%ld", &rejouer);
       }
      }

    else if (choixNiveau == 3)
       {
       while (rejouer != 3)
       {
        long compteur = 1;
        const long MAX = 1000, MIN = 1;//nombre max 100 nombre min 1
        long nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;//tirage d'un nombre
        printf("\nTrouver le nombre mystere entre 1 et 1000 !!!\n\n");

        do
        {
        printf("Tapez un nombre ! ");
        scanf("%ld", &nombreEntree);
           if (nombreEntree > nombreMystere)
             printf("c'est moins\n\n");
           else if (nombreEntree < nombreMystere)
             printf("c'est plus\n\n");
           else
             printf("Bravo vous avez trouve le nombre mystere en %ld coups !!!\n\n", compteur);
           compteur++;
        }while (nombreEntree != nombreMystere);
      printf("Rejouer?? (1=oui 2=non 3=changer de niveau)");
      scanf("%ld", &rejouer);
       }
       }
    else
       {
        printf("petit(e) comique va !!!");

    system("PAUSE");

       }
    }
    }


    Voila si quelqu'un trouve mon erreur ou ce qu'il faut changer merci de repondre.
    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2006 à 1:18:21

      vite vite tu as un "while" au debut sans le "do" pour ton rejouer
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 juin 2006 à 3:40:50

        J'ai essayer en faisant ça :

        do
        {

        system("cls");

        printf("\nBienvenue dans le jeu du nombre mytere !!!\n");


        et a la fin:

        }while (rejouer != 2);

        system("PAUSE");

        return 0;

        }


        Mais le resultat n'est pas plus brillant :(
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          15 juin 2006 à 8:36:49

          supprime toute tes fonctions scanf...
          et utilise a la place fgets .....

          comme ceci:
          fgets(var,1,stdin);
          fonction: variable dans laquel tu renregistre le resultat nombre de caractere a lire redirection vers l'entree standard
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            15 juin 2006 à 11:13:26

            Je crois que sa veut dire qu'il faut que je lise la suite du cours :lol:

            Bon merci d'avoir repondu mais je suis pas plus avancé :-°
            • 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