Votre tâche consiste à prendre une image d'art ASCII et à la faire pivoter de 45 degrés dans le sens des aiguilles d'une montre et à l'échelle d'un facteur . La mise à l'échelle provient de l'utilisation d'un modèle en treillis qui introduit un espace entre les caractères.
Pour l'expliquer visuellement, un bloc serait traité comme suit:
123
456
789
devient
1
4 2
7 5 3
8 6
9
Les caractères ne seront pas transformés, donc les boîtes seront étranges après la rotation:
+-+
| |
+-+
devient
+
| -
+ +
- |
+
Pour expliquer le processus de manière plus explicite, la sortie se compose d'un motif en treillis en losanges où la ligne supérieure correspond au caractère supérieur gauche de l'entrée, la ligne suivante correspond aux voisins droit et inférieur, la ligne suivante est ces voisins, etc. jusqu'à ce que tous les personnages aient été placés sur le réseau.
Exemples
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
Devient
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""'
Devient
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<..%
Devient
. .
. .
. .
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 `
% '
Règles et notes
- L'entrée et la sortie peuvent être dans n'importe quel format et encodage de caractères pratiques tant qu'elles prennent en charge tous les caractères ASCII imprimables (U + 0020 - U + 007E, LF)
- Vous pouvez supposer que l'entrée ne contient que des caractères ASCII imprimables (définis ci-dessus)
- Vous pouvez supposer que l'entrée est complétée à droite, comme une parfaite grille rectangulaire de caractères.
- Utilisez l'espace ASCII pour aligner et espacer les caractères.
- Les caractères peuvent être sur-rembourrés (ou même sous-rembourrés) dans n'importe quelle direction tant que le résultat est correctement aligné.
Bon golf!
Réponses:
Fusain , 2 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Prend l'entrée comme un littéral de chaîne délimité par une nouvelle ligne ou comme un tableau de chaînes. Explication:
A
lit l'entrée et la↘
sort dans la direction diagonale souhaitée. Version qui accepte une liste de lignes terminées par une ligne vierge de STDIN:Essayez-le en ligne! Le lien est vers la version détaillée du code.
la source
Canevas , 6 octets
Essayez-le ici!
Exemple:
la source
Python 3.8 (pré-version) , 104 octets
Essayez-le en ligne!
-5 octets grâce aux ovs (choses Python 3.8)
la source
J ,
5645 octets-11 octets grâce à FrownyFrog!
Essayez-le en ligne!
la source
05AB1E ,
1812 octetsPort de la réponse Canvas de @dzaima , alors assurez-vous de lui donner un vote positif !!
Saisie sous forme de liste de lignes.
Essayez-le en ligne.
Explication:
Réponse originale de
1817 octets:Saisie sous forme de liste de lignes.
Essayez-le en ligne.
Explication:
Voir cette astuce de mes 05AB1E (section Comment compresser les grands entiers? ) Pour comprendre pourquoi
ŽE5
est3575
.Vous trouverez plus d'informations sur la fonction intégrée 05AB1E Canvas dans cette astuce.
La fonction intégrée Canvas prend trois paramètres:
[0,7]
+
×
8
).Dans ce défi, j'utilise les options suivantes:
la source
Gelée , 26 octets
Essayez-le en ligne!
la source
Gelée , 19 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 102 octets
Essayez-le en ligne!
Entrée et sortie sous forme de liste de listes.
Explication:
Crée une grille d'espaces 100x100. Boucle ensuite l'entrée, définissant l'entrée appropriée dans la grille. L'index du caractère à définir est calculé comme
x' = length of input - 1 + y + x
ety' = y + x
.Le résultat renvoyé est une liste de listes 100x100, avec la sortie dans le coin supérieur gauche.
la source
Rubis , 94 octets
Essayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) , 153 octets
Essayez-le en ligne!
Demande une chaîne et renvoie un tableau de 100 x 100 caractères 2D.
J'ai essayé d'utiliser LINQ / Collections, mais j'ai finalement abandonné.
la source
Wolfram Language (Mathematica) , 79 octets
Essayez-le en ligne!
L'entrée doit être complétée exactement comme 100x100. La sortie est un tableau de 301x301. Le résultat de la rotation sonore (avec un formatage approprié):
la source