Outils pour utilisateurs

Outils du site


nsi:tds:divers:ascii_art

ASCII Art

Il s'agit de produire des formes avec des caractères. Dans tous les cas vous devez écrire une fonction réalisant la tâche demandée, tenant compte des paramètres fournis – entrées.

Rectangle

Entrées :

  • height : hauteur du rectangle, sans compter le bord supérieur
  • width : largeur du rectangle, sans compter les bords

On utilise les caractères | et _

Exemple : rectangle(4, 8) renvoie la chaîne de texte :

 ________ 
|        |
|        |
|        |
|________|

Le caractère pour le retour à la ligne est \n.

Triangle

Entrée :

  • height : nombre d'étage de la pyramide

On utilise les caractères /, \, _ et .

Exemple : pyramide(5) produit la sortie :

    .
   / \
  /   \
 /     \
/_______\

Parallélogramme

Entrée :

  • height : hauteur, sans compter le bord supérieur
  • width : largeur, sans compter les bords

On utilise les caractères / et _

Exemple : plg(3, 10 produit la sortie :

   __________
  /         /
 /         /
/_________/

zoom

On voudrait écrire une fonction zoom(art, factor) qui pour une chaîne de ascii-art art donnée, renvoie la même mais multipliée par factor, un entier.

Exemple :

>>> art = """
*+
+*
"""
>>> zoom(art, 2)
**++
**++
++**
++**

Comment faire ?

  • Dans un premier temps, il suffit de produire une chaîne en doublant tous les caractères de art sauf les retours à la ligne '\n'.
  • Dans un deuxième temps, doubler toutes les lignes. Pour cela, on peut facilement récupérer les lignes d'un texte donné en faisant : for line in texte.split('\n'):. La méthodesplit sert justement à découper la chaîne.

Exemple :

 __         __
/  \.-"""-./  \
\    -   -    /
 |   o   o   |
 \  .-'''-.  /
  '-\__Y__/-'
     `---`
nsi/tds/divers/ascii_art.txt · Dernière modification : de goupillwiki