A Python script that first generates a maze and then solves it. This is visualised with PyGame using a simple but effective design. Includes a main menu teaching the controls and offering the user the ability to change a number of options that effect maze generation and solving. Once initiated, the current state of each cell is shown using colours, which are explained with a key.