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);
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);
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 ?
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 ?
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
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
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
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.
S.PICARD
Le dev web est outil de création illimité.
S.PICARD
Le dev web est outil de création illimité.
S.PICARD
Le dev web est outil de création illimité.
S.PICARD
Le dev web est outil de création illimité.
S.PICARD