Tugas Anda adalah mengambil gambar seni ASCII dan mengeluarkannya diputar searah jarum jam sebesar 45 derajat dan diskalakan dengan faktor . Penskalaan berasal dari penggunaan pola kisi yang memperkenalkan ruang antar karakter.
Untuk menjelaskan secara visual, seorang blok akan diproses seperti:
123
456
789
menjadi
1
4 2
7 5 3
8 6
9
Karakter tidak akan diubah, sehingga kotak akan terlihat aneh setelah rotasi:
+-+
| |
+-+
menjadi
+
| -
+ +
- |
+
Untuk menjelaskan proses lebih eksplisit, output terdiri dari pola kisi berlian di mana baris atas sesuai dengan karakter kiri atas input, baris berikutnya sesuai dengan tetangga kanan dan di bawah, baris berikutnya adalah tetangga mereka, dan sebagainya sampai semua karakter ditempatkan pada kisi.
Contohnya
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
Menjadi
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""'
Menjadi
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<..%
Menjadi
. .
. .
. .
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 `
% '
Aturan dan Catatan
- Input dan output mungkin dalam format yang mudah dan pengkodean karakter selama mendukung semua karakter ASCII yang dapat dicetak (U + 0020 - U + 007E, LF)
- Anda dapat mengasumsikan input hanya berisi karakter ASCII yang dapat dicetak (didefinisikan di atas)
- Anda dapat mengasumsikan input benar-empuk, untuk menjadi kotak karakter persegi panjang yang sempurna.
- Gunakan ruang ASCII untuk menyelaraskan dan karakter spasi.
- Karakter mungkin overpadded (atau bahkan underpadded) ke arah mana pun selama hasilnya selaras.
Selamat Golf!
Jawaban:
Arang , 2 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Mengambil input baik sebagai string literal baris-tunggal tunggal atau sebagai array string. Penjelasan:
A
membaca input dan↘
output dalam arah diagonal yang diinginkan. Versi yang menerima daftar garis putus-putus dari STDIN:Cobalah online! Tautan adalah untuk mengucapkan versi kode.
sumber
Kanvas , 6 byte
Coba di sini!
Contoh:
sumber
Python 3.8 (pra-rilis) , 104 byte
Cobalah online!
-5 byte berkat ovs (Python 3.8 hal)
sumber
J ,
5645 byte-11 byte terima kasih kepada FrownyFrog!
Cobalah online!
sumber
05AB1E ,
1812 bytePort of @dzaima 's Canvas menjawab , jadi pastikan untuk membesarkan hatinya !!
Masukan sebagai daftar baris.
Cobalah online.
Penjelasan:
Asli
1817 byte jawaban:Masukan sebagai daftar baris.
Cobalah online.
Penjelasan:
Lihat ini 05AB1E ujung tambang (bagian Cara kompres bilangan bulat besar? ) Untuk memahami mengapa
ŽE5
adalah3575
.Beberapa info lebih lanjut tentang builtin 05AB1E Canvas dapat ditemukan di tip saya ini.
Canvas builtin mengambil tiga parameter:
[0,7]
+
×
,8
).Dalam tantangan ini saya menggunakan opsi berikut:
sumber
Jelly , 26 byte
Cobalah online!
sumber
Jelly , 19 byte
Cobalah online!
sumber
JavaScript (ES6), 102 byte
Cobalah online!
Input dan output sebagai daftar daftar.
Penjelasan:
Membuat kisi ruang 100x100. Kemudian loop melalui input, mengatur entri yang sesuai di kisi. Indeks karakter yang akan ditetapkan dihitung sebagai
x' = length of input - 1 + y + x
dany' = y + x
.Hasil yang dikembalikan adalah daftar daftar 100x100, dengan output di sudut kiri atas.
sumber
Ruby , 94 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 153 byte
Cobalah online!
Minta string dan mengembalikan array 2D 100 x 100 array.
Saya mencoba menggunakan LINQ / Koleksi, tetapi akhirnya saya menyerah.
sumber
Bahasa Wolfram (Mathematica) , 79 byte
Cobalah online!
Input harus diisi dengan tepat 100x100. Outputnya adalah array dari 301x301. Hasil memutar sonik (dengan pemformatan yang tepat):
sumber