A project I had to submit for an algorithms module (Using Java).