Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Modulation

Pourriez-vous m'aider ?

Sujet résolu
    7 janvier 2006 à 22:19:02

    Voila, j'ai voulu me pratiquer en C et je me suis dit, "Pourquoi ne pas diviser le Jeu des nombres, celui du Tuto sur le C, en module :) "

    Mais voilà, je suis sûr de bien avoir lu tout le tutoriel, mais le débuggeur me dit qu'il y a un problème, et je ne le trouve pas :(

    Alors si vous pouvez m'Aider à régler le problème, sa serait vraiment bien, car je veut bien comprendre

    Voici le fichier, compressé :
    http://rapidshare.de/files/10606231/Le_jeu_des_nombres.zip.html

    Vous n'avez qu'à le télécharger et à ouvrir le projet nommé "Le jeu des chiffres"

    Merci d'avance à vous
    • Partager sur Facebook
    • Partager sur Twitter
    Character Artist @ Framestore Montreal. http://felixcharacters.com
      7 janvier 2006 à 22:22:29

      Mets plutôt le code ici, c'est moins contraignant de lire un texte que de dl un fichier >_>
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2006 à 22:53:31

        main.c


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

        int main(int argc, char *argv[])
        {

        //ouverture du jeu
        printf("Le jeu du nombre mystère\n\n");
        printf("Trouve le nombre mystère\n\n");
        printf("Quel est le nombre? \n");
        scanf("%ld", &nombreJoueur);

          system("PAUSE");
          return 0;
         
        }


        random.c


        // code du nombre au hasard

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

        // Le jeu (la boucle)
        long laBoucle ()
        {
             while (nombreJoueur != nombreMystere)
             {
                   
                   printf("Quel est le nombre? \n");
                   scanf("%ld", &nombreJoueur);
             }
        }


        random.h


        long laBoucle ();
        • Partager sur Facebook
        • Partager sur Twitter
        Character Artist @ Framestore Montreal. http://felixcharacters.com
          7 janvier 2006 à 23:10:15

          Ton programme n'exècute que les 3 printf(), le scanf(), et s'arrete, et pour cause, à aucun moment dans ta fonction main() tu n'appelles la fonction laBoucle() >> donc remplace le scanf(...); par laBoucle();

          D'autre part, dans ton random.c, il faut que tu inclues le random.h, sinon le compilateur n'a aucun moyen de faire le lien avec ton main.c et la définition de ta fonction laBoucle().

          Passons à l'intérieur de ta fonction laBoucle(), pourquoi avoir mis comme valeur de retour long alors qu'elle ne renvoie rien du tout, ça n'empêchera pas la compilation, mais d'une ça générera surmement un warning et de deux ça fait pas très sérieux :p , donc un type de retour void serait plus approprié dans le cas présent.
          • Partager sur Facebook
          • Partager sur Twitter
            7 janvier 2006 à 23:31:40

            Personnelement, je n'aurais pas "découpé" mon code comme ça.
            En fait, dans ce cas ci c'est plutot superflus de séparer le code mais bon... (je suppose que c pour l'entrainement :))
            Donc :
            a ta place j'aurais plutot mit la partie qui génère un nombre aléatoire dans un fichier séparer
            et laisser la boucle dans le main :


            // main.c
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>
            #include "random.h"

            int main(int argc, char *argv[])
            {

            int nombreJoueur = 0;
            //ouverture du jeu
            printf("Le jeu du nombre mystère\n\n");
            printf("Trouve le nombre mystère\n\n");

            int nombreMystere = genereNombre();

            while (nombreJoueur != nombreMystere)
                 {
                       
                       printf("Quel est le nombre? \n");
                       scanf("%ld", &nombreJoueur);
                 }

              system("PAUSE");
              return 0;
             
            }


            // nombre.c
            int genereNombre()
            {
              const long MAX = 100, MIN = 1;
              int nombreMystere = 0;
              srand(time(NULL));
             
              return nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            }


            //nombre.h
            int genereNombre();

            Enfin, quelque chose comme ça quoi.
            • Partager sur Facebook
            • Partager sur Twitter

            Problème Modulation

            × 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