Using a depth-first search algorithm, I wrote a maze maker. This is a perfect maze, there is one and only one path from any point in the maze to any other point. There are no inaccessible sections, no open spaces and no circular paths.