Su tarea es tomar una imagen artística ASCII y hacerla girar en el sentido de las agujas del reloj 45 grados y escalarla en un factor de . La escala proviene del uso de un patrón de celosía que introduce espacio entre los personajes.
Para explicarlo visualmente, un bloque se procesará así:
123
456
789
se convierte
1
4 2
7 5 3
8 6
9
Los personajes no se transformarán, por lo que los cuadros se verán extraños después de la rotación:
+-+
| |
+-+
se convierte
+
| -
+ +
- |
+
Para explicar el proceso más explícitamente, la salida consiste en un patrón de retícula de diamante donde la fila superior corresponde al carácter superior izquierdo de la entrada, la siguiente fila corresponde a los vecinos derecho e inferior, la siguiente fila son esos vecinos, y así sucesivamente hasta que todos los personajes se hayan colocado en la red.
Ejemplos
FISHKISSFISHKIS
SFISHKISSFISHKISSFISH F
ISHK ISSFISHKISSFISHKISS FI
SHKISS FISHKISSFISHKISSFISS FIS
HKISSFISHKISSFISHKISSFISHKISSFISH KISS
FISHKISSFISHKISSFISHKISSFISHKISS FISHK
SSFISHKISSFISHKISSFISHKISSFISHKISSF
ISHKISSFISHKISSFISHKISSFISHKISSF ISHKI
SSFISHKISSFISHKISSFISHKISSFISHKIS SFIS
HKISSFISHKISSFISHKISSFISHKISS FIS
HKISSFISHKISSFISHKISSFISHK IS
SFISHKISSFISHKISSFISH K
ISSFISHKISSFISHK
Se convierte
H
K S
I H I
F S K S
S I S I H S
S I S F S K F
F S H I S I
H I H K S S F
K S K S I H H I
I H I S S K I K S
H S K S F S I F S I H
K S I S I F S I S S K
I F S F S I S S F S I
S I S I H S F H I F S
S S S F S K H I K S I S
F F H I H I K S I H S F
I I K S K S I H S K H I
I S S I H I S S K S I K S
S H H S K S F S I F S I H
S K K S I S I F S I S S K
F I I F S F S I S S F S I
I S S I S I H S F H I F S
S S S S F S K H I K S I
H F F H I H I K S I H S
K I I K S K S I H S K H
I S S I H I S S K S I
S H H S K S F S I F S
S K K S I S I F S I S
F I I F S F S I S S
I S S I S I H S F S
S S S S F S K H I
H F F H I H I K S
K I I K S K S I H
S S I H I S S
H H S K S F S
K S I S I
S F S
H F K F F F
K I I I I
I I S S S
S S H S
S H S K
F K F
F I I
I S
I S
S
K
_,,ddF"""Ybb,,_
,d@#@#@#@g, `"Yb,
,d#@#V``V@#@#b "b,
d@#@#I I@#@8 "b
d@#@#@#A..A@#@#P `b
8#@#@#@#@#@#@8" 8
8@#@#@#@#@#@J 8
8#@#@#@#@#P 8
Y@#@#@#@#P ,db, ,P
Y@#@#@#@) @DWB aP
"Y#@#@#b `69' aP"
"Y@#@#g,, _,dP"
`""YBBgggddP""'
Se convierte
d d ,
8 @ @ d ,
8 # # # # d _
8 @ @ @ @ @ @ ,
Y # # # # # # # ,
@ @ @ @ @ I V @ d
Y # # # # # ` # d
@ @ @ @ @ A ` @ F
" # # # # # . V # "
Y @ @ @ @ @ . @ @ "
# # # # # # A I # g "
" @ @ @ @ @ @ @ @ @ , Y
Y # # # # # # # # # b
@ @ @ P P @ @ @ @ b b
` # # ) J 8 # 8 ,
" @ b " P ` ,
" # " _
Y g Y
B , , b
B , @ d ,
g ` D b "
g 6 W , b
g 9 B ,
d ' "
d b
P _ `
" , b
" d 8
' P a 8
" P a , 8
" P P
...,?77??!~~~~!???77?<~....
..?7` `7!..
.,=` ..~7^` I ?1.
........ ..^ ?` ..?7!1 . ...??7
. .7` .,777.. .I. . .! .,7!
.. .? .^ .l ?i. . .` .,^
b .! .= .?7???7~. .>r . .=
.,.?4 , .^ 1 ` 4...
J ^ , 5 ` ?<.
.%.7; .` ., .; .=.
.+^ ., .% MML F ., ?,
P ,, J .MMN F 6 4.
l d, , .MMM! .t .. ,,
, JMa..` MMM` . .! .;
r .M# .M# .% . .~ .,
dMMMNJ..! .P7! .> . . ,,
.WMMMMMm ?^.. ..,?! .. .. , Z7` `?^.. ,,
?THB3 ?77?! .Yr . .! ?, ?^C
?, .,^.` .% .^ 5.
7, .....?7 .^ ,` ?.
`<. .= .`' 1
....dn... ... ...,7..J=!7, .,
..= G.,7 ..,o.. .? J. F
.J. .^ ,,,t ,^ ?^. .^ `?~. F
r %J. $ 5r J ,r.1 .=. .%
r .77=?4. ``, l ., 1 .. <. 4.,
.$.. .X.. .n.. ., J. r .` J. `'
.?` .5 `` .% .% .' L.' t
,. ..1JL ., J .$.?` .
1. .=` ` .J7??7<.. .;
JS.. ..^ L 7.:
`> .. J. 4.
+ r `t r ~=..G.
= $ ,. J
2 r t .;
.,7! r t`7~.. j..
j 7~L...$=.?7r r ;?1.
8. .= j ..,^ ..
r G .
.,7, j, .>=.
.J??, `T....... % ..
..^ <. ~. ,. .D
.?` 1 L .7.........?Ti..l
,` L . .% .`! `j,
.^ . .. .` .^ .?7!?7+. 1
.` . .`..`7. .^ ,` .i.;
.7<..........~<<3?7!` 4. r ` G%
J.` .! %
JiJ .`
.1. J
?1. .'
7<..%
Se convierte
. .
. .
. .
b .
. .
, .
. J . .
. % ? .
+ . 4 . .
P ^ 7 ! ? .
l ; ^ 7 .
, . ` .
d , ^ .
. M r , ,
W M , =
M M d ` .
M N J , .
? M J . M ?
T M . M a , . 7
H M . # . = . ` .
? B m ! . . . , . ^ . .
, 3 ` , J % ` ^ . , .
? 7 ,
7 ? 7 7 ?
r . , ^ ? 7 7
. r J . . ? . ? 7
, ? . % . . ` . ? . ` . ?
. ` $ . J = . < . 7 . . ?
. 7 . . . . M , ~ l . ~ !
. . 7 . . ? . M M . I . 7 ~
. . = $ ^ . 7 M M L . . ^ ~
1 5 ? d 7 M M N 1 ? ` ~
J 4 , n ? . M M ? 7 ~
L . , G . ! M M ! 5 i ! !
. , . . . # ` . . 1 ?
. . 1 X 5 t , . . . ; . . I ?
. ` ^ , . . . r 7 . , F > . . ?
7 ` ? . J . . . ? . F r . 7
< ` . S ` J , . . ! . . . t . ! 7
. ^ . . . ` ^ . . . P % . ` ?
. J j , ` . ` , . ? . 7 ` <
. ? . 7 > ` . , . 7 . . ! ` ~
. ? , r 8 ! + n o . , . . .
. , 7 . = . . . . . ^ Y .
. , 7 2 . . % . . , . r . . .
. < ~ r . , 7 ` > , .
. . ` L r . l . . . 6 4 .
. 1 T . $ ^ . . . . = . . . . . . = . `
. . . r ` = . , . ? ? J ^ % . . . , 7
~ L ~ . . t t ` J % , ^ = . . ! . ^ . !
< . . . . $ ` , J . ! ` . ~ , .
< . L . G = = 7 . ` . . . 1 7 ' , . . , ? 7 .
3 . . . ~ t J $ ' , , ` ^ ! < ! .
? . . j ? . r . . . r r . J . .
7 . . . , 7 . J L J ? L . . ^ . Z . ?
! ` , r . ~ 7 ` . . . 1 7 . ? 1
` . . % j ; = 4 ? ' ` ? ` = ? .
. . . j . . ? < ` , . 7
` . % 7 . . . 7 . ?
7 ` . . r . G < J ~ 5 ?
. . , . . . . . . ,
4 . ^ ; . t ?
. . ? . . . 4
J . . . . 1 7 . = 1 .
. r ^ ^ ` . . . ; . . ,
` ! . . : , ` ,
J . . . . 4 F ? .
i . ` , . . > . . F ^ ;
J ! ` ? ? = ` , % . .
. 7 T . ' . ,
1 ! i . . ,
. ? . D . ,
7 . ? ,
? + ` l ^ ,
1 . j C
. . ,
i 1
.
7 G ;
< %
. . %
. . J `
% '
Reglas y notas
- La entrada y la salida pueden estar en cualquier formato conveniente y codificación de caracteres siempre que sea compatible con todos los caracteres ASCII imprimibles (U + 0020 - U + 007E, LF)
- Puede suponer que la entrada contiene solo caracteres ASCII imprimibles (definidos anteriormente)
- Debes soportar arte de hasta caracteres.
- Puede suponer que la entrada está rellenada a la derecha, como una cuadrícula rectangular perfecta de caracteres.
- Use el espacio ASCII para alinear y espaciar los caracteres.
- Los caracteres pueden estar sobrealimentados (o incluso debajo) en cualquier dirección, siempre que el resultado esté correctamente alineado.
¡Feliz golf!
Respuestas:
Carbón , 2 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Toma la entrada como un literal de cadena delimitado por una nueva línea o como una matriz de cadenas. Explicación:
A
lee la entrada y la↘
emite en la dirección diagonal deseada. Versión que acepta una lista de líneas terminadas en línea en blanco de STDIN:Pruébalo en línea! El enlace es a la versión detallada del código.
fuente
Lienzo , 6 bytes.
Pruébalo aquí!
Ejemplo:
fuente
Python 3.8 (prelanzamiento) , 104 bytes
Pruébalo en línea!
-5 bytes gracias a los ovs (Python 3.8 cosas)
fuente
J ,
5645 bytes-11 bytes gracias a FrownyFrog!
Pruébalo en línea!
fuente
05AB1E ,
1812 bytesPuerto de @dzaima 's respuesta lienzo , así que asegúrese de que le upvote !!
Entrada como una lista de líneas.
Pruébalo en línea.
Explicación:
Respuesta original de
1817 bytes:Entrada como una lista de líneas.
Pruébalo en línea.
Explicación:
Ver este consejo 05AB1E mío (sección Cómo comprimir grandes números enteros? ) Para entender por qué
ŽE5
es3575
.Puede encontrar más información sobre el lienzo incorporado 05AB1E en este consejo mío.
El lienzo incorporado toma tres parámetros:
[0,7]
+
×
8
En este desafío uso las siguientes opciones:
fuente
Jalea , 26 bytes
Pruébalo en línea!
fuente
Jalea , 19 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 102 bytes
Pruébalo en línea!
Entrada y salida como lista de listas.
Explicación:
Crea una cuadrícula de espacios de 100x100. Luego recorre la entrada, configurando la entrada apropiada en la cuadrícula. El índice del carácter a configurar se calcula como
x' = length of input - 1 + y + x
yy' = y + x
.El resultado devuelto es una lista de listas de 100x100, con la salida en la esquina superior izquierda.
fuente
Ruby , 94 bytes
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #) , 153 bytes
Pruébalo en línea!
Pide una cadena y devuelve una matriz 2D de caracteres 100 x 100.
Intenté usar LINQ / Collections, pero finalmente me di por vencido.
fuente
Wolfram Language (Mathematica) , 79 bytes
Pruébalo en línea!
La entrada debe rellenarse exactamente como 100x100. La salida es una matriz de 301x301. El resultado de la rotación sónica (con el formato adecuado):
fuente