Le hasard
Un jeu sans hasard serait vite ennuyeux : les dés tomberaient toujours sur le même nombre ! Voyons comment demander à CoddyRun de tirer au sort.
Tirer un nombre au hasard
hasard(min, max) renvoie un nombre entier choisi au hasard entre min et max, les deux compris.
de6 est un nombre
de6 vaut hasard(1, 6)
affiche 'Le dé est tombé sur ' + de6
Exécute ce programme plusieurs fois : le résultat change à chaque exécution. C'est tout l'intérêt !
Mets toujours une espace après la virgule : hasard(1, 6). Collée entre deux chiffres, la virgule serait lue comme une virgule décimale, et hasard(1,6) deviendrait hasard(1.6).
Avec un seul nombre, hasard(n) tire entre 0 et n : hasard(10) donne un nombre de 0 à 10.
Question : Quelles valeurs peut donner hasard(1, 3) ? — 1, 2 ou 3. Les deux bornes sont comprises : le résultat est 1, 2 ou 3.
Lancer deux dés
premierDe est un nombre vaut hasard(1, 6)
secondDe est un nombre vaut hasard(1, 6)
affiche 'Dés : ' + premierDe + ' et ' + secondDe
affiche 'Total : ' + (premierDe + secondDe)
si premierDe = secondDe alors
affiche 'Un double, tu rejoues !'
fin si
Chaque appel à hasard fait un nouveau tirage : les deux dés sont indépendants.
Le hasard obéit à des lois
Lançons une pièce 1 000 fois et comptons les « pile » :
piles est un nombre vaut 0
pour i de 1 à 1000
si hasard(1, 2) = 1 alors
piles ajoute 1
fin si
fin pour
affiche 'Pile : ' + piles + ' fois sur 1000'
Le résultat tourne autour de 500, sans jamais être exactement prévisible. C'est le début des probabilités : un tirage est imprévisible, mais beaucoup de tirages suivent une règle.
Tirer un mot au hasard
hasardtexte choisit un des textes qu'on lui donne :
animal est un texte
animal vaut hasardtexte('hibou', 'renard', 'écureuil', 'hérisson')
affiche 'Animal mystère : ' + animal
On peut aussi tirer une case d'un tableau, en choisissant un index au hasard :
prenoms est un tableau vaut ['Léa', 'Tom', 'Sam', 'Inès']
gagnant est un nombre vaut hasard(0, longueur(prenoms) - 1)
affiche 'Le gagnant est ' + prenoms[gagnant] + ' !'
L'index va de 0 à longueur(prenoms) - 1 : exactement les cases du tableau.
Mélanger un tableau
melanger change l'ordre des éléments d'un tableau, comme on bat un jeu de cartes :
// Tirage du loto : 6 numéros différents entre 1 et 49
boules est un tableau
boules vaut intervalle(1, 49)
melanger(boules)
affiche 'Tirage du jour :'
pour i de 0 à 5
affiche boules[i]
fin pour
intervalle(1, 49) fabrique le tableau des nombres de 1 à 49. Une fois mélangé, on prend les 6 premiers : ils sont forcément tous différents. Avec six hasard(1, 49), on aurait pu tirer deux fois le même numéro !
En résumé
hasard(min, max) tire un entier entre min et max compris ; hasard(n) tire entre 0 et n.- Toujours une espace après la virgule :
hasard(1, 6). hasardtexte('a', 'b', 'c') choisit un texte au hasard.melanger(tableau) mélange un tableau ; pratique pour tirer sans répétition.