The UofT AI v. AI Pong Tournament 2015


The UofT AI v. AI Pong Tournament gives you the opportunity to get started with programming games using PyGame, compete against other UofT students, and win prizes and diplomas!

Prizes: Gold, Silver, and Bronze medals for each member of the teams that win first, second, and third places. Diplomas for teams that earn Honourable Mention. (Get bragging rights for your resume!). Other prizes TBD

The game mechanics are included in and a sample AI engine (which you have to beat to qualify for the class tournament) is at To run PongAIvAI, you need to install Python 2 and PyGame. (For Windows, I recommend downloading the latest version of PyGame for Python 2 from here. See the PyGame download page for other platforms. CDF has PyGame installed)

You can run in Python 2 if you download into the same folder, after you install PyGame for Python 2. See lines 376-377 in for how to set the AI/human input functions for PongAIvAI.

Uncomment line 81 and comment out line 80 once your function doesn't produce errors (line 81 suppresses all errors and simply doesn't move the paddle). Line 66 only accepts input for 150ms

NEW: Results

Gold: DonkeyPong by Dmitry Kubikov

Silver: duang by Jingcheng Niu and Keith Shiran Yang

Bronze: BallNet by Sooham Rafiz and Juan Camilo Osorio

Certificates of Achievement: Skypong by Tirth Patel and Monica Shver and tabletenniser by Zexuan (Aaron) Wang


All UofT undergraduate students are eligible to participate.

Tournament Format

The format will be determined after the number of entries is known. We will try to hold the final live. (Though that is not guaranteed.) Game parameters will not change by default (except for the score needed to win), but may change at the discretion of the organizer for tie break purposes. There is a 200ms limit on how long it takes for your function to return a move.

Submission insturctions and rules

Teams of one or two students are allowed to enter the tournament.

Please submit a single python file whose name is [team_name].py. In the file, indicate the team name, the names of the members of the team, and the student numbers of the members of the team. The file must contain the function pong_ai, which will be called the same way that chaser_ai.chaser() is called.

Global variables are, of course, allowed. That way, you can figure out the velocity of the ball etc.

Only import math, import scipy, and import numpy are allowed by default. Non-math/numpy/scipy imports without prior permission are not allowed. Meddling with PongAIvAI is not allowed. To qualify for the tournament, you must beat chaser_ai by at least 1000:850. Please submit the file to by 23PM on March 10, 2015.

Good Luck!

Sign Up for Any Updates About the Tournament

Email pong at to sign up for news and updates about the tournament.


Email Michael Guerzhoy at guerzhoy at

Valid HTML 4.01 Transitional