2 pièce(s) jointe(s)
Besoin d'aide décodage L System en Python
Bonsoir à toutes et à tous,
Je suis en classe préparatoire et mon prof d'algorithmie nous à demandé de réaliser un travail consistant à décoder un fichier en L System pour le transformer en "dessin" avec le package "turtle".
Voila à quoi ressemble un fichier codé en L system pour nous : Pièce jointe 234883
Et voici la traduction des lettres : Pièce jointe 234884
Ma situation est que j'ai la liste "regle1v2l" qui contient caractère par caractère les éléments de la première règle. Or je veut remplacer le a par la règle n fois avec n : le niveau (c'est un peu compliqué ^^)
Ce que je n'arrive pas a faire c'est de remplacer dans un liste un caractère qui apparaît plusieurs fois dans ma liste.
Ex: Je veux que [a,+,-,a,+,a] au niveau 1 deviennent [a,+,-,a,+,a, +,-, a,+,-,a,+,a, +, a,+,-,a,+,a] (les espaces sont juste la pour l'exemple)
Voici mon bout de programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
regle2v2lbis = regle2v2l #Création d'une même liste ne variant pas
for i in range(niveau2):
for i in range(len(regle1v2l)):
if regle1v2l[i]=="a":
del regle1v2l[i] #Supprime le "a" et le remplace par la règle
for i in range(len(regle1v2lbis):
regle1v2l.insert(i,regle1v2lbis[i])
elif regle1v2l[i]=="b":
del regle1v2l[i] #Pareil pour b
for i in range(len(regle2v2lbis):
regle1v2l.insert(i,regle2v2lbis[i]) |
Sauf que je pense que celui-ci ne marche pas car cela ne balayera pas toute la liste pour remplacer tous les "a" et "b"
Merci d'avance pour vos propositions :P