from myro import *

window = GraphWin("Bouncing Circles", 200, 400)

def makeBall(radius):
    r = 5 + radius * randomNumber()
    x = int(randomNumber() * (getWidth(window) - radius * 2) + radius)
    y = int(randomNumber() * (200 - radius * 2) + radius)
    ball = Circle(Point(x, y), r)
    color = pickOne("red", "blue", "green", "yellow")
    ball.speed = 1
    ball.dir = 1
    ball.setFill(color)
    return ball

def updateList(list):
    for item in list:
        if abs(item.speed) > 0:
            item.speed += max(abs(item.speed) * .3, .5)
            if item.getCenter().y + item.radius + item.speed > getHeight(window):
                if abs(item.speed) <= 2:
                    item.speed = 0
                    continue
                else:
                    item.speed = - (item.speed * .7)
            item.move(0, item.speed)

def animate(seconds, list):
    while timeRemaining(seconds):
        updateList(list)
        wait(.05)

list_of_balls = []

def main(seconds):
    for x in range(10):
        ball = makeBall(20)
        ball.draw(window)        
        list_of_balls.append( ball )
    animate(seconds, list_of_balls)
