Partage
  • Partager sur Facebook
  • Partager sur Twitter

1er jeu probleme

    6 mai 2006 à 16:08:30

    voila j'ai voulu mettre un systeme de difficulté sur mon jeu et ca plante je vois pas c'est ou.

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


    int main ( int argc, char** argv )
    {
    long continuerPartie=1;
      while (continuerPartie)
      {
        long nombreMystere = 0, nombreEntre = 0, compteur= 0, difficulte=0;
       
        printf("niveaux de difficulte");
        printf("1 = easy");
        printf("2 = means");
        printf("3 = Hard");
        scanf("%ld", &difficulte);
       
        if (difficulte=1)
        {
        const long MAX = 100, MIN = 1;
        }
        else if (difficulte=2)
        {
        const long MAX = 1000, MIN = 1;
        }
        else if (difficulte=3)
        {
        const long MAX = 10000, MIN = 1;
        }
       
       

        // 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
            compteur++;
            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 en %ld coups\n\n", compteur);
        } while (nombreEntre != nombreMystere);
      printf("voulez vous continuer la partie 1=oui 0=non\n");
      scanf("%ld", &continuerPartie);
    }
        system("PAUSE");
    }
    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2006 à 16:11:16

      Utilise la balise code pour ton code. Quelle erreur donne le compilateur?
      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2006 à 16:16:22

        Erreur ligne 37. en fait jsais pas trop '^^
        • Partager sur Facebook
        • Partager sur Twitter
          6 mai 2006 à 16:16:22

          tu mets un while au début qui serta rien ... enleve le.
          en fait si je vois mieux avec la coloration syntaxique...
          ca vient sans doute de la generation du nombre mystère.
          • Partager sur Facebook
          • Partager sur Twitter
            6 mai 2006 à 16:17:55

            Lis les règles de ce forum avant de poster : utilise la balise code et indente ton code.

            Sinon plusieurs erreurs:
            Il faut déclarer MAX et MIN au début du code sans le mot-clé const pour pouvoir en modifier la valeur.

            Au moment de choisir la difficulté, il faut juste modifier la valeur de MAX et MIN, il est inutile de les déclarer vu que leurs porté sera limité au bloc où elle sont déclaré. Tu met aussi un = au lieu de == .

            Il manque aussi un return 0 à la fin.

            Code corrigé :
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>


            int main(void)
            {
                long MAX = 0;
                long MIN = 0;
                long continuerPartie=1;

                while (continuerPartie)
                {
                    long nombreMystere = 0, nombreEntre = 0, compteur= 0, difficulte=0;

                    printf("niveaux de difficulte");
                    printf("1 = easy");
                    printf("2 = means");
                    printf("3 = Hard");
                    scanf("%ld", &difficulte);

                    if (difficulte == 1)
                    {
                        MAX = 100;
                        MIN = 1;
                    }
                    else if (difficulte == 2)
                    {
                        MAX = 1000;
                        MIN = 1;
                    }
                    else if (difficulte == 3)
                    {
                        MAX = 10000;
                        MIN = 1;
                    }



                    // 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
                        compteur++;
                        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 en %ld coups\n\n", compteur);
                    }
                    while (nombreEntre != nombreMystere);
                    printf("voulez vous continuer la partie 1=oui 0=non\n");
                    scanf("%ld", &continuerPartie);
                }
               
                return 0;
            }

            • Partager sur Facebook
            • Partager sur Twitter
              6 mai 2006 à 17:47:29

              <citation nom="Dothazard">voila j'ai voulu mettre un systeme de difficulté sur mon jeu et ca plante je vois pas c'est ou.

              Compiling: main.c
              main.c: In function `main_':
              main.c:19: warning: suggest parentheses around assignment used as truth value
              main.c:21: warning: unused variable `MAX'
              main.c:21: warning: unused variable `MIN'
              main.c:23: warning: suggest parentheses around assignment used as truth value
              main.c:25: warning: unused variable `MAX'
              main.c:25: warning: unused variable `MIN'
              main.c:27: warning: suggest parentheses around assignment used as truth value
              main.c:29: warning: unused variable `MAX'
              main.c:29: warning: unused variable `MIN'
              main.c:36: warning: passing arg 1 of `srand' as unsigned due to prototype
              main.c:37: error: `MAX' undeclared (first use in this function)
              main.c:37: error: (Each undeclared identifier is reported only once
              main.c:37: error: for each function it appears in.)
              main.c:37: error: `MIN' undeclared (first use in this function)
              Process terminated with status 1 (0 minutes, 0 seconds)
              4 errors, 10 warnings

              Ceci fonctionne ...

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

              int main ( int argc, char** argv )
              {
                 long continuerPartie = 1;

                 srand((unsigned)time(NULL));

                 while (continuerPartie)
                 {
                    long nombreMystere = 0, nombreEntre = 0, compteur = 0, difficulte = 0;
                    long MAX = 0, MIN = 0;

                    printf("Game level\n"
                           "1 = easy\n"
                           "2 = means\n"
                           "3 = Hard\n");
                    scanf("%ld", &difficulte);

                    switch (difficulte)
                    {
                    case 1:
                       MAX = 100;
                       MIN = 1;
                       break;
                    case 2:
                       MAX = 1000;
                       MIN = 1;
                       break;
                    case 3:
                       MAX = 10000;
                       MIN = 1;
                       break;
                    default:
                       printf("input error\n");
                    }

                    // Génération du nombre aléatoire

                    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                    printf ("The number to be found is between %ld and %ld included\n", MIN, MAX);

                    /* 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("Enter your guess ");
                       fflush (stdout);
                       scanf("%ld", &nombreEntre);
                       // On compare le nombre entré avec le nombre mystère
                       compteur++;
                       if (nombreMystere > nombreEntre)
                          printf("More !\n\n");
                       else if (nombreMystere < nombreEntre)
                          printf("Less !\n\n");
                       else
                          printf ("Well done. You've got it in %ld tr%s\n\n"
                                  , compteur, compteur > 1 ? "ies" : "y");
                    }
                    while (nombreEntre != nombreMystere);
                    printf("Do you want to play again ? 1=yes 0=no\n");
                    scanf("%ld", &continuerPartie);
                 }
              }


              Game level
              1 = easy
              2 = means
              3 = Hard
              2
              The number to be found is between 1 and 1000 included
              Enter your guess 500
              Less !

              Enter your guess 250
              More !

              Enter your guess 375
              Less !

              Enter your guess 310
              More !

              Enter your guess 340
              More !

              Enter your guess 355
              Less !

              Enter your guess 348
              Less !

              Enter your guess 344
              Less !

              Enter your guess 342
              More !

              Enter your guess 343
              Well done. You've got it in 10 tries

              Do you want to play again ? 1=yes 0=no

              ... mais les entrées sont fragiles. (tapes a<enter> pour voir...)

              Je recommande que toutes les entrées soient faites à base de fgets(). De nombreux exemples ont été publiés.
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !

              1er jeu probleme

              × 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