Partage
  • Partager sur Facebook
  • Partager sur Twitter

Je ne comprends pas ce code : 0.5-Math.random()

Sujet résolu
    7 août 2020 à 20:02:43

    Bonjour je suis actuellement entrain de suivre un tuto pour essayé de faire un jeu de memory mais la manière de trier les cartes aléatoirement je ne comprends pas comment çà fonctionne.

    Voici le code : 

    var cartes = ['1','2','3'].sort(() => {return 0.5-Math.random()});
    console.log(cartes);

    Je ne comprends pas ce que signifie 0

    5-Math.random()

    Pourriez-vous m'éclairer svp merci à vous

    • Partager sur Facebook
    • Partager sur Twitter

    S.PICARD

      7 août 2020 à 20:08:21


      Math.random() va te retourner un résultat entre 0 et 1 

      lorsque 0.5 - Math.random() donne un résultat < 0 l'élément d'index i va décroître en index

      = 0 reste inchangé 

      > 0 prend un index supérieur

      De mémoire c'est ça :)

      9a se fait avec des permutations


      PicardSylvain a écrit:

      Bonjour je suis actuellement entrain de suivre un tuto pour essayé de faire un jeu de memory mais la manière de trier les cartes aléatoirement je ne comprends pas comment çà fonctionne.

      Voici le code : 

      var cartes = ['1','2','3'].sort(() => {return 0.5-Math.random()});
      console.log(cartes);

      Je ne comprends pas ce que signifie 0

      5-Math.random()

      Pourriez-vous m'éclairer svp merci à vous



      • Partager sur Facebook
      • Partager sur Twitter

      Le dev web est outil de création illimité.

        7 août 2020 à 20:35:17

        Donc en gros si je comprends bien la méthode sort va trier les cartes aléatoirement grâce à la méthode random et le 0.5-Math.random() va permettre de déterminer l'ordre des éléments dans le tableau en fonction de la valeur passé en paramètre de sort() donc < à 0 il place au début, 0 il bouge pas et > 0 il place a la fin ?





        -
        Edité par PicardSylvain 8 août 2020 à 7:49:11

        • Partager sur Facebook
        • Partager sur Twitter

        S.PICARD

          8 août 2020 à 10:48:43

          Grosso modo c'est ça <0 ton élément va être décalé vers la gauche, >0 décalé vers la droite et ==0 ne bouge pas


          PicardSylvain a écrit:

          Donc en gros si je comprends bien la méthode sort va trier les cartes aléatoirement grâce à la méthode random et le 0.5-Math.random() va permettre de déterminer l'ordre des éléments dans le tableau en fonction de la valeur passé en paramètre de sort() donc < à 0 il place au début, 0 il bouge pas et > 0 il place a la fin ?





          -
          Edité par PicardSylvain il y a environ 1 heure



          • Partager sur Facebook
          • Partager sur Twitter

          Le dev web est outil de création illimité.

            8 août 2020 à 11:39:57

            Ok merci je comprends maintenant


            • Partager sur Facebook
            • Partager sur Twitter

            S.PICARD

              8 août 2020 à 12:09:43

              En fait c'est une méthode arbitraire mais assez logique vu que la fonction de répartition est paire :)


              PicardSylvain a écrit:

              Ok merci je comprends maintenant




              • Partager sur Facebook
              • Partager sur Twitter

              Le dev web est outil de création illimité.

                8 août 2020 à 14:32:13

                Une dernière chose la méthode sort quand elle est appelé trié les éléments en une fois ou plusieurs ? J'essaie de comprendre si la méthode random est appelé plusieurs fois ou une seule
                • Partager sur Facebook
                • Partager sur Twitter

                S.PICARD

                  8 août 2020 à 14:46:25

                  PicardSylvain a écrit:

                  Une dernière chose la méthode sort quand elle est appelé trié les éléments en une fois ou plusieurs ? J'essaie de comprendre si la méthode random est appelé plusieurs fois ou une seule


                  Alors il me semble que sort est appelée 1 seule fois mais random() va être appelée autant de fois qu'il y a d'éléments dans ton array
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le dev web est outil de création illimité.

                    8 août 2020 à 16:06:14

                    D'accord merci

                    Donc pour résumer la méthode sort trie l'array une fois mais la fonction passé en paramètre compare l'élément et l'élément suivant et c'est la méthode random qui détermine la position des l'élément

                    -
                    Edité par PicardSylvain 8 août 2020 à 17:28:59

                    • Partager sur Facebook
                    • Partager sur Twitter

                    S.PICARD

                    Je ne comprends pas ce code : 0.5-Math.random()

                    × 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