Écrivez un programme qui prend dans un bloc de texte rectangulaire composé de X
«et .
», comme ce brut A
:
......
..XX..
.X..X.
.XXXX.
.X..X.
.X..X.
Afficher une représentation de cette grille tournée de 45 degrés dans le sens antihoraire en traçant une barre oblique - vers l'avant ou vers l'arrière selon le contexte - partout une X
bordure a .
ou le côté de la grille (avec des espaces remplissant le reste):
/\/\
/ /\ \
\/ / \
/\/ /\ \
\ / \/
\ \
\ \
\/
Le nombre d'espaces de fin et de début (et les retours à la ligne) n'a pas d'importance tant que la forme des caractères X
dans l'entrée est conservée par les barres obliques. Vous pouvez supprimer des lignes ou des colonnes supplémentaires de .
.
Pour les E / S, vous pouvez utiliser n'importe quelle combinaison de paramètres de ligne de commande stdin / stdout / files / command. Par exemple, votre script peut prendre un nom de fichier du X.
modèle et réécrire le fichier avec le modèle de barre oblique. Ou votre script peut prendre le X.
modèle de stdin ligne par ligne (en appuyant une d
fois terminé) et afficher le résultat sur stdout.
L'entrée peut être arbitrairement grande, mais vous pouvez supposer qu'elle est toujours bien formatée.
Aucun caractère en plus / \
et les sauts de ligne ne doivent apparaître dans aucune sortie.
Notation
Le code le plus court en octets gagne. Utilisez https://mothereff.in/byte-counter comme compteur d'octets si vous utilisez des caractères non ASCII.
Bonus: moins 50 octets si vous pouvez modifier (remplacer, pas supprimer) un caractère de votre programme afin qu'il génère la grille oblique tournée à 45 degrés dans le sens des aiguilles d'une montre , par exemple:
/\/\
/ /\ \
/ \ \/
/ /\ \/\
\/ \ /
/ /
/ /
\/
Échantillons d'entrée
XXXXXXXXX
X.......X
X.XXXXX.X
X.X...X.X
X.X.X.X.X
X.X...X.X
X.XXXXX.X
X.......X
XXXXXXXXX
XXX...XXX....XXX...XXX
X..X..X..X..X.....X...
XXX...XXX...X.....X.XX
X.....X.....X.....X..X
X.....X......XXX...XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...X
X...X...............X...............X...........X...................X...X
X...X...XXXXXXXXX...X...XXXXX...XXXXXXXXX...XXXXX...XXXXX...XXXXX...X...X
X...............X.......X...X...........X...........X...X...X.......X...X
XXXXXXXXX...X...XXXXXXXXX...XXXXXXXXX...XXXXX...X...X...X...XXXXXXXXX...X
X.......X...X...............X...........X...X...X...X...X...........X...X
X...X...XXXXXXXXXXXXX...X...X...XXXXXXXXX...XXXXX...X...XXXXXXXXX...X...X
X...X...............X...X...X.......X...........X...........X.......X...X
X...XXXXXXXXXXXXX...XXXXX...XXXXX...X...XXXXX...XXXXXXXXX...X...XXXXX...X
X...........X.......X...X.......X...X.......X...........X...X...........X
X...XXXXX...XXXXX...X...XXXXX...X...XXXXXXXXX...X...X...X...XXXXXXXXXXXXX
X.......X.......X...X...X.......X.......X.......X...X...X.......X.......X
XXXXXXXXXXXXX...X...X...X...XXXXXXXXX...X...XXXXX...X...XXXXX...XXXXX...X
X...........X...X...........X.......X...X.......X...X.......X...........X
X...XXXXX...X...XXXXXXXXX...XXXXX...X...XXXXX...XXXXX...XXXXXXXXXXXXX...X
X...X.......X...........X...........X.......X...X...X...............X...X
X...X...XXXXXXXXX...X...XXXXX...XXXXXXXXX...X...X...XXXXXXXXXXXXX...X...X
X...X...........X...X...X...X...X...........X...............X...X.......X
X...XXXXXXXXX...X...X...X...XXXXX...XXXXXXXXX...XXXXXXXXX...X...XXXXXXXXX
X...X.......X...X...X...........X...........X...X.......X...............X
X...X...XXXXX...XXXXX...XXXXX...XXXXXXXXX...XXXXX...X...XXXXXXXXX...X...X
X...X...................X...........X...............X...............X...X
X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Questions connexes:
dessiner la courbe de Hilbert à l'aide de barres obliques
Aligner une forme ASCII à angle droit alignée horizontalement le long d'une diagonale