# Tree class
import drawSvg as draw
from random import randint

class Tree:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        
    def getY(self):
        return self.y

    def draw(self):
        # draw tree trunk
        D.append(draw.Rectangle(self.x-4, self.y-35, 8, 30, fill='brown'))

        # draw tree top
        D.append(draw.Circle(self.x, self.y, 12, fill='green'))

D = draw.Drawing(400, 400, origin='center') # define drawing canvas
tree = Tree(0,0)
tree.draw()
D

# make and draw a forest
def create_forest(num_trees):
    forest = []
    for i in range(num_trees):
        x = randint(-200, 200)
        y = randint(-50, 50)
        t = Tree(x, y)
        forest.append(t)    
        
    forest.sort(key=key_y,reverse=True) # sort by height (y) 
    return forest

def key_y(tree):
    return tree.getY() 

def draw_forest(forest):
    D.append(draw.Rectangle(-200,-200,400,400,fill='#ADD8E6')) # blue background
    D.append(draw.Rectangle(-200,-100,400,150,fill='#90EE90')) # green grass
    for tree in forest:
        tree.draw() # draw trees
        
D = draw.Drawing(400, 400, origin='center') # define drawing canvas
forest = create_forest(30)
draw_forest(forest)
D




