hey, ik heb met net hetzelfde probleem gezeten tijdens de creatie van men spel waternet waar de oplossingen van de levels feitelijk een doolhof zijn. Maw als ik een doolhof kon generen kon ik levels genereren.
Nu heb er ook wat achter moeten zoeken maar uiteindelijk ben ik op deze site terecht gekomen :
http://www.mazeworks.com/mazegen/mazetut/index.htm
waar ze u uitleggen in pseudo code hoe je te werk moet gaan. ik moet zeggen het algoritme dat ik op basis van die pseudo code gemaakt heb werkte direct en is nog eens zeer snel bij. Misschien kan je er iets mee doen.
Wat ik gedaan heb is feitelijk een structuur gemaakt voor de levels die bestond uit 4 boolean waarden die een doorgang of geen doorgang voorstellen (4 -> noord, zuid, oost , west).
en ik had dan een array met die structuur gedefinieerd met als breedte / hoogte de maximum size van het te genereren doolhof (kon dus kleiner zijn ook).
Wat je dan doet is gewoon in het begin alle muren als gesloten zetten (alles op true zetten bvb binnen de array van die structuur) en dan neem je een willekeurig punt om te beginnen, je doet gelijdelijk aan muurtjes weg maar je zorgt ervoor dat je nooit hetzelfde punt (kamer) terug neemt. Dit blijf je doen tot wanneer je in elk vakje geweest bent. en alles goed verlopen is heb je je doolhoof.
Voor het tekenen van het doolhof doorloop je gewoon die array check je of een bepaalde muur aan een kant true is (muurtje staat er nog). en teken je een horizontal lijntje of verticaal lijntje afhankelijk van de richting (noord, oosten, ....) dus in het begin heb je gewoon een grid van allemaal vierkantjes aangezien alle muren er nog zijn.
voor er een ventje door te laten lopen / besturen. teken je bvb een rood vierkantje en de X/Y positie dat je bijhoud komt overeen met de positie in die array (positie in het doolhof). Wat je dan doet is als je naar boven bvb duwd kijken of in het huidig vakje het noorder muurdje true of false is, is het true (muur staat er) dan verander je de X/Y positie niet, anders wijzig je je X/Y waarde naargelang de richting dat je koos.
klinkt allemaal vrij moeilijk maar het is echt gemakkelijk hoor. Ik heb er ook zo een spelletje van gemaakt voor de gp2x wat een doolhoof genereerd en waar je door kan lopen. Je moet gewoon goed kijken naar die pseudo code en ze implementeren