import display, keypad, virtualtimers
pool = [{"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},
        {"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},
        {"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},
        {"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0},{"age":7,"seq":0}]

def indexToXY(index):
    x = index % 4
    y = index // 4
    return [x,y]

def doDraw():
    global pool
    index = 0
    display.drawFill(0)
    for sector in pool:
        x, y = indexToXY(index)
        index += 1
        if sector['age'] <= 7:
            drawDrop(x,y,sector['age'])
            sector['age']+= 1
    display.flush()
    return 50

def drawDrop(x,y,age):
    colour = 65535
    display.drawCircle(x,y,age,0,360,False,colour)
    if age > 1:
        display.drawCircle(x,y,age-1,0,360,False,int(colour/2))
    display.drawCircle(x,y,age+1,0,360,False,int(colour/3))

def on_key(key_index, pressed):
    global pool
    if not pressed:
        pool[key_index]["age"] = 0

keypad.add_handler(on_key)
virtualtimers.begin(50)
virtualtimers.new(50, doDraw)