import random
import os
from palettes import randomPalette
from util import getTurtleAndScreen
# Tree, using recursion.
# CAC, 3/31/2023

def drawTree(turtle,length,angle,level,colors):
    realAngle=angle/2
    if level >0: # If level <=0, draw nothing.
        turtle.color(random.choice(colors))
        turtle.forward(length)
        x,y=turtle.pos()
        ang = turtle.heading()
        turtle.right(realAngle)
        drawTree(turtle,length,angle,level-1,colors)
        turtle.penup()
        turtle.goto(x,y)
        turtle.setheading(ang+realAngle)
        turtle.pendown()
        drawTree(turtle,length,angle,level-1,colors)

def Draw():
    level = random.randint(4,9)
    title = "Recursive Tree "+str(level)
    width = 800
    height = 600
    filename = os.path.basename(__file__)[0:-3]
    turtle, screen = getTurtleAndScreen(title,width,height,filename,moveWorld=True)

    colors = randomPalette()
    bg = random.choice(colors)
    colors.remove(bg)
    screen.bgcolor(bg)
    turtle.pensize(2)

    length = height/(level+2)
    angle = 60

    turtle.penup()
    turtle.goto(width/2,length*1.5)
    turtle.pendown()

    turtle.setheading(90)
    drawTree(turtle,length,angle,level,colors)

    turtle.penup()

    screen.mainloop()
# ----------------------------------------------------------------
if __name__ == '__main__':
   Draw()
