Procedural maze generation in c#