Bonjour,

Je dois coder un L-système afin de dessiner un triangle de Sierpisky. J'ai pour cela écris une première fonction apply_rule(S) avec les règles de transformation (A devient B-A-B etc...). Je dois maintenant écrire une fonction apply_rec(S,n) qui applique plusieurs fois apply_rule(S) au résultat précédent en partant de S sans utiliser de boucle, uniquement par récursivité. Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def apply_rules(S):
    S = ("A", "B")
    newS = ""
    for i in S:
        if i == "A":
            newS += "B-A-B"
        if i == "B":
            newS += "A+B+A"
        else:
            newS += ""
    return  newS
 
def apply_rec(S,n):
    newS = ""
    if n == 0:
       return S
    else:
       newS = newS + apply_rules(S)
    return newS
apply_rec("A", 1) doit par exemple donner "B-A-B".

Ma fonction def apply_rec(S,n) ne marche pas, je vous demande donc un conseil sur comment faire pour appliquer n fois ma fonction au résultat précédent ?
Merci de votre aide.