Outils pour utilisateurs

Outils du site


nsi:tds:id_zones

Identifier des zones

On vous donne un fichier texte comme le suivant.

................................
...************.................
.***..........************......
.*.*..****..***..........*......
**.*..*..*..*............*******
...*..*..*..******...*****......
...****..****....*...*..........
.................*...*..........

Ces caractères représente une sorte de carte. Les caractères * dessinent des frontières.

On souhaite produire un fichier texte où les . ont été remplacés de la façon suivante :

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA************AAAAAAAAAAAAAAAAA
A***BBBBBBBBBB************AAAAAA
A*C*BB****BB***DDDDDDDDDD*AAAAAA
**C*BB*CC*BB*DDDDDDDDDDDD*******
CCC*BB*CC*BB******DDD*****EEEEEE
CCC****CC****CCCC*DDD*EEEEEEEEEE
CCCCCCCCCCCCCCCCC*DDD*EEEEEEEEEE

Chaque . dans une zone connexe a été remplacée par une même lettre. Les différentes zonez reçoivent une lettre différente, peu importe laquelle.

On supposera qu'il n'y a jamais plus de 26 zones de sorte qu'on n'aura pas à utiliser d'autres caractères que les lettres.

À faire

Écrire une fonction detect_zones(source:str, dest:str) qui reçoit les arguments

  • source, le nom du fichier contenant les . et les *,
  • dest, le nom du fichier qui contiendra les zones marquées par des lettres

La fonction ouvre le fichier source, fait le remplacement demandé puis écrit le résultat dans le fichier dest.

Exemple de fichier

nsi/tds/id_zones.txt · Dernière modification : de goupillwiki