TP5 PYTHON : NOMBRES ALEATOIRE ET DICTIONNAIRE

publicité
Lycée Gustave Eiffel
TS – ISN
ISN
ISN – Informatique et Sciences du Numérique
TP5 PYTHON : NOMBRES ALEATOIRE ET
DICTIONNAIRE
1 – NOMBRES ALEATOIRES
Python dispose du module « random » qui contient de nombreuses fonctions en relation avec les
nombres aléatoires notamment la fonction « randint » qui permet de délivrer un nombre entier
(pseudo-)alétoire dans un certain intervalle de valeurs. Pour utiliser la fonction « randint » il est
nécessaire de charger le module « random ».
Exemple
N = random.randint(1,10) # Nombre aléatoire compris entre 1 et 10
Exercice 1
1. Editer un script permettant de simuler le lancer d’un dé tant que l’utilisateur le veut.
2. Enregistrer et tester le script.
2 – DICTIONNAIRES
Un dictionnaire est un structure de liste un peu particulière qui permet de stocker des données sous la
forme (clé ; valeur). L’accès aux éléments du dictionnaire ne se fait plus à l’aide d’un index mais à l’aide
de la clé. Celle-ci est unique et n'est pas nécessairement un entier.
TP5 Python : Nombres aléatoires et dictionnaires
Page n°1/3
Lycée Gustave Eiffel
TS – ISN
Exercice 2
3. Taper dans l’interpréteur les lignes suivantes. Justifier les résultats obtenus.
>>>moyenne = {'Math':14,'Anglais':12.5,'Français':13}
>>>print(moyenne)
>>>print(moyenne['Math'])
>>>moyenne['Anglais'] = 16
>>>print(moyenne)
3 – LABYRINTHE
La nouvelle version du jeu du labyrinthe est réalisée par le script jeu_lab2.py et le module
module_lab2.py.
Il faut ajouter des trésors dans le jeu. Ces trésors sont répartis en 3 catégories et seront représentés dans
les fichiers des labyrinthes par les caractères « 1 », « 2 », et « 3 ». Cependant dans le labyrinthe affiché
pendant le jeu, les trésors seront représenté par le même caractère « # ». Chaque fois que le personnage
atteindra un trésor, il gagnera un certain nombre de pièces d’or selon le type de trésor atteint. Le
nombre exact de pièces d’or gagnée par le personnage sera tiré au hasard dans l’intervalle correspond
au type de trésor. Lorsque le personnage s’est déplacé dans une case trésor, il faudra supprimer ce
trésor.
Trésor « 1 »
Trésor « 2 »
Trésor « 3 »
1 à 5 pièces d’or
5 à 10 pièces d’or
0 à 25 pièces d’or
Le nombre de pièces d’or (po) sera contenu dans le dictionnaire « data » qui contiendra également le
niveau courant du labyrinthe : data = {"po" : 20,"niveau" : 2}.
Le dictionnaire « data » sera initialisé dans le programme principal avec les valeurs suivantes :
data = {"po" : 0,"niveau" : None}.
3.1 – Fonction compte_tresor
La fonction compte_tresor permet d’incrémenter le nombre de pièces d’or en fonction du type de
trésor. Cette fonction est lancée par la fonction verification_deplacement si le personnage passe par
une case trésor. Elle fournit à la fonction compte_tresor la catégorie de trésor trouvé.
TP5 Python : Nombres aléatoires et dictionnaires
Page n°2/3
Lycée Gustave Eiffel
TS – ISN
Exercice 3 : Labyrinthe – Fonction compte_tresor
4. Compléter, dans le fichier module_lab2.py, les lignes 61 à 66 permettant d’incrémenter le nombre
de pièces d’or en fonction du type de trésor.
3.2 – Fonction verification_deplacement
La fonction verification_deplacement doit permettre de détecter le passage du personnage par une
case trésor et dans ce cas lancer la fonction compte_tresor.
La fonction verification_deplacement doit ensuite effacer le trésor. Pour cela il faut utiliser la ligne
suivante :
lab[pos_ligne] = lab[pos_ligne][:pos_col] + " " + lab[pos_ligne][pos_col + 1 :]
Exercice 4 : Labyrinthe – Fonction verification_deplacement
5. Compléter, dans le fichier module_lab2.py, les lignes 84 et 85 permettant de tester si la case
contient un trésor et dans ce cas d’appeler la fonction compte_tresor.
6. Expliquer le fonctionnement de la ligne 86.
3.3 – Fonction affiche_labyrinthe
La fonction « affiche_labyrinthe » doit balayer toutes les lignes du labyrinthe et remplacer les
caractères « 1 », « 2 » et « 3 » rencontrés par le caractère « # ». Pour cela il faut utiliser une boucle
« for » avec la variable de comptage de boucle comprise entre 1 et 3. Pour remplacer un caractère, dans
ligne, il est possible d’utiliser la fonction « replace » :
Syntaxe
# Remplace dans la ligne tous les caractere1 par le caractere2
ligne = ligne.replace(caractere1,caractere2)
Le caractère « # » qui permet d’afficher l’emplacement d’un trésor est défini dans le programme
principal par la variable tresor.
Exercice 5 : Labyrinthe – Fonction affiche_labyrinthe
7. Compléter, dans le fichier module_lab2.py, la ligne 44 afin de remplacer les caractères « 1 », « 2 »
et « 3 » représentant les trésors par caractère unique « # ».
3.4 – Fonction barre_score
La fonction barre_score doit permettre d’afficher le dictionnaire « data » des données de jeu :
data = {"po" : 0,"niveau" : None}.
Exercice 6 : Labyrinthe – Fonction barre_score
8. Compléter, dans le fichier module_lab2.py, la ligne 29 permettant d’afficher les données de jeu.
9. Tester le fonctionnement du programme.
TP5 Python : Nombres aléatoires et dictionnaires
Page n°3/3
Téléchargement