From 24164e2d4d71b42415460cfbf12f11c63cf90ccc Mon Sep 17 00:00:00 2001 From: Florian Mathieu Date: Fri, 7 Jul 2023 16:02:37 +0200 Subject: [PATCH] ajout tp mastermind et suppression anciens tp --- representation_base/.DS_Store | Bin 10244 -> 10244 bytes representation_base/chapitre_4/PYTHON.md | 18 +- .../chapitre_1/tp/README.md | 208 ++++--------- .../chapitre_1/tp/anagrammes.md | 2 +- .../chapitre_1/tp/correction.md | 28 ++ .../chapitre_1/tp/correction.py | 277 ------------------ .../chapitre_1/tp/paint.py | 44 --- 7 files changed, 102 insertions(+), 475 deletions(-) create mode 100644 representation_construits/chapitre_1/tp/correction.md delete mode 100755 representation_construits/chapitre_1/tp/correction.py delete mode 100644 representation_construits/chapitre_1/tp/paint.py diff --git a/representation_base/.DS_Store b/representation_base/.DS_Store index 406ba06781aac9609b9acd3c874da2e8580a28d3..3d73dedec3831b79b77956c8ae9e4a94890b6a59 100644 GIT binary patch delta 64 vcmZn(XbISGS8TGWXfnHzrKygBvDsvQp^(Y5#a|(dZGJEDju%+~swfixsbUmD delta 32 gcmZn(XbISGS8Q^x@V?2j#b1Hw&CZguc%cHB0Q$WSvH$=8 diff --git a/representation_base/chapitre_4/PYTHON.md b/representation_base/chapitre_4/PYTHON.md index 7177570..fb6f854 100644 --- a/representation_base/chapitre_4/PYTHON.md +++ b/representation_base/chapitre_4/PYTHON.md @@ -72,11 +72,11 @@ False On peut utiliser l'opérateur `in` pour vérifier si un élément est présent dans une structure de données. Par exemple : ```python ->>> "a" in "bonjour" # False +>>> "a" in "bonjour" False ->>> "bon" in "bonjour" # True +>>> "bon" in "bonjour" True ->>> 1 in [2, 3, 4] # False +>>> 1 in [2, 3, 4] False ``` @@ -131,17 +131,17 @@ False Python permet d'évaluer n'importe quel type de donnée comme un booléen. Par exemple : ```python ->>> bool(1) # Vrai +>>> bool(1) True ->>> bool(0) # Faux +>>> bool(0) False ->>> bool("") # Faux +>>> bool("") False ->>> bool("abc") # Vrai +>>> bool("abc") True ->>> bool([]) # Faux +>>> bool([]) False ->>> bool([1, 2]) # Vrai +>>> bool([1, 2]) True ``` diff --git a/representation_construits/chapitre_1/tp/README.md b/representation_construits/chapitre_1/tp/README.md index 704f7d1..7823568 100644 --- a/representation_construits/chapitre_1/tp/README.md +++ b/representation_construits/chapitre_1/tp/README.md @@ -1,171 +1,91 @@ ---- -title : Les Drapeaux -author: M. BODDAERT -license: CC-BY-NC-SA ---- -# TP : Les Drapeaux +## TP : Jeu de Mastermind - +## Introduction -Fig 1. Drapeau français +Le Mastermind est un jeu de réflexion qui se joue à deux personnes. L'objectif du jeu est de faire deviner à une première personne une combinaison secrète de couleurs choisie par l'autre élève en un nombre limité de tentatives. Dans ce TP, nous allons créer un jeu de Mastermind en utilisant des listes en Python. -## 1. Contexte +----------------------------- -Un drapeau peut être vu comme une matrice, i.e un tableau de tableaux, de dimension $n \times m$. -Soient les codes couleurs suivants : -| Code | Couleur associée | -| :--: | :----------------: | -| 0 | NOIR | -| 1 | ROUGE | -| 2 | VERT | -| 3 | JAUNE | -| 4 | BLEU | -| 5 | MAGENTA | -| 6 | CYAN | -| 7 | BLANC | +## Consignes -Il est dès lors possible de représenter le drapeau français de la Fig.1 , en python, par la matrice $15 \times 7$ suivante : +Il audra créer une fonction python Mastermind.py qui va permettre de respecter les règles suivantes : -```python ->>> drapeau = [ - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1], - [4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 1, 1, 1, 1, 1] -] -``` +1. **Initialisation du jeu** -En utilisant le formalisme par compréhension : + - Générez une combinaison secrète de 4 couleurs choisies parmi les couleurs suivantes : Rouge (R), Bleu (B), Vert (V), Jaune (J), Orange (O) et Rose (P). Utilisez une liste pour stocker cette combinaison secrète. -```python ->>> drapeau = [ [4] * 5 + [7] * 5 + [1] * 5 for _ in range(7)] -``` + -Ce formalisme compact traduit le fait que le drapeau français est constitué de ***5 cases bleues, 5 cases blanches et 5 cases rouges, et cela sur 7 lignes***. +2. **Interaction entre élèvesr** -## 2. Matériel fourni + - Demandez à votre camarade de TP de deviner la combinaison secrète en entrant une liste de 4 lettres représentant les couleurs (par exemple, 'R', 'B', 'V', 'J'). Assurez-vous que les lettres sont toutes en majuscules. + - Le joueur dispose de 10 tentatives pour trouver la combinaison secrète. -Le module `paint` dispose de : +3. **Vérification de la proposition** -- 8 variables : `NOIR, ROUGE, VERT, JAUNE, BLEU, MAGENTA, CYAN, BLANC`, qui permettent de matérialiser les couleurs, -- d'une méthode `dessiner` qui permet d'afficher un drapeau, à partir d'une matrice passée en paramètre, dans la console de l'interpréteur python. + - Comparez la proposition du joueur avec la combinaison secrète et fournissez des indices pour indiquer si les couleurs sont correctes et bien placées (`X`) ou si les couleurs sont correctes mais mal placées (`O`). + - Utilisez une deuxième liste pour stocker ces indices. + - Par exemple, si la combinaison secrète est ['R', 'B', 'V', 'J'] et la proposition du joueur est ['B', 'V', 'R', 'J'], les indices seront ['O', 'O', 'X', 'X']. -
-
-
Fig 2. Exemple d'utilisation du module paint
-
+4. **Affichage des indices** -## 3. Consignes + - Affichez les indices pour aider le joueur à ajuster sa prochaine proposition. Par exemple, "O O X X" pour les indices de l'exemple précédent. -Vous devez créer un module `drapeau`. +5. **Répétez les étapes 2 à 4** -Pour chaque drapeau de la liste fournie en Annexe, vous devez : + - Demandez au joueur de faire une autre proposition en répétant les étapes de vérification et d'affichage des indices jusqu'à ce que le joueur trouve la combinaison secrète ou épuise toutes les tentatives. -- Formaliser la matrice modélisant le drapeau, +6. **Fin du jeu** -- Identifier la structure algorithmique, + - Si le joueur a trouvé la combinaison secrète, affichez un message de félicitations. Sinon, affichez un message indiquant que le joueur a échoué à trouver la combinaison secrète. -- Écrire une fonction, dans le module `drapeau` qui permette de créer la matrice modélisant le drapeau. + -***N.B : Vous devez utiliser le formalisme par compréhension ou l'utilisation de boucle mais il est interdit d'utiliser l'affectation par valeur, case par case.*** + ```python + def mastermind(combinaison, proposition): + """ + Compare la proposition du joueur avec la combinaison secrète et renvoie les indices correspondants. + + :param combinaison : liste contenant la combinaison secrète + :param proposition : liste contenant la proposition de l'adversaire + :return : liste "indices" contenant les indices pour la proposition du joueur + + """ + pass + ``` -Le module sera exécutable de la manière suivante : + -> python3 drapeau.py france + Utilisation : -Le résultat attendu étant l'affichage du drapeau du pays passé en paramètre. + ```python + combinaison_secrete = ['R', 'B', 'V', 'J'] + proposition = ['B', 'V', 'R', 'J'] + + indices = mastermind(combinaison_secrete, proposition) + print(indices) # Affiche ['O', 'O', 'X', 'X'] + + ``` -## 4. Annexe : Liste des pays et drapeaux + -- Belgique - - Drapeau: ![Belgique](./assets/belgique.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Pays-Bas - - Drapeau: ![Pays-Bas](./assets/pays_bas.png) - - Consigne: Le drapeau est de dimension \($15 \times 6$\) - -- Suède - - Drapeau: ![Suède](./assets/suede.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Finlande - - Drapeau: ![Finlande](./assets/finlande.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Irlande - - Drapeau: ![Irlande](./assets/irlande.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Côte d'Ivoire - - Drapeau: ![Côte d'Ivoire](./assets/cote_ivoire.png) - - Consigne: Vous devez utiliser la fonction de création du drapeau d'Irlande. - -- Bénin - - Drapeau: ![Bénin](./assets/benin.png) - - Consigne: Le drapeau est de dimension \($15 \times 6$\) - -- Suisse - - Drapeau: ![Suisse](./assets/suisse.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Guinée - - Drapeau: ![Guinée](./assets/guinee.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Mali - - Drapeau: ![Mali](./assets/mali.png) - - Consigne: Vous devez utiliser la fonction de création du drapeau de Guinée. - -- Botswana - - Drapeau: ![Botswana](./assets/botswana.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Monaco - - Drapeau: ![Monaco](./assets/monaco.png) - - Consigne: Le drapeau est de dimension \($15 \times 6$\) - -- Pologne - - Drapeau: ![Pologne](./assets/pologne.png) - - Consigne: Vous devez utiliser la fonction de création du drapeau de Monaco. - -- Japon - - Drapeau: ![Japon](./assets/japon.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Hongrie - - Drapeau: ![Hongrie](./assets/hongrie.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Iran - - Drapeau: ![Iran](./assets/iran.png) - - Consigne: Vous devez utiliser la fonction de création du drapeau de Hongrie. - -- Palaos - - Drapeau: ![Palaos](./assets/palaos.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Grèce - - Drapeau: ![Grèce](./assets/grece.png) - - Consigne: Le drapeau est de dimension \($15 \times 6$\) - -- États-Unis - - Drapeau: ![États-Unis](./assets/etats_unis.png) - - Consigne: Le drapeau est de dimension \($15 \times 6$\) - -- République du Congo - - Drapeau: ![République du Congo](./assets/republique_congo.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Trinidad et Tobago - - Drapeau: ![Trinidad et Tobago](./assets/trinidad.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) - -- Jamaïque - - Drapeau: ![Jamaïque](./assets/jamaique.png) - - Consigne: Le drapeau est de dimension \($15 \times 7$\) + Astuce : pour tester des listes, on peut utiliser l'opérateur de comparaison "==" + +## Annexe : Liste des couleurs disponibles + +- Rouge (R) +- Bleu (B) +- Vert (V) +- Jaune (J) +- Orange (O) +- Rose (P) + +------ + +Auteur : Florian Mathieu + +Licence CC BY NC + +Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International. \ No newline at end of file diff --git a/representation_construits/chapitre_1/tp/anagrammes.md b/representation_construits/chapitre_1/tp/anagrammes.md index 17a1fdb..bc84563 100644 --- a/representation_construits/chapitre_1/tp/anagrammes.md +++ b/representation_construits/chapitre_1/tp/anagrammes.md @@ -1,4 +1,4 @@ -## Préliminaires +## Introduction ### Méthode `split` sur les chaînes de caractères diff --git a/representation_construits/chapitre_1/tp/correction.md b/representation_construits/chapitre_1/tp/correction.md new file mode 100644 index 0000000..bc0209a --- /dev/null +++ b/representation_construits/chapitre_1/tp/correction.md @@ -0,0 +1,28 @@ +```python +def mastermind(combinaison,proposition): + """ + Compare la proposition du joueur avec la combinaison secrète et renvoie les indices correspondants. + + :param combinaison : liste contenant la combinaison secrète + :param proposition : liste contenant la proposition du joueur + :return indices : liste contenant les indices pour la proposition du joueur + + """ + indices = [] + combinaison_temp = combinaison_secrete.copy() + + # Vérification des couleurs bien placées + for i in range(len(proposition)): + if proposition[i] == combinaison_secrete[i]: + indices.append('X') + combinaison_temp[i] = None # Marquer la couleur comme déjà utilisée dans la combinaison secrète + + # Vérification des couleurs présentes mais mal placées + for i in range(len(proposition)): + if proposition[i] in combinaison_temp: + indices.append('O') + combinaison_temp[combinaison_temp.index(proposition[i])] = None # Marquer la couleur comme déjà utilisée + + return indices + +``` \ No newline at end of file diff --git a/representation_construits/chapitre_1/tp/correction.py b/representation_construits/chapitre_1/tp/correction.py deleted file mode 100755 index 3f5f9be..0000000 --- a/representation_construits/chapitre_1/tp/correction.py +++ /dev/null @@ -1,277 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding : utf-8 -*- -# Author : Philippe BODDAERT -# Date : 28/12/2020 -# License : CC-BY-NC-SA -''' Module de génération de Drapeaux ''' - - -import sys, copy -from paint import NOIR, ROUGE, VERT, JAUNE, BLEU, CYAN, BLANC, dessiner - -def miroir_vertical(matrice): - ''' - Inverse une matrice verticalment - ''' - for ligne in matrice: - ligne.reverse() - -def miroir_horizontal(matrice): - ''' - Inverse une matrice horizontalment - ''' - matrice.reverse() - -def creer_drapeau_france(): - ''' - Génère la matrice relative au drapeau de la France - :return: (list) la matrice de codes couleurs - ''' - return [ [BLEU] * 5 + [BLANC] * 5 + [ROUGE] * 5 for _ in range(7)] - -def creer_drapeau_irlande(): - ''' - Génère la matrice relative au drapeau de l'Irlande - :return: (list) la matrice de codes couleurs - ''' - return [ [VERT] * 5 + [BLANC] * 5 + [ROUGE] * 5 for _ in range(7)] - -def creer_drapeau_cote_ivoire(): - ''' - Génère la matrice relative au drapeau de la Côte d'Ivoire - :return: (list) la matrice de codes couleurs - ''' - drapeau = creer_drapeau_irlande() - miroir_vertical(drapeau) - return drapeau - -def creer_drapeau_belgique(): - ''' - Génère la matrice relative au drapeau de la Belgique - :return: (list) la matrice de codes couleurs - ''' - return [ [NOIR] * 5 + [JAUNE] * 5 + [ROUGE] * 5 for _ in range(7)] - -def creer_drapeau_pays_bas(): - ''' - Génère la matrice relative au drapeau des Pays-Bas - :return: (list) la matrice de codes couleurs - ''' - return [[BLEU] * 15] * 2 + [[BLANC] * 15] * 2 + [[ROUGE] * 15] * 2 - -def creer_drapeau_suede(): - ''' - Génère la matrice relative au drapeau de la Suède - :return: (list) la matrice de codes couleurs - ''' - bloc = [[BLEU] * 4 + [JAUNE] * 2 + [BLEU] * 9] * 3 - - return bloc + [[JAUNE] * 15] + bloc - -def creer_drapeau_finlande(): - ''' - Génère la matrice relative au drapeau de la Finlande - :return: (list) la matrice de codes couleurs - ''' - bloc = [[BLANC] * 4 + [BLEU] * 2 + [BLANC] * 9] * 3 - return bloc + [[BLEU] * 15] + bloc - -def creer_drapeau_guinee(): - ''' - Génère la matrice relative au drapeau de la Guinée - :return: (list) la matrice de codes couleurs - ''' - return [ [ROUGE] * 5 + [JAUNE] * 5 + [VERT] * 5 for _ in range(7)] - -def creer_drapeau_mali(): - ''' - Génère la matrice relative au drapeau du Mali - :return: (list) la matrice de codes couleurs - ''' - drapeau = creer_drapeau_guinee() - miroir_vertical(drapeau) - return drapeau - -def creer_drapeau_monaco(): - ''' - Génère la matrice relative au drapeau de Monaco - :return: (list) la matrice de codes couleurs - ''' - return [[ROUGE] * 15] * 3 + [[BLANC] * 15] * 3 - -def creer_drapeau_pologne(): - ''' - Génère la matrice relative au drapeau de la Pologne - :return: (list) la matrice de codes couleurs - ''' - drapeau = creer_drapeau_monaco() - miroir_horizontal(drapeau) - return drapeau - -def creer_drapeau_hongrie(): - ''' - Génère la matrice relative au drapeau de la Hongrie - :return: (list) la matrice de codes couleurs - ''' - return [[ROUGE] * 15] * 2 + [[BLANC] * 15] * 2 + [[VERT] * 15] * 2 - -def creer_drapeau_iran(): - ''' - Génère la matrice relative au drapeau d'Iran - :return: (list) la matrice de codes couleurs - ''' - drapeau = creer_drapeau_hongrie() - miroir_horizontal(drapeau) - return drapeau - -def creer_drapeau_rc(): - ''' - Génère la matrice relative au drapeau de la République du Congo - :return: (list) la matrice de codes couleurs - ''' - drapeau = [] - for i in range(7): - drapeau.append([VERT] * (12 - (i * 2)) + [JAUNE] * 3 + [ROUGE] * (i * 2)) - return drapeau - -def creer_drapeau_trinidad(): - ''' - Génère la matrice relative au drapeau de Trinidad et Tobago - :return: (list) la matrice de codes couleurs - ''' - drapeau = [] - for i in range(7): - drapeau.append([ROUGE] * (7 - i) + [BLANC] + [NOIR] * 4 + [BLANC] + [ROUGE] * (i + 2)) - miroir_vertical(drapeau) - return drapeau - -def creer_drapeau_etats_unis(): - ''' - Génère la matrice relative au drapeau des Etats-Unis - :return: (list) la matrice de codes couleurs - ''' - return ([[BLEU, BLANC] * 3 + [BLEU] + [ROUGE] * 8] + - [[BLEU, BLEU, BLANC, BLEU, BLANC, BLEU, BLEU] + [BLANC] * 8] + - [[BLEU, BLANC] * 3 + [BLEU] + [ROUGE] * 8] + - [[BLANC] * 15] + [[ROUGE] * 15] + [[BLANC] * 15]) - -def creer_drapeau_benin(): - ''' - Génère la matrice relative au drapeau du Bénin - :return: (list) la matrice de codes couleurs - ''' - return [[VERT] * 6 + [JAUNE] * 9 ] * 3 + [[VERT] * 6 + [ROUGE] * 9 ] * 3 - -def creer_drapeau_botswana(): - ''' - Génère la matrice relative au drapeau du Botswana - :return: (list) la matrice de codes couleurs - ''' - haut = [[CYAN] * 15] * 2 + [[BLANC] * 15] - bas = haut.copy() - miroir_horizontal(bas) - return haut + [[NOIR] * 15] + bas - -def creer_drapeau_grece(): - ''' - Génère la matrice relative au drapeau de la Grèce - :return: (list) la matrice de codes couleurs - ''' - return ([[BLEU] * 2 + [BLANC] + [BLEU] * 2 + [BLANC] * 10] + - [[BLANC] * 5 + [BLEU] * 10] + - [[BLEU] * 2 + [BLANC] + [BLEU] * 2 + [BLANC] * 10] + - [[BLEU] * 15] + [[BLANC] * 15] + [[BLEU] * 15]) - -def creer_drapeau_suisse(): - ''' - Génère la matrice relative au drapeau de la Suisse - :return: (list) la matrice de codes couleurs - ''' - haut = [[ROUGE] * 15] + [[ROUGE] * 6 + [BLANC] * 3 + [ROUGE] * 6] * 2 - bas = haut.copy() - miroir_horizontal(bas) - return haut + [[ROUGE] * 3 + [BLANC] * 9 + [ROUGE] * 3] + bas - -def creer_drapeau_japon(): - ''' - Génère la matrice relative au drapeau du Japon - :return: (list) la matrice de codes couleurs - ''' - haut = ([[BLANC] * 15] + - [[BLANC] * 6 + [ROUGE] * 3 + [BLANC] * 6 ] + - [[BLANC] * 4 + [ROUGE] * 7 + [BLANC] * 4 ]) - bas = haut.copy() - miroir_horizontal(bas) - return haut + [[BLANC] * 3 + [ROUGE] * 9 + [BLANC] * 3 ] + bas - -def creer_drapeau_jamaique(): - ''' - Génère la matrice relative au drapeau de la Jamaique - :return: (list) la matrice de codes couleurs - ''' - haut = [[JAUNE] * 2 + [VERT] * 11 + [JAUNE] * 2, - [NOIR] * 2 + [JAUNE] * 2 + [VERT] * 7 + [JAUNE] * 2 + [NOIR] * 2, - [NOIR] * 4 + [JAUNE] * 2 + [VERT] * 3 + [JAUNE] * 2 + [NOIR] * 4] - bas = haut.copy() - miroir_horizontal(bas) - return haut + [[NOIR] * 6 + [JAUNE] * 3 + [NOIR] * 6] + bas - -def creer_drapeau_palaos(): - ''' - Génère la matrice relative au drapeau du Palaos - :return: (list) la matrice de codes couleurs - ''' - haut = [[CYAN] * 15] + [[CYAN] * 5 + [JAUNE] * 3 + [CYAN] * 7 ] + [[CYAN] * 3 + [JAUNE] * 7 + [CYAN] * 5 ] - bas = haut.copy() - miroir_horizontal(bas) - return haut + [[CYAN] * 2 + [JAUNE] * 9 + [CYAN] * 4 ] + bas - -def creer_drapeau_republique_dominicaine(): - ''' - Génère la matrice relative au drapeau de la République Dominicaine - :return: (list) la matrice de codes couleurs - ''' - haut = [[BLEU] * 6 + [BLANC] * 3 + [ROUGE] * 6] * 3 - bas = copy.deepcopy(haut) - miroir_horizontal(bas) - miroir_vertical(bas) - return haut + [[BLANC] * 7 + [BLEU] + [BLANC] * 7] + bas - -DRAPEAUX = { - 'france' : creer_drapeau_france, - 'belgique' : creer_drapeau_belgique, - 'pays_bas' : creer_drapeau_pays_bas, - 'irlande' : creer_drapeau_irlande, - 'cote_ivoire' : creer_drapeau_cote_ivoire, - 'suede' : creer_drapeau_suede, - 'finlande' : creer_drapeau_finlande, - 'guinee' : creer_drapeau_guinee, - 'mali' : creer_drapeau_mali, - 'monaco' : creer_drapeau_monaco, - 'pologne' : creer_drapeau_pologne, - 'hongrie' : creer_drapeau_hongrie, - 'trinidad' : creer_drapeau_trinidad, - 'iran' : creer_drapeau_iran, - 'etats_unis' : creer_drapeau_etats_unis, - 'republique_congo' : creer_drapeau_rc, - 'benin' : creer_drapeau_benin, - 'botswana' : creer_drapeau_botswana, - 'grece' : creer_drapeau_grece, - 'suisse' : creer_drapeau_suisse, - 'japon' : creer_drapeau_japon, - 'jamaique' : creer_drapeau_jamaique, - 'palaos' : creer_drapeau_palaos, - 'dominique' : creer_drapeau_republique_dominicaine - } - -if __name__ == '__main__': - if len(sys.argv) >= 2: - if sys.argv[1] == 'all': - for nom, fonction in DRAPEAUX.items(): - print(nom) - dessiner(fonction()) - print('') - elif sys.argv[1] in DRAPEAUX: - dessiner(DRAPEAUX[sys.argv[1]]()) - else: - print(f'Le pays doit être dans la liste {list(DRAPEAUX.keys())}') diff --git a/representation_construits/chapitre_1/tp/paint.py b/representation_construits/chapitre_1/tp/paint.py deleted file mode 100644 index c8054d1..0000000 --- a/representation_construits/chapitre_1/tp/paint.py +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env python3 -# -*- coding : utf-8 -*- -# Author : Philippe BODDAERT -# Date : 28/12/2020 -# License : CC-BY-NC-SA -''' Affichage en couleur ''' - -NOIR = 0 -ROUGE = 1 -VERT = 2 -JAUNE = 3 -BLEU = 4 -MAGENTA = 5 -CYAN = 6 -BLANC = 7 - -def case_couleur(back = 9): - ''' - Renvoi le texte d'un espace dont la couleur de fond est celle donnée - :param back: (int) le code couleur du fond du texte - ''' - return couleur(' ', back) - -def couleur(texte, back = 9, fore = 9): - ''' - Renvoi le texte dans la couleur donnée - :param fore: (int) le code couleur du texte - :param back: (int) le code couleur de fond du texte - :param texte: (str) texte à mettre en couleur - :return: (str) le texte mis en couleur pour affichage - ''' - return f'\033[3{fore}m\033[4{back}m{texte}\033[39m\033[49m' - -def dessiner(matrice): - ''' - Affiche le contenu de la matrice sous la forme de cases colorées - :param matrice: (list) un tableau de tableaux - :return: None - :CU: les valeurs de la matrice doivent être comprises entre 0 et 7 inclus - ''' - for ligne in matrice: - for colonne in ligne: - print(case_couleur(colonne), sep = '', end = '') - print('') \ No newline at end of file