#
#dream
#cherish
#love

#this begins as a dream of love.
#the hearts flying through the air
#represent somebody's imagination taking flight
#and dreaming about love

#then the dream settles down on a pedestal.
#the wings flap a couple times and then disappear,
#because love is no longer a dream
#but a reality to be cherished

def heart(a,b):
 g.line(a,b,a-9,b+9)
 g.setPixel(a-9,b+10,100)
 g.line(a-9,b+11,a-5,b+15)
 g.line(a-4,b+15,a,b+11)
 g.line(a,b,a+9,b+9)
 g.setPixel(a+9,b+10,100)
 g.line(a+9,b+11,a+5,b+15)
 g.line(a+4,b+15,a,b+11)

def leftwings(e,f):
 g.line(e,f,e-5,f+5)
 g.line(e-2,f+1,e-7,f+6)
 g.setPixel(e-7,f+5,100)
 g.setPixel(e-7,f+4,100)
 g.setPixel(e-6,f+3,100)
 g.setPixel(e-6,f+2,100)
 g.setPixel(e-5,f+1,100)
 g.setPixel(e-4,f,100)
 g.setPixel(e-5,f-1,100)
 g.line(e-6,f-1,e-8,f+1)
 g.setPixel(e-8,f,100)
 g.line(e-8,f-1,e-1,f-5)
  
def rightwings(c,d):
 g.line(c,d,c+5,d+5)
 g.line(c+2,d+1,c+7,d+6)
 g.setPixel(c+7,d+5,100)
 g.setPixel(c+7,d+4,100)
 g.setPixel(c+6,d+3,100)
 g.setPixel(c+6,d+2,100)
 g.setPixel(c+5,d+1,100)
 g.setPixel(c+4,d,100)
 g.setPixel(c+5,d-1,100)
 g.line(c+6,d-1,c+8,d+1)
 g.setPixel(c+8,d,100)
 g.line(c+8,d-1,c+1,d-5)

def wings(x,y):
 leftwings(x,y)
 rightwings(x+20,y)

def flyinglove(x,y):
 wings(x,y)
 heart(x+10,y-13)

def column(a):
 g.pen(a)
 g.line(9,3,35,3)
 g.line(35,3,29,9)
 g.line(29,9,29,50)
 g.line(29,50,35,55)
 g.line(35,55,9,55)
 g.line(9,55,15,50)
 g.line(15,50,15,9)
 g.line(15,9,9,3)
 g.line(17,9,17,50)
 g.line(20,9,20,50)
 g.line(23,9,23,50)
 g.line(26,9,26,50)

for i in range(1,60):
 a = g.getMouse(1)
 flyinglove((24+i),a)
 flyinglove((82-i),100-2*a)
 g.paper(0)
 g.pause(20)

g.pause(30)

for j in range(0,30):
 column(100)
 flyinglove(12,100-j)
 g.paper(0)
 g.pause(14)

heart(22,58)
column(100)
wings(12,70)
g.pause(30)
g.paper(0)

column(100)
heart(22,58)
wings(12,73)
g.pause(30)
g.paper(0)

column(100)
heart(22,58)
wings(12,69)
g.pause(40)
g.paper(0)

column(100)
heart(22,58)