Schreiben Sie ein Programm, das mit dem Algorithmus Ihrer Wahl ein zufälliges Labyrinth erzeugt und druckt . Das Labyrinth sollte für mehrere Programmläufe unterschiedlich sein. Höhe und Breite werden als Befehlszeilenargumente angegeben. Verwenden Sie |
für vertikale Wand, -
für horizontale Wand und +
für Ecke. Das Labyrinth ist von Mauern begrenzt und die Eingänge sind durch fehlende Mauern gekennzeichnet. Das Labyrinth enthält einen Schatz, #
der von mindestens einem Eingang aus erreichbar sein muss.
$ python2 random-maze.py 4 5
+-+-+
|#|
| |
+---+
code-challenge
ascii-art
maze
Alexandru
quelle
quelle
*
oder gibt es zwei getrennte Eingänge? 2: Sie sollten wahrscheinlich angeben, dass der Ausgang erreichbar sein muss.Antworten:
Ich denke, dies ist technisch gesehen kein Labyrinthgenerator, aber es erzeugt ein Labyrinth-ähnliches Ergebnis: https://gist.github.com/803450 .
Ich weiß, dass dort ein schrecklicher Code steckt, der nur in weniger als der Hälfte der Zeit funktioniert, und das Ergebnis sieht nicht ganz richtig aus, wenn Wände aus anderen Wänden herausragen. Aber es ist nah genug, dass ich nicht die Mühe habe, den Rest zu reparieren.
Einige Beispielausgaben:
quelle
Python, 375 Zeichen
Dies erzeugt ein Labyrinth mit einem Eingang und einem zufällig platzierten Schatz. Das Labyrinth ist ein einfaches binäres Baumlabyrinth .
quelle
Ruby 1.9.2p136: 90
Ausgabe
Hey, niemand sagte, es müsse ein gutes Labyrinth sein. OK, OK, ich werde jetzt eine echte machen.
quelle
#!/usr/bin/env python
müssen beispielsweise in ihren Code aufgenommen werden. Wie ich bereits sagte, schreibe ich auch eine echte Lösung, die nur auf die schlechte Qualität der Frage selbst (und vieler anderer) hinweist und zeigt, dass wir bessere Richtlinien brauchen. Wenn Sie schließlich auf eine Frage verweisen, entspricht die Antwort auf die Frage nicht den tatsächlichen Regeln für die Site. Aber gut, hier ist deine neue Version ...C 844
Zu testen:
3x3
7x8
18x20
quelle
Hier ist eine einfache Java-Lösung:
Einige Beispielergebnisse:
3x3:
4x4:
4x5:
5x5:
5x8:
8x15:
quelle