"""
  Basic pong
  by Rory Solomon

  For Code Toolkit: Python, Eugene Lang, Fall 2021
"""

ballX = 300
ballY = 300

ballXDirection = 3
ballYDirection = 3

paddle1Y = 250
paddle2Y = 250

def setup ():
    size(600, 600)

    noStroke()
    fill(255)
    
    rectMode(CENTER)


def draw():

    global ballX, ballY, ballXDirection, ballYDirection, paddle1Y, paddle2Y
    
    background(0)

    # draw the ball
    ellipse( ballX, ballY, 10, 10)

    # draw the paddles
    rect(20, paddle1Y, 10, 50)
    rect(540, paddle2Y, 10, 50)

    # move paddles
    if keyPressed:
        if key == 'q':
            paddle1Y = paddle1Y - 5
        
        if key == 'z':
            paddle1Y = paddle1Y + 5
        
        if key == 'i':
            paddle2Y = paddle2Y - 5
        
        if key == 'm':
            paddle2Y = paddle2Y + 5


    # check wall collision (the top and bottom of the draw window)
    if ballY <= 0:
        ballYDirection = 3
    
    if ballY >= height:
        ballYDirection = -3
    

    # check paddle collision
    if ballY >= paddle1Y and ballY <= paddle1Y + 50 and ballX <= 20:
        ballXDirection = 1
    
    if ballY >= paddle2Y and ballY <= paddle2Y + 50 and ballX >= 540:
        ballXDirection = -1
    

    # update ball position
    ballX = ballX + ballXDirection
    ballY = ballY + ballYDirection