diff --git a/src/pong.py b/src/pong.py
new file mode 100644
index 0000000000000000000000000000000000000000..f67183fa57bcfe79d1f4a41eb44b03abc75d40b5
--- /dev/null
+++ b/src/pong.py
@@ -0,0 +1,88 @@
+"""Pong, classic arcade game.
+Exercises
+1. Change the colors.
+2. What is the frame rate? Make it faster or slower.
+3. Change the speed of the ball.
+4. Change the size of the paddles.
+5. Change how the ball bounces off walls.
+6. How would you add a computer player?
+6. Add a second ball.
+"""
+
+from random import choice, random
+from turtle import *
+from freegames import vector
+
+def value():
+    "Randomly generate value between (-5, -3) or (3, 5)."
+    return (3 + random() * 2) * choice([1, -1])
+
+ball = vector(0, 0)
+aim = vector(value(), value())
+state = {1: 0, 2: 0}
+
+def move(player, change):
+    "Move player position by change."
+    state[player] += change
+
+def rectangle(x, y, width, height):
+    "Draw rectangle at (x, y) with given width and height."
+    up()
+    goto(x, y)
+    down()
+    begin_fill()
+    for count in range(2):
+        forward(width)
+        left(90)
+        forward(height)
+        left(90)
+    end_fill()
+
+def draw():
+    "Draw game and move pong ball."
+    clear()
+    rectangle(-200, state[1], 10, 50)
+    rectangle(190, state[2], 10, 50)
+
+    ball.move(aim)
+    x = ball.x
+    y = ball.y
+
+    up()
+    goto(x, y)
+    dot(10)
+    update()
+
+    if y < -200 or y > 200:
+        aim.y = -aim.y
+
+    if x < -185:
+        low = state[1]
+        high = state[1] + 50
+
+        if low <= y <= high:
+            aim.x = -aim.x
+        else:
+            return
+
+    if x > 185:
+        low = state[2]
+        high = state[2] + 50
+
+        if low <= y <= high:
+            aim.x = -aim.x
+        else:
+            return
+
+    ontimer(draw, 50)
+
+setup(420, 420, 370, 0)
+hideturtle()
+tracer(False)
+listen()
+onkey(lambda: move(1, 20), 'w')
+onkey(lambda: move(1, -20), 's')
+onkey(lambda: move(2, 20), 'i')
+onkey(lambda: move(2, -20), 'k')
+draw()
+done()
\ No newline at end of file