Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Noob] Problème de fonction

Et autres, sûrement à venir ^^

    17 août 2007 à 20:08:41

    Bonjour à tous !

    Afin de continuer mes études (Game Designer) avec un bagage supplémentaire, j'ai décidé de me mettre à la programmation.
    Pour m'entraîner, j'ai récupéré un exemple de code source dans un ouvrage (MicroApplications) qui se présente tel quel, dont l'objectif est d'affecter un entier aléatoire compris entre 0 et 4 à la variable machine :

    {
    randomize ( );
    machine=random(4);
    if ( machine==0 ) machine=4 ;
    }

    Lors de la compilation, l'erreur suivante m'est retournée :

    Citation : Erreur

    C:\Documents and Settings\...\test.cpp(22) : error C2065: 'randomize' : undeclared identifier
    C:\Documents and Settings\...\test.cpp(23) : error C2065: 'random' : undeclared identifier
    Error executing cl.exe.



    J'ai quand même quelques notions et bases de programmations (html, php, un peu de C, ...) et je crois comprendre qu'il s'agit d'un problème d'identification des fonctions.
    Malheureusement, l'ouvrage que j'utilise ne déclare aucune fonction à l'origine...

    J'envisage deux solutions au problème, réussir à réparer l'exemple tel qu'indiqué, ou alors si quelqu'un était capable de m'expliquer comment affecter un entier aléatoire à une variable, je pense que ça serait encore mieux :)


    En vous remerciant d'avance !

    Nicolas.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 août 2007 à 20:11:47

      M@teo21 explique comment affecter une valeur aléatoire à une variable dans un TP du cours de C/C++. Je vais te chercher le passage.
      • Partager sur Facebook
      • Partager sur Twitter
        17 août 2007 à 20:29:54

        C'est normal randomize et random n'existent pas en C/C++
        • Partager sur Facebook
        • Partager sur Twitter
        Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
        Anonyme
          17 août 2007 à 20:32:36

          Le mode d'édition de message ne fonctionnant plus (ou très mal):

          Citation : M@teo21

          Certes ^^
          Nous ne savons pas générer un nombre aléatoire. Il faut dire que demander cela à l'ordinateur n'est pas simple : il sait bien faire des calculs, mais lui demander de choisir un nombre au hasard ça il sait pas faire !
          En fait, pour "essayer" d'obtenir un nombre aléatoire, on doit faire faire des calculs complexes à l'ordinateur... ce qui revient au bout du compte à faire des calculs :p

          Bon, on a donc 2 solutions :

          * Soit on demande à l'utilisateur à rentrer le nombre mystère via un scanf d'abord. Ca implique qu'il y ait 2 joueurs : l'un rentre un nombre au hasard, et l'autre essaie de le deviner ensuite.
          * Soit on tente le tout pour le tout, et on essaie quand même de générer un nombre aléatoire automatiquement. L'avantage est qu'on peut jouer tout seul du coup. Le défaut... est qu'il va falloir que je vous explique comment faire :-°



          Nous allons tenter la seconde solution, mais rien ne vous empêche de coder la première si vous voulez après ;)

          Pour générer un nombre aléatoire, on utilise la fonction rand().
          Cette fonction génère un nombre au hasard. Mais nous, on veut que ce nombre soit compris entre 1 et 100 par exemple (si on ne connaît pas les limites ça va devenir trop compliqué :p )

          Pour ce faire, on va utiliser la formule suivante :

          Code : C
          srand(time(NULL));
          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;


          (je ne pouvais pas trop vous demander de la deviner :lol: )

          • Partager sur Facebook
          • Partager sur Twitter
            17 août 2007 à 20:42:16

            Merci beaucoup d'abord pour la réponse très rapide, et ensuite pour la réponse :)
            J'y suis presque, mais il me renvoie toujours une erreur, celle ci :

            Citation : Erreur

            C:\Documents and Settings\...\test.cpp(22) : error C2065: 'time' : undeclared identifier
            Error executing cl.exe.



            Voici le code tel que je l'ai modifié

            srand(time(NULL));
            machine = (rand() % (4 - 1 + 1)) + 1;

            Je débute vraiment (attaqué le C++ aujourd'hui, je risque de repasser souvent sur ce forum ^^) donc j'ai du faire quelque chose de travers...


            Nicolas.
            • Partager sur Facebook
            • Partager sur Twitter
              17 août 2007 à 20:53:42

              la fonction time ne fait pas partie de la bilbiothèque standard.

              Il te faut inclure time.h pour l'utiliser.
              • Partager sur Facebook
              • Partager sur Twitter
              Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
                17 août 2007 à 20:58:22

                ça marche parfaitement, merci à tous pour votre aide :):):)

                Je repasserai si j'ai un autre problème, je centraliserai dasn ce topic pour éviter la multiplication ^^

                Encore Merci :)

                Nicolas.
                • Partager sur Facebook
                • Partager sur Twitter

                [Noob] Problème de fonction

                × 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