That feeling when, your program compiles and runs like it should...
So last week, was a pong game challenge, need I say more.
Here goes nothing.

[sourcecode language="python" wraplines="false" collapse="false"]
#http://www.codeskulptor.org/#user38_5WtyGnsPgb_0.py
# Implementation of classic arcade game Pong
try:
import simplegui
except:
import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
# To run simplegui in idle python, install SimpleGUICS2Pygame module
# download module : https://pypi.python.org/pypi/SimpleGUICS2Pygame

import random

# initialize globals - pos and vel encode vertical info for paddles
WIDTH = 600
HEIGHT = 400
BALL_RADIUS = 20
PAD_WIDTH = 8
PAD_HEIGHT = 80
HALF_PAD_WIDTH = PAD_WIDTH / 2
HALF_PAD_HEIGHT = PAD_HEIGHT / 2
LEFT = False
RIGHT = True
paddle1_vel, paddle2_vel = 0,0

paddle1_pos = [WIDTH - HALF_PAD_WIDTH, HEIGHT / 2]#,[WIDTH - PAD_WIDTH, HEIGHT]#[WIDTH / 2, HEIGHT / 2]
paddle2_pos = [HALF_PAD_WIDTH, HEIGHT / 2]

ball_pos = [WIDTH / 2, HEIGHT / 2]
# initialize ball_pos and ball_vel for new bal in middle of table
# if direction is RIGHT, the ball's velocity is upper right, else upper left
def spawn_ball(direction):
global ball_pos, ball_vel # these are vectors stored as lists

# define event handlers
def new_game():
global paddle1_pos, paddle2_pos, paddle1_vel, paddle2_vel # these are numbers
global score1, score2 # these are ints

def draw(canvas):
global score1, score2, paddle1_pos, paddle2_pos, ball_pos, ball_vel, paddle1_vel, paddle2_vel

# draw mid line and gutters
canvas.draw_line([WIDTH / 2, 0],[WIDTH / 2, HEIGHT], 1, "White")
canvas.draw_line([PAD_WIDTH, 0],[PAD_WIDTH, HEIGHT], 1, "White")
canvas.draw_line([WIDTH - PAD_WIDTH, 0],[WIDTH - PAD_WIDTH, HEIGHT], 1, "White")

# update ball

# draw ball
canvas.draw_circle(ball_pos, BALL_RADIUS, 2, "Red", "White")

"""Limit keeps the paddle on the screen"""
if paddle1_pos[1] < HALF_PAD_HEIGHT:
paddle1_pos[1] = HALF_PAD_HEIGHT
paddle1_vel = 0
elif paddle1_pos[1] > HEIGHT - HALF_PAD_HEIGHT:
paddle1_pos[1] = HEIGHT - HALF_PAD_HEIGHT
paddle1_vel = 0
if paddle2_pos[1] < HALF_PAD_HEIGHT:
paddle2_pos[1] = HALF_PAD_HEIGHT
paddle2_vel = 0
elif paddle2_pos[1] > HEIGHT - HALF_PAD_HEIGHT:
paddle2_pos[1] = HEIGHT - HALF_PAD_HEIGHT
paddle2_vel = 0

"""Drawing Paddles"""
paddle1_pos[1] += paddle1_vel
paddle2_pos[1] += paddle2_vel

paddle1_top = [paddle1_pos[0], paddle1_pos[1] - HALF_PAD_HEIGHT]
paddle1_bot = [paddle1_pos[0], paddle1_pos[1] + HALF_PAD_HEIGHT]
canvas.draw_line(paddle1_top, paddle1_bot, PAD_WIDTH, "White")

paddle2_top = [paddle2_pos[0], paddle2_pos[1] - HALF_PAD_HEIGHT]
paddle2_bot = [paddle2_pos[0], paddle2_pos[1] + HALF_PAD_HEIGHT]
canvas.draw_line(paddle2_top ,paddle2_bot, PAD_WIDTH, "White")

# draw scores

def keydown(key):
global paddle1_vel, paddle2_vel
acc = 5
if key == simplegui.KEY_MAP["up"]:
paddle1_vel -= acc
if key == simplegui.KEY_MAP["down"]:
paddle1_vel += acc
if key == simplegui.KEY_MAP["w"]:
paddle2_vel -= acc
if key == simplegui.KEY_MAP["s"]:
paddle2_vel += acc

def keyup(key):
global paddle1_vel, paddle2_vel
acc = 0
if key == simplegui.KEY_MAP["up"]:
paddle1_vel = acc
if key == simplegui.KEY_MAP["down"]:
paddle1_vel = acc
if key == simplegui.KEY_MAP["w"]:
paddle2_vel = acc
if key == simplegui.KEY_MAP["s"]:
paddle2_vel = acc

def exit_button():
frame.stop()

# create frame
frame = simplegui.create_frame("Pong", WIDTH, HEIGHT)
frame.set_draw_handler(draw)
frame.set_keydown_handler(keydown)
frame.set_keyup_handler(keyup)
frame.add_button('Exit', exit_button, 50)

# start frame
new_game()
frame.start()
[/sourcecode]