Le célèbre chausson de base C64
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
imprime un labyrinthe de barres obliques et de barres obliques inverses.
\\/\\\//\/\////\\/\/
\/\///\\///////\//\/
/\\\//\//\////\\//\\
\////\//\//\/\\\\\\/
/\/\\///\\\\/\\\\/\\
\/\//\\\\\\//\/\////
/\//\\///\/\///\////
\/\\\//\\/\\\//\\/\/
//////\\/\\/\/\/\///
\\/\/\\////\/\/\\/\/
Lire dans un tel labyrinthe fait de murs diagonaux de stdin et imprimer le même labyrinthe avec des murs horizontaux et verticaux constitués du caractère de mur "#"
Par exemple le petit labyrinthe
/\\
\\/
///
Se traduit par
#####
# #
# # # #
# # # #
##### # # #
# #
#########
#####
Pour être précis, chaque segment de mur isolé a la longueur de cinq caractères, les segments de mur adjacents partagent un coin. Déplacer un caractère vers la droite / gauche / haut / bas dans la matrice des barres obliques et des barres obliques inverses correspond à une translation diagonale de 2 caractères en vertical et de 2 caractères en direction horizontale dans la matrice #.
Réponses:
Python 3,
226224 octetsMon premier golf Python, donc probablement très sous-optimal. Il produit beaucoup d'espaces de fin, mais il n'y a pas de retour à la ligne précédent et au plus deux espaces précédents. L'entrée doit être donnée à la main à partir de la ligne de commande (peut-être que quelqu'un connaît un moyen plus court d'obtenir une entrée multiligne en Python ...).
L'idée est d'initialiser un énorme tableau d'espaces
r
, puis de parcourir l'entré et de remplacer les espaces par#
si nécessaire, et enfin d'imprimer tout le tableau. Une astuce que j'ai utilisée consiste à comparer les caractères àz = '0'
au lieu de tester l'égalité à'/'
ou'\'
, ce qui économise un tas d'octets.la source
Julia, 258 octets
Une solution fonctionnelle ...
Dans l'ordre d'apparition:
f
couvre '/' et '\' par leurs motifs 5 * 5 bits, seh
plie tous les cinq et la ligne suivante en une seule ligne (rappelez-vous que "les segments de mur adjacents partagent un coin") etg
fait de même pour les colonnes. Enfin,i-j,i+j
fait pivoter l'image.la source
JavaScript (ES6), 258
Une fonction avec le labyrinthe comme paramètre, renvoyant la sortie.
Je ne sais pas si c'est valide, en raison des règles d'entrée / sortie (c'était amusant de toute façon)
la source