class lsystem(object):
def __init__(self,axiom,angle,rules):
self.axiom = axiom
self.angle = angle
self.rules = {}
for rule in rules:
# a rule is like "F:F+FF-F" - separator can be any character
self.rules[rule[0]] = rule[2:]
def generation(self,age):
if age == 0:
return self.axiom
r = ''
for symbol in self.generation(age-1):
for rule in self.rules:
if rule == symbol:
r += self.rules[rule]
if symbol not in self.rules:
r += symbol
return r