Twoim zadaniem jest, aby zrobić zdjęcie sztuki ASCII i wyjście jest obrócony w prawo o 45 stopni i skalowane przez czynnik . Skalowanie pochodzi z użycia wzoru siatki, który wprowadza odstępy między postaciami.
Aby to wyjaśnić wizualnie, blok byłby przetwarzany w następujący sposób:
123
456
789
staje się
1
4 2
7 5 3
8 6
9
Postacie nie zostaną przekształcone, więc pola będą wyglądać dziwnie po obrocie:
+-+
| |
+-+
staje się
+
| -
+ +
- |
+
Aby wyjaśnić proces bardziej precyzyjnie, dane wyjściowe składają się z rombowej siatki, w której górny rząd odpowiada górnemu lewemu znakowi wejścia, następny rząd odpowiada prawemu i poniżej sąsiadów, następny rząd to sąsiedzi i tak dalej dopóki wszystkie postacie nie zostaną umieszczone na kratce.
Przykłady
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
Staje się
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""'
Staje się
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<..%
Staje się
. .
. .
. .
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 `
% '
Zasady i uwagi
- Dane wejściowe i wyjściowe mogą mieć dowolny dogodny format i kodowanie znaków, o ile obsługuje wszystkie drukowalne znaki ASCII (U + 0020 - U + 007E, LF)
- Możesz założyć, że dane wejściowe zawierają tylko drukowalne znaki ASCII (zdefiniowane powyżej)
- Możesz założyć, że dane wejściowe są wyściełane prawym przyciskiem, tak aby była idealną prostokątną siatką znaków.
- Użyj spacji ASCII do wyrównania i spacji znaków.
- Znaki mogą być wypełnione (lub nawet wypełnione) w dowolnym kierunku, o ile wynik jest odpowiednio wyrównany.
Wesołego golfa!
Odpowiedzi:
Węgiel , 2 bajty
Wypróbuj online! Link jest do pełnej wersji kodu. Pobiera dane wejściowe jako pojedynczy ciąg znaków rozdzielany znakiem nowej linii lub jako tablicę ciągów znaków. Objaśnienie:
A
odczytuje dane wejściowe i↘
wysyła je w pożądanym kierunku po przekątnej. Wersja, która przyjmuje zakończoną pustą linią listę linii ze STDIN:Wypróbuj online! Link jest do pełnej wersji kodu.
źródło
Płótno , 6 bajtów
Wypróbuj tutaj!
Przykład:
źródło
Python 3.8 (wersja wstępna) , 104 bajty
Wypróbuj online!
-5 bajtów dzięki ovs (Python 3.8 rzeczy)
źródło
J ,
5645 bajtów-11 bajtów dzięki FrownyFrog!
Wypróbuj online!
źródło
05AB1E ,
1812 bajtówOdpowiedź Porta @dzaima na Canvas , więc pamiętaj, aby go zagłosować !!
Wprowadź jako listę linii.
Wypróbuj online.
Wyjaśnienie:
Oryginalna odpowiedź na
18bajtów:Wprowadź jako listę linii.
Wypróbuj online.
Wyjaśnienie:
Zobacz moją wskazówkę 05AB1E (rozdział Jak kompresować duże liczby całkowite? ), Aby zrozumieć, dlaczego tak
ŽE5
jest3575
.Więcej informacji na temat wbudowanego płótna 05AB1E można znaleźć w tym poradniku.
Wbudowane płótno ma trzy parametry:
[0,7]
+
×
8
W tym wyzwaniu korzystam z następujących opcji:
źródło
Galaretka , 26 bajtów
Wypróbuj online!
źródło
Galaretka , 19 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 102 bajty
Wypróbuj online!
Dane wejściowe i wyjściowe jako lista list.
Wyjaśnienie:
Tworzy siatkę spacji o wymiarach 100 x 100. Następnie zapętla dane wejściowe, ustawiając odpowiedni wpis w siatce. Indeks znaku do ustawienia jest obliczany jako
x' = length of input - 1 + y + x
iy' = y + x
.Zwrócony wynik to lista 100 x 100, z danymi wyjściowymi w lewym górnym rogu.
źródło
Ruby , 94 bajty
Wypróbuj online!
źródło
C # (interaktywny kompilator Visual C #) , 153 bajty
Wypróbuj online!
Pyta o ciąg znaków i zwraca tablicę 2D char 100 x 100.
Próbowałem użyć LINQ / Collections, ale w końcu się poddaję.
źródło
Wolfram Language (Mathematica) , 79 bajtów
Wypróbuj online!
Wejście powinno być wypełnione dokładnie 100x100. Dane wyjściowe to tablica 301x301. Wynik rotacji dźwięku (z odpowiednim formatowaniem):
źródło