Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probabilité

Comment?

Sujet résolu
    21 janvier 2006 à 0:36:35

    Bon voila. J'ai créé un petit RPG mais quand je veux faire un taux de chance sur l'apparition d'un monstre je n'ai aucune idée comment programmer ça...

    En fait j'ai mon premier monstre qui a 5% de chance d'apparaitre a chaque déplacement. Mais comment le calculer s'il apparait ou non?
    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2006 à 1:13:28

      Fais gaffe quand meme à bien mettre en forme tes topics (politesse: bonjour... etc) parce que les moderos sont severes avec ca ^^
      Sinon pour ton probleme si j'ai bien compris, il faut que l'apparition du monstre soit aleatoire, alors la meilleur chose (enfin, la seule que je connaisse pour l'instant :p ) c'est d'utiliser la fonction random comme explique dans le TP:

      srand(time(NULL));
      variable_de_chances_d_apparition_du_monstre = (rand() % (MAX - MIN + 1)) + MIN;

      ensuite, pour mettre avec le pourcentage, il y a surement un moyen, mais je vais pas fair ton jeu a ta place :p (nan en fait c'est que j'ai la flemme d'y reflechir ^^ ), et puis l'interet de la prog c'est aussi de reflechir!
      Donc voia, j'espere que j'ai reussi a repondre (partiellement) a ton probleme, sur ce, bonne prog!

      EDIT: bon allez comme je suis sympa, je te passe meme le lien du tuto sur l'utilisation de random! c'est ici !
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2006 à 1:29:12

        Citation : M@kss

        Code : C

        srand(time(NULL));
        variable_de_chances_d_apparition_du_monstre = (rand() % (MAX - MIN + 1)) + MIN;


        Je pense que pour utiliser cette fonction il faut d'abord inclure la bibliothèque "time.h" donc
        #include<time.h>;
        si je ne me trompe pas.

        (mais me trompe-je, la est la question)
        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2006 à 1:31:56

          Ca je sait pour l'aléatoire mais comment vérifier qu'il apparait ou non celon les pourcentages? :)
          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2006 à 1:32:01

            tu ne te trompe pas: c'est dit dans le tuto ^^ !
            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2006 à 5:48:22

              hmmmm en plus des fonctions de déplacement tu rajoute le rand avec comme max : 20

              et si rand = 1(par exemple) pouf le monstre apparait

              ps : desoler si mon truc est pas exacte mais mon cerveau est afk la :p
              • Partager sur Facebook
              • Partager sur Twitter
                21 janvier 2006 à 7:21:06

                C'est pas très difficile, le C c'est quand meme un langage d'algo alors si vs commencez pas à vous creusez la tete maintenant sur des problèmes simples....
                Pour ton prob, tu fay un nombre aléatoire entre 0 et 100 et tu test si il est inférieur à 5 par ex.
                • Partager sur Facebook
                • Partager sur Twitter
                  21 janvier 2006 à 12:12:40

                  Je dirais inférieur ou égal a 5, ca veut dire que l'ordi tire des nombres au hasard tous les x temps et que si il tombe sur un nombre plus petit ou égal a 5 (ce qui revient a 5% donc) eh bien les monstres apparaissent, maintenant a toi de voir a quoi correspond le "tous les X temps" ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 janvier 2006 à 12:26:39

                    //inclus time.h
                    long MAX = 100,MIN = 1;
                    srand(time(NULL));
                    variable_de_chances_d_apparition_du_monstre = (rand() % (MAX - MIN + 1)) + MIN;
                    if(variable_de_chances_d_apparition_du_monstre<=75)
                    {
                    //C'est toi qui voit si le monstre apparaît ou pas
                    }
                    else if(variable_de_chances_d_apparition_du_monstre>75)
                    {
                    //la encore c toi qui voit
                    }
                    else
                    {
                    //message d'erreur(même si yen aura jamais)
                    }



                    voila après c toi qui voit
                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2006 à 12:43:11

                      Citation : max 2000

                      //inclus time.h
                      long MAX = 100,MIN = 1;
                      srand(time(NULL));
                      variable_de_chances_d_apparition_du_monstre = (rand() % (MAX - MIN + 1)) + MIN;
                      if(variable_de_chances_d_apparition_du_monstre<=75)
                      {
                      //C'est toi qui voit si le monstre apparaît ou pas
                      }
                      else if(variable_de_chances_d_apparition_du_monstre>75)
                      {
                      //la encore c toi qui voit
                      }
                      else
                      {
                      //message d'erreur(même si yen aura jamais)
                      }




                      voila après c toi qui voit


                      Comment ralentir un code au maximum, bon je fais une version light :)
                      //inclus time.h
                      srand(time(NULL));
                      // les noms de variables de 20 lignes c'est illisible !!
                      prob = rand() % 101 ;
                      if(prob<=75)
                      {
                      //C'est toi qui voit si le monstre apparaît ou pas
                      }
                      else
                      {
                      //la encore c'est toi qui voit
                      }

                      Et encore doit surement yavoir moyen de gagner de la vitesse :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 janvier 2006 à 14:00:16

                        C'est pas le top du ralentissement non plus ^^ Maintenant jvais chercher comment ne pas faire apparaitre 2 mob a la fois ^^ (ca trop dur :-° )
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Probabilité

                        × 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