l システム (TurtleWorld ライブラリ) を再現するためにタートル グラフィックスを使用しています。私が適用しようとしたルールは、以前に保存された状態に戻る必要がない場合はうまく機能しますが、 [ と ] (以下のルールを参照) がある場合はいつでも、物事が壊れ、タートルはランダムな bs を描画するだけです。
基本的に「]」がどこにあるかをチェックするIF文でコードが壊れていると思います。(また、現時点では最適化されていないことを知っています。明確にするために、しっかりしたIFを書きました...)
EDIT : 新しいコード - get_heading() があるので、角度を計算する必要はありませんでした。
import turtle
turtle.down()
n = 'F'
s1 = 'F'
s2 = 'FF-[-F+F+F]+[+F-F-F]'
#s3 = 'F'
#s4 = 'FF'
steps = 5
for i in range(steps):
n = n.replace(s1,s2)
#n = n.replace(s3,s4)
a = 25
x = []
y = []
angle = []
for i in n:
if i == 'F':
turtle.forward(2)
if i == '+':
turtle.left(a)
if i == '-':
turtle.right(a)
if i=='[':
x.append(turtle.xcor())
y.append(turtle.ycor())
angle.append(turtle.heading())
if i==']':
turtle.pu()
turtle.setpos(x[len(x)-1],y[len(y)-1])
turtle.right(turtle.heading())
turtle.setheading(angle[len(angle)-1])
x.pop()
y.pop()
angle.pop()
turtle.pd()