Il s'agit d'un jeu - explications détaillées
On donne un motif comme celui-ci
A B C | | | |--| | | |--| | |--| | | | 1 2 3
On descend d'une lettre. Chaque fois que l'on rencontre --, on doit changer de colonne.
Dans cet exemple, A → 2, B → 1, C → 3
Dans ce cas la réponse attendue est la chaîne de caractères"BAC".
Vous disposez de fichiers tests à télécharger, et la réponse attendue dans ces cas :
"BAC""FBCEAD""FEDABC"
Écrire une fonction ghostleg qui reçoit un nom de fichier et qui :
f = open(filename, 'r', encoding='utf8')
content = f.read()
f.close()
lines = content.split('\n')
Suite à ce code, lines contient un tableau où chaque item est une ligne du fichier.
['A B C', '| | |', '|--| |', '| |--|', '| |--|', '| | |', '1 2 3', '']
Vous remarquez que la dernière ligne est vide. Cela peut arriver mais n'est pas certain. Cela dépend de comment à été écrit le fichier. On peut s'assurer que la dernière ligne n'est pas vide en supprimant toute dernière ligne qui serait vide :
while lines[-1] == '':
lines.pop()
La fonction pop a pour effet d'enlever le dernier élément.
Maintenant que nous disposons de lines, nous pouvons facilement consulter le contenu du fichier.
>>> lines[2][1] '-'
En effet, lines[2] correspond au contenu de la ligne d'indice 2, c'est à dire '|--| |'. Donc lines[2][1] est le caractère de rang 1 dans cette ligne : '-'.
Dans le ghostleg, vous avez une ligne d'entête au début, les lignes de transition et à la toute fin une ligne de numéros qui ne sert pas à grand chose.
lines[0] # ligne d'entête lines[1:-1] # toutes les lignes sauf la première et la dernière lines[-1] # dernière ligne