Écrivez un programme qui génère et imprime un labyrinthe aléatoire en utilisant l'algorithme de votre choix. Le labyrinthe doit être différent pour plusieurs exécutions du programme. La hauteur et la largeur sont données comme arguments de ligne de commande. Utilisation |
pour mur vertical, -
pour mur horizontal et +
pour coin. Le labyrinthe est délimité par des murs et les entrées sont marquées par un mur manquant. Le labyrinthe contient un trésor #
qui doit être accessible depuis au moins une entrée.
$ python2 random-maze.py 4 5
+-+-+
|#|
| |
+---+
code-challenge
ascii-art
maze
Alexandru
la source
la source
*
ou y a-t-il deux entrées distinctes? 2: Vous devez probablement spécifier que la sortie doit être accessible.Réponses:
Je pense que techniquement, ce n'est pas un générateur de labyrinthe, mais cela crée un résultat semblable à un labyrinthe: https://gist.github.com/803450 .
Je connais un code horrible, et cela ne fonctionne que moins de la moitié du temps, et le résultat ne semble pas tout à fait correct avec des murs qui dépassent des autres murs. Mais c'est assez proche pour que je ne puisse pas être gêné de réparer le reste.
Un exemple de sortie:
la source
Python, 375 caractères
Cela génère un labyrinthe avec une entrée et un trésor placé au hasard. Le labyrinthe est un simple labyrinthe d'arbres binaires .
la source
Rubis 1.9.2p136: 90
Production
Hé, personne n'a dit que ça devait être un bon labyrinthe. OK, OK, je vais en faire un vrai maintenant.
la source
#!/usr/bin/env python
, par exemple, dans leur code. Comme je l'ai dit, j'écrirai également une vraie solution, cela ne faisait que souligner la mauvaise qualité de la question elle-même (et bien d'autres) et démontre que nous devons avoir de meilleures directives. Et enfin pointer vers une question ne fait pas la réponse à la question des règles réelles du site. Mais bien, voici votre nouvelle version ...C 844
Tester:
3x3
7x8
18x20
la source
Voici une solution java simple:
Quelques exemples de résultats:
3x3:
4x4:
4x5:
5x5:
5x8:
8x15:
la source