Sua tarefa é pegar uma imagem artística ASCII e produzi-la girada no sentido horário 45 graus e dimensionada por um fator de . A escala vem do uso de um padrão de treliça que introduz espaço entre os caracteres.
Para explicá-lo visualmente, um bloco seria processado como assim:
123
456
789
torna-se
1
4 2
7 5 3
8 6
9
Os caracteres não serão transformados, portanto, as caixas parecerão estranhas após a rotação:
+-+
| |
+-+
torna-se
+
| -
+ +
- |
+
Para explicar o processo mais explicitamente, a saída consiste em um padrão de treliça de diamante em que a linha superior corresponde ao caractere superior esquerdo da entrada, a próxima linha corresponde aos vizinhos direito e abaixo, a próxima linha é esses vizinhos e assim por diante até que todos os caracteres tenham sido colocados na treliça.
Exemplos
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
Torna-se
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""'
Torna-se
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<..%
Torna-se
. .
. .
. .
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 `
% '
Regras e Notas
- A entrada e a saída podem estar em qualquer formato conveniente e codificação de caracteres, desde que sejam compatíveis com todos os caracteres ASCII imprimíveis (U + 0020 - U + 007E, LF)
- Você pode assumir que a entrada contém apenas caracteres ASCII imprimíveis (definidos acima)
- Você pode supor que a entrada é preenchida com o botão direito, como uma grade retangular perfeita de caracteres.
- Use o espaço ASCII para alinhar e espaçar caracteres.
- Os caracteres podem ficar em excesso (ou mesmo em excesso) em qualquer direção, desde que o resultado esteja alinhado corretamente.
Golfe feliz!
Respostas:
Carvão , 2 bytes
Experimente online! Link é a versão detalhada do código. Recebe a entrada como uma única string literal delimitada por nova linha ou como uma matriz de strings. Explicação:
A
lê a entrada e a↘
produz na direção diagonal desejada. Versão que aceita uma lista terminada de linhas em branco de STDIN:Experimente online! Link é a versão detalhada do código.
fonte
Tela , 6 bytes
Experimente aqui!
Exemplo:
fonte
Python 3.8 (pré-lançamento) , 104 bytes
Experimente online!
-5 bytes graças ao ovs (coisas do Python 3.8)
fonte
J ,
5645 bytes-11 bytes graças ao FrownyFrog!
Experimente online!
fonte
05AB1E ,
1812 bytesPorto de @dzaima 's Canvas , por isso não deixe de votar nele !!
Insira como uma lista de linhas.
Experimente online.
Explicação:
Resposta original de
1817 bytes:Insira como uma lista de linhas.
Experimente online.
Explicação:
Veja este 05AB1E ponta do meu (seção Como comprimir grandes inteiros? ) Para entender por que
ŽE5
é3575
.Mais algumas informações sobre o 05AB1E Canvas embutido podem ser encontradas nesta dica.
O Canvas integrado usa três parâmetros:
[0,7]
+
×
8
Neste desafio, eu uso as seguintes opções:
fonte
Geléia , 26 bytes
Experimente online!
fonte
Geléia , 19 bytes
Experimente online!
fonte
JavaScript (ES6), 102 bytes
Experimente online!
Entrada e saída como lista de listas.
Explicação:
Cria uma grade de espaços 100x100. Em seguida, percorre a entrada, configurando a entrada apropriada na grade. O índice do caractere a ser definido é calculado como
x' = length of input - 1 + y + x
ey' = y + x
.O resultado retornado é uma lista de 100x100 de listas, com a saída no canto superior esquerdo.
fonte
Ruby , 94 bytes
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 153 bytes
Experimente online!
Solicita uma string e retorna um array 2D de 100 x 100.
Tentei usar o LINQ / Collections, mas acabei desistindo.
fonte
Wolfram Language (Mathematica) , 79 bytes
Experimente online!
A entrada deve ser preenchida exatamente como 100x100. A saída é uma matriz de 301x301. O resultado da rotação sônica (com formatação adequada):
fonte