TP n°9 - Le module RANDOM
1ère année maturité
Tout le contenu vu durant les TP fait partie entière de la matière à connaître lors d'évaluation.
Objectifs
- Importer et utiliser le module random.
- Ajouter de l'aléatoire dans son code.
Dans l'exemple ci-dessous, les formes affichées sont toutes construites de la même manière. Ce sont en réalité des spirales à 300 côtés. Mais l'angle ente chaque côté est aléatoire tout comme la couleur.
Cet exemple est le résultat d'un seul script.
Le mot random signifie aléatoire en français.
Le module Pythyon random ajoute des fonctions permettant d'introduire une dimension aléatoire à nos scripts.
De la même manière que le module turtle, il faut l'importer au début du script, grâce à :from random import *
random
Définition : randrange(start, stop, *gap)
La fonction randrange retourne un nombre entier compris entre start et stop, non compris. Elle peut prendre un troisième paramètre, gap, qui représente le saut entre chaque entier et vaut par défaut 1.
Exemple :
nb = randrange(10, 40, 5) nb prendra une valeur comprise dans l’ensemble {10, 15, 20, 25, 30, 35}
Définition : choice(list)
La fonction choice retourne au hasard un élément d’une liste.
Exemple :
couleurs = ["blue", "green", "red"] La variable C contient une des trois couleurs définies dans la liste
C = choice(couleurs)couleurs.
Pour se familiariser avec la notion d'aléatoire dans un code, voici ce que nous allons produire, en 3 étapes.
Etapes à produire
- Grâce à une boucle WHILE et à l’instruction
bgcolor(color)qui permet de définir la couleur de fond, coder un script pour produire la première image.- La torture doit être cachée
- La vitesse de dessin définie au maximum
- Utiliser des variables pour définir la taille des traits et l'angle en chaque trait
- Pour obtenir la deuxième image, commencez par importer le module
random, puis:- Utiliser la fonction
randrangepour définir de manière aléatoire la taille des traits - Faire de même pour l’angle, variant entre 2 et 15 degrés
- Utiliser la fonction
-
Pour terminer, définissez une liste de couleur de votre choix, par exemple
couleurs = ['red', 'yellow', 'blue'], et faites en sorte que la couleur de chaque trait soit aléatoire parmi votre liste de couleurs.
Écrivez un script qui va dessiner 100 points blancs, de taille aléatoire comprise entre 10px et 50px, placés aléatoirement sur la une fenêtre de fond noir.
L'exemple d'introduction reprend un exercice simple que nous avons vu dans le TP précédent (ex. 8.4). Il est basé sur le concept de la spirale carrée qui augmente à chaque tour, mais au lieu d'avoir un angle de 90°, on va le modifier.
Repartez de cet exemple de spirale carrée en respectant les points suivants :
- On doit pouvoir modifier facilement : le nombre de tours, la taille du premier ségment, l'angle entre chaque ségment.
- L'augmentation de la taille du prochain ségment à chaque tour vaut la valeur de la taille du premier.
- Définissez l'angle à 91 pour le moment, la taille initiale à 10, et 30 ségments seulement.
Une fois ceci testé et approuvé, passez à la randomisation !!
- Augmentez le nombre de tours à 300 et la taille initiale à 2.
- Définissez l'angle de manière aléatoire entre 55 et 140.
- Pour accélérer votre code, au lieu de speed(0), utilisez tracer(0)
- Vous pouvez également faire varier la couleur en utilisant une liste.
Nous avons vu que les couleurs, en informatique, sont encodées en RGB (red-green-blue). Ces trois composantes peuvent chacune prendre une valeur comprise entre 0 et 255.
En utilisant au début de votre script l’instruction colormode(255), vous spécifiez à Python que vous
aimeriez définir les couleurs de cette manière.
On va alors définir et utiliser une couleur, par exemple, comme ceci :
colormode(255)
orange = (255, 127, 0)
dot(20, orange)
color((10, 230, 185))
forward(200)
Modifiez votre spirale de l'exercice précédent pour faire varier la couleur avec le mode RGB.