L’aléatoire¶
L’aléatoire est ce qui relève du hasard. Quand on roule un dé, son résultat est aléatoire.
Dans des jeux ou des animations, il est souvent nécessaire de pouvoir calculer des valeurs aléatores.
Le module random
permet de trouver des valeurs aléatoires.
Partant du centre, la tortue visite les 13 sections de l’EPFL qui se trouvent tous à des positions aléatoires sur cette carte.
Position aléatoire¶
Pour pouvoir utiliser des fonctions aléatoirs nous devons d’abord importer le module random
:
import random
La fonction random.randint(-100, 100)
retourne une valeur aléatoire
qui se situe entre les deux valeurs -100 et 100.
Pour obtenir une position aléatoire, nous devons calculer deux valeurs, x et y.
from turtle import *
import random
dot()
for i in range(20):
x = random.randint(-200, 200)
y = random.randint(-100, 100)
goto(x, y)
dot()
done()
Angle aléatoire¶
Pour simuler la marche aléatoire d’une fourmi, nous pouvons garder la distance de chaque pas constante, et choisir l’angle du changement de direction à chaque itération comme ceci:
angle = random.randint(-90, 90)
from turtle import *
import random
dot()
for i in range(100):
angle = random.randint(-90, 90)
forward(20)
left(angle)
dot()
done()
Taille aléatoire¶
Ci-dessous la tortue va à une position (x, y) aléatoire et choisit une taille aléatoire dans l’intervalle [10, 50] pour dessiner un cercle:
size = random.randint(10, 50)
goto(x, y)
dot(size)
from turtle import *
import random
dot()
for i in range(20):
x = random.randint(-200, 200)
y = random.randint(-100, 100)
size = random.randint(10, 50)
goto(x, y)
dot(size)
done()
Couleur aléatoire¶
La fonction random.choice(list)
permet de choisir un élément dans une liste.
Il faut d’abord définir une liste:
colors = ('red', 'blue', 'green', 'violet', 'yellow', 'cyan', 'orange', 'magenta')
Ensuite un élément aléatoire est choisi dans cette liste et utilisé comme nouvelle couleur pour la tortue:
color = random.choice(colors)
pencolor(color)
from turtle import *
import random
colors = ('red', 'blue', 'green', 'violet', 'yellow', 'cyan',
'orange', 'magenta')
dot()
for i in range(15):
x = random.randint(-200, 200)
y = random.randint(-100, 100)
color = random.choice(colors)
pencolor(color)
goto(x, y)
dot(40)
done()