Fonctions et conditions
Guides prérequis
Les fonctions
Comme tu le vois, les fonctions permettent d’éviter les répétitions dans le code lorsqu’on fait la même chose plusieurs fois. En plus, si tu donnes un nom clair à ta fonction, cela va grandement faciliter la lecture du code : quand tu appelles getSecondsIn, tu peux supposer que tu recevras un nombre de secondes !
Les conditions
La fonction rollDice() renvoie un nombre aléatoire en 1 et 6.
Comment ça marche ?
D’abord, Math.random() renvoie un nombre décimal aléatoire entre 0 et 1, par exemple 0.568. 1 étant exclu, le nombre maximum serait 0.999… C’est souvent comme cela qu’on génère un nombre aléatoire en programmation.
Math.random() * 6 permet d’amener ce nombre à l’intervalle qui nous intéresse : entre 0 et 6 exclu. Par exemple, 0.568 devient 3.408.
Math.floor() arrondit le nombre à l’entier inférieur. Les résultats possibles sont donc 0, 1, 2, 3, 4 et 5.
En ajoutant + 1, on obtient un nombre entre 1 et 6 !
À la fin du code, une condition vérifie que le résultat est égal à 6. Si c’est le cas, un message s’affiche dans la console.
Tout cela est cool, mais actuellement, rollDice() ne fonctionne que pour un dé à 6 faces… Pourrait-on changer cela ?
À toi de jouer !
- Essaie d’ajouter à la fonction un argument « faces » (ou
sidesen anglais), puis modifie le* 6par* sides. - Choisis le nombre de faces quand tu appelles la fonction.
- Mets à jour la condition (
if…) pour qu’elle s’adapte automatiquement au nombre de faces actuel.
L’opérateur de négation
Si tu veux vérifier que le résultat n’est pas égal au maximum, tu peux utiliser l’opérateur != (différent de) ou bien inverser une condition avec ! (non).
Dans cet exemple, result != sides et !(result == sides) vérifient exactement la même chose. Tu peux placer l’opérateur ! devant n’importe quelle valeur booléenne : true devient false et vice-versa.