Depth-first search maze generation algorithm