Pianta – 1

import time
import turtle
#-----------------------------------------------
WIDTH  =800       # Dimensione finestra
HEIGHT =800       # ...
LIVELLI=1         # Numero livelli
#-----------------------------------------------
W      =0              # Posizione iniziale
H      =-HEIGHT*0.45   # ...
DIR    =90             # Direzione iniziale
ANGOLO =45             # Angolo a sinistra
#-----------------------------------------------
SIZE   = WIDTH*0.58/(2**(LIVELLI-1))
#-----------------------------------------------
R      = 'F'
REGOLE = {'F':'F[-F]F[+F]',
          '+':'+', '-':'-',
          '[':'[', ']':']'
         }
#-----------------------------------------------
def trasforma(R):
    R2=''
    for x in R:
        R2 += REGOLE[x]
    return R2
#-----------------------------------------------
def prepara():
    turtle.setup(width=WIDTH, height=HEIGHT)
    turtle.bgcolor('cyan')
    turtle.hideturtle()
    turtle.pencolor("green")
    turtle.pensize(2)
    turtle.penup()
    turtle.speed(0)
    turtle.setposition(W, H)
    turtle.setheading(DIR)
    turtle.title("L-System: pianta, livello="
                 + str(LIVELLI))
    turtle.tracer(0)
#-----------------------------------------------
def disegna(R):    
    STACK=[]
    for x in R:
        if(x == '+'):
            turtle.left(45)
        elif(x == '-'):
            turtle.right(45)
        elif(x == 'F'):
            turtle.pendown()
            turtle.forward(SIZE)
        elif(x == '['):
            p=turtle.position()
            h=turtle.heading()
            STACK.append(p)
            STACK.append(h)
        elif(x == ']'):
            h=STACK.pop()
            p=STACK.pop()
            turtle.penup()
            turtle.setposition(p)
            turtle.setheading(h)
#-----------------------------------------------
for j in range(LIVELLI-1):
    R=trasforma(R)
 
print(len(R))
print(R)
prepara()
disegna(R)
turtle.update()

Lascia un commento