from Tkinter import *
# Hever Zsolt never@freemail.hu

class PApp(Frame):
         
         def __init__(self, master=None):
             Frame.__init__(self,master)
             Pack.config(self)
             self.s=0    # Score

             
             self.x=280  # Ball 

             self.y=5
             
             self.vx=4   #Ball speed

             self.vy=4   #Ball speed

             
             self.px=250 #Player

             self.py=0
             self.w()

             self.after(10, self.moveBall)
 
         def w(self):
             self.l=Canvas(self,bg='yellow', width="300",heigh="220")
             self.l.pack()
             self.m=Label(self,relief='groove', text="",anchor="w")
             self.m.pack(side='top',fill="x")

             self.player= self.l.create_rectangle(self.px, self.py, self.px + 7, self.py + 30, 
                                         {"fill" : 'black',"tags":"p1"})
             self.ball  = self.l.create_rectangle(280, 5, 290, 15,
                                         {"fill":'red',"tags":"ball"})                           

             self.bind_all("<Up>", self.fel)
             self.bind_all("<Down>", self.le)                
             self.bind_all("<B1-Motion>",self.Move)
             
             self.m.configure(text="Score :  "+`self.s`)
             
         def Move(self, event):
             if CURRENT <> "ball":
                 self.l.move(CURRENT, 0, event.y-self.py)
                 self.py=event.y
             
         def fel(self, event):
             self.l.move("p1", 0,-10)
             self.py=self.py-10

         def le(self, event):
             self.l.move("p1",0,10) 
             self.py=self.py+10

         def moveBall(self,*args): 
             if (self.x+10 == self.px) and (self.vx < 0) and (self.py - 11 < self.y) and (self.py + 36 > self.y):
                 self.s=self.s+1
                 self.m.configure(text ="Score : "+`self.s`)
                 self.vx=self.vx * -1 
 
             if (self.x < 4 )or(self.x>288) :
                 self.vx=-1.0 * self.vx
             if (self.y > 211) or (self.y < 4):
                 self.vy=-1.0 * self.vy
             self.x=self.x - self.vx
             self.y=self.y + self.vy         
             self.l.move("ball",-self.vx,self.vy )
             self.after(10, self.moveBall)
             
 
if __name__=='__main__':
#    root = Tk()

    app = PApp()
    app.mainloop()
