Final project for AP Computer Science at University of Chicago Lab Schools 2014.