Created as an Eloquent JavaScript exercise.

Help:

Libraries used: