Generative Design
Toolbox
2526 · INMI · Dekens Antoine
Fonction random
Voici une fonction améliorée pour générer des nombres aléatoires, elle attend 3 paramètres :
- max : le nombre maximum que vous voulez obtenir ( par défaut 1 )
- min : le nombre minimum que vous voulez obtenir ( par défaut 0 )
- round : un boolean, s'il est true, alors le nombre sera arrondi (par défaut false)
const rand = ( max = 1, min = 0, round = false ) => {
const n = Math.random() * ( max - min ) + min;
return round ? Math.round( n ) : n;
};
// Retourne un nombre décimal entre 0 et 1 exclu, comme Math.random()
const randomNumberA = rand();
// Retourne un nombre décimal entre 0 et 10 exclu
const randomNumberB = rand( 10 );
// Retourne un nombre décimal entre 5 et 10 exclu
const randomNumberC = rand( 10, 5 );
// Retourne un nombre entier entre 0 et 10
const randomNumberD = rand( 10, 5, true);
Récupérer un élément aléatoire d'un tableau
En multipliant la longueur d'un tableau par un nombre aléatoire entre 0 et 1 exclu et en n'oubliant pas d'arrondir le résultat vers l'entier inférieur, nous pouvons utiliser le résultat comme indice et retouner un élément aléatoire du tableau. La fonction attend le tableau en paramètre :
const getRandomElement = ( array ) => {
const randomIndex = Math.floor( Math.random() * array.length );
return array[ randomIndex ];
}
// Un tableau de couleurs nommées
const colors = [ 'crimson', 'yellowgreen', 'dodgerblue'];
// Retourne aléatoirement 'crimson', 'yellowgreen' ou 'dodgerblue'
const randomColor = getRandomElement( colors );
Mélanger un tableau
const shuffleArray = ( array ) => {
array.sort( () => {
return Math.random() - 0.5;
} );
};
const pokedex = [ 'Onyx', 'Magicarpe', 'Pikachu', 'Tortank' ];
shuffleArray( pokedex );