Ihre Aufgabe ist es, ein ASCII-Kunstbild aufzunehmen und im Uhrzeigersinn um 45 Grad gedreht und um den Faktor √ skaliert auszugeben . Die Skalierung ergibt sich aus der Verwendung eines Gittermusters, bei dem ein Leerzeichen zwischen den Zeichen eingefügt wird.
Um es visuell zu erklären, würde ein Block folgendermaßen verarbeitet:
123
456
789
wird
1
4 2
7 5 3
8 6
9
Zeichen werden nicht transformiert, sodass Kästchen nach dem Drehen seltsam aussehen:
+-+
| |
+-+
wird
+
| -
+ +
- |
+
Um den Vorgang genauer zu erläutern, besteht die Ausgabe aus einem Rautengittermuster, wobei die obere Reihe dem Zeichen oben links der Eingabe entspricht, die nächste Reihe der rechten und der unteren Nachbarn, die nächste Reihe den Nachbarn usw. entspricht bis alle Charaktere auf dem Gitter platziert wurden.
Beispiele
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
Wird
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""'
Wird
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<..%
Wird
. .
. .
. .
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 `
% '
Regeln und Hinweise
- Die Ein- und Ausgabe kann in jedem beliebigen Format und in jeder beliebigen Zeichenkodierung erfolgen, sofern alle druckbaren ASCII-Zeichen (U + 0020 - U + 007E, LF) unterstützt werden.
- Sie können davon ausgehen, dass die Eingabe nur druckbare ASCII-Zeichen enthält (wie oben definiert).
- Sie müssen Kunst bis zu Zeichen unterstützen.
- Sie können davon ausgehen, dass die Eingabe mit einem Rechtspolster versehen ist, um ein perfektes rechteckiges Zeichenraster zu erhalten.
- Wenn Sie möchten, können Sie auch davon ausgehen, dass die Eingabe mit genau Zeichen aufgefüllt ist .
- Verwenden Sie das ASCII-Leerzeichen, um Zeichen auszurichten und ein Leerzeichen zu setzen.
- Zeichen können in jede Richtung überfüllt (oder sogar unterfüllt) werden, solange das Ergebnis korrekt ausgerichtet ist.
Viel Spaß beim Golfen!
Antworten:
Holzkohle , 2 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Nimmt Eingaben entweder als einzelnes durch Zeilenumbrüche getrenntes Zeichenfolgenliteral oder als Array von Zeichenfolgen entgegen. Erklärung:
A
Liest den Eingang und↘
gibt ihn in der gewünschten diagonalen Richtung aus. Version, die eine mit Leerzeilen abgeschlossene Liste von Zeilen von STDIN akzeptiert:Probieren Sie es online! Link ist eine ausführliche Version des Codes.
quelle
Canvas , 6 Bytes
Probieren Sie es hier aus!
Beispiel:
quelle
Python 3.8 (Vorabversion) , 104 Byte
Probieren Sie es online!
-5 Bytes dank ovs (Python 3.8 Dinge)
quelle
J ,
5645 Bytes-11 Bytes dank FrownyFrog!
Probieren Sie es online!
quelle
05AB1E ,
1812 BytesPort of @dzaimas Canvas Antwort , also stelle sicher, dass du ihn positiv bewertest !!
Eingabe als Liste von Zeilen.
Probieren Sie es online aus.
Erläuterung:
Original
1817 Bytes Antwort:Eingabe als Liste von Zeilen.
Probieren Sie es online aus.
Erläuterung:
Sehen Sie sich meinen Tipp 05AB1E (Abschnitt Wie komprimiere ich große ganze Zahlen? ) An, um zu verstehen, warum dies so
ŽE5
ist3575
.Weitere Informationen zum eingebauten 05AB1E Canvas finden Sie in meinem Tipp.
Das Canvas-Builtin akzeptiert drei Parameter:
[0,7]
für die Richtungen, für die wir eine oder mehrere verwenden können. Es gibt auch einige spezielle Optionen , die einen bestimmten Charakter erfordern (+
,×
,8
).Bei dieser Herausforderung verwende ich die folgenden Optionen:
quelle
Gelee , 26 Bytes
Probieren Sie es online!
quelle
Jelly , 19 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 102 Byte
Probieren Sie es online!
Ein- und Ausgabe als Listenliste.
Erläuterung:
Erstellt ein Raster von 100 x 100 Leerzeichen. Durchläuft dann die Eingabe und setzt den entsprechenden Eintrag im Raster. Der Index des einzustellenden Zeichens wird mit
x' = length of input - 1 + y + x
und berechnety' = y + x
.Das zurückgegebene Ergebnis ist eine 100x100-Liste mit Listen. Die Ausgabe befindet sich in der oberen linken Ecke.
quelle
Ruby , 94 Bytes
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) , 153 Byte
Probieren Sie es online!
Fordert eine Zeichenfolge an und gibt ein 2D-Zeichen-Array von 100 x 100 zurück.
Ich habe versucht, LINQ / Collections zu verwenden, aber ich gebe schließlich auf.
quelle
Wolfram Language (Mathematica) , 79 Bytes
Probieren Sie es online!
Die Eingabe sollte mit genau 100x100 aufgefüllt werden. Die Ausgabe ist ein Array von 301x301. Das Ergebnis der Rotation von Sonic (mit der richtigen Formatierung):
quelle