Mengingat dua input - salah satu dari mereka non-kosong dicetak ASCII string (termasuk ruang, tidak termasuk baris baru), makhluk yang lain dari dua yang berbeda, nilai-nilai yang konsisten pilihan Anda ( 1 / 0
, l / r
, left / right
, dll) - output ASCII art pesawat spanduk string, menunjuk ke kiri atau kanan. Untuk konsistensi, saya akan menggunakan left
dan right
sepanjang deskripsi tantangan ini.
Pesawat adalah |-DI>-/
( left
) atau \-<ID-|
( right
). Karena spanduknya jelas, itu terdiri dari karakter string input yang dipisahkan oleh spasi, baik kiri-ke-kanan ( left
) atau kanan-ke-kiri ( right
), dan dikelilingi oleh kotak bentuk
/--/
---< <
\--\
atau
\--\
> >---
/--/
Catatan harus ada satu ruang antara awal / akhir pesan dan >
, <
karakter.
Sebagai contoh, berikut adalah pesan HAPPY BIRTHDAY!
dan arahannya left
:
/-------------------------------/
|-DI>-/---< H A P P Y B I R T H D A Y ! <
\-------------------------------\
Ini pesan PPCG
dan arahnya right
. Perhatikan bahwa huruf-huruf tersebut muncul "mundur" ketika dilihat dari sisi spanduk ini:
\---------\
> G C P P >---\-<ID-|
/---------/
Aturan
- Leading atau trailing newlines atau whitespace semuanya opsional, asalkan karakter itu sendiri berbaris dengan benar.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online sehingga orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
eval
- Memasukkan sebuah program yang menghasilkan bidang yang menghadap ke kiri untuk kiri, dan sebuah program yang menghasilkan bidang yang menghadap ke kanan untuk kanan.Jawaban:
JavaScript (ES6),
141138 byteString dan arah adalah input melalui sintaks currying.
'/\n|-DI>-/---< '
untuk kiri,'/\n|-DI<-\\---> '
kanan.Tampilkan cuplikan kode
sumber
eval
... cukup berikan sumber fungsi kiri dan kanan sebagai dua nilai pilihan Anda. (Saya pikir ada meta mengenai hal ini tetapi saya tidak dapat menemukannya.)eval
"Trik" akan menjadi celah dalam roh ini, bahkan jika tidak secara eksplisit dinyatakan. Namun, jawaban di sini agak pintar.eval
sebagai jawaban serius . Solusi untuk tantangan di masa depan seperti ini mungkin untuk memasukkan input sebagai bagian dari jumlah byte.Perl 5 , 149 +1 (-p) = 150 byte
Cobalah online!
Input dua baris. Pertama adalah pesannya. Kedua adalah 0 untuk kiri, 1 untuk kanan.
sumber
V ,
73, 65 byteCobalah online!
Bukan skor terbesar, tapi itu karena hampir setengahnya berasal dari membalikkan output.
Hexdump:
Mengambil string sebagai input ke buffer, dan arah
0
untuk kiri dan1
kanan sebagai argumen baris perintah.sumber
05AB1E , 63 byte
Cobalah online!
Berbasis bug yang mungkin diperbaiki di masa depan.
sumber
0
di baris kedua menjadi a1
.Arang ,
44403935 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Input pertama adalah 1 untuk kanan dan 0 untuk kiri, kedua adalah string banner. Sunting:
Disimpan 1 byte dengan menggunakanReflectButterfly(:Up)
karenasaat ini memiliki bug posisi kursor, tapi saya menyimpan 4 byte lebih lanjut dengan membalik arah cetak, dan sekarang tidak masalah yang saya gunakan.ReflectButterfly(:Down)
3834Versi 32 byte jika mirroring banner diizinkan:Cobalah online! Tautan adalah untuk mengucapkan versi kode. Input pertama adalah 0 untuk kanan dan 1 untuk kiri. Penjelasan:
Cetak pesawat.
Cetak bagian atas kotak (perhatikan spasi tambahan).
Jika input kedua bukan nol, balikkan arah cetak, jika tidak mencerminkan bidang dan kotak.
Cetak pesan dengan spasi tambahan (note trailing space). Kursor berada di ujung kotak dari pesawat sehingga pesan perlu dibalik.
Refleksikan untuk mendapatkan bagian bawah kotak.
sumber
Jelly ,
6865 byteCobalah online!
Membawa 1 ke kanan, 0 untuk kiri.
-3 byte terima kasih kepada @JonathanAllan ( grr saya selalu lupa
AB+
melakukan hal yang sama sepertiB+@A
)sumber
³K“|-DI>-/---< “ < ”j
menyimpan satu byte;LḤ‘”-x⁾//jṭ⁶x11¤Fµ,Ñj¢œs3U⁴¡YÑ⁴¡
menyimpan 2 lainnya dengan cara yang sama.Arang , 56 byte
-8 Bytes terima kasih sepenuhnya kepada manusia dan Erik the Outgolfer!
Cobalah online!
Memperbaiki kasus-kasus yang disebut Dzaima memakan waktu cukup banyak pada jumlah byte. 36 byte jika kita diizinkan untuk membalik karakter seperti
<
dan/
.sumber
' '.join(s)
berfungsi. Tentunya itu bisa digunakan di Arang?Join
bekerja pada string juga.' '.join
di Charcoal. Saya akan menghargai Anda berdua.SOGL V0.12 ,
554743 byteCoba Di Sini!
0 untuk kiri dan 1 untuk kanan
sumber
Python 2 ,
137136133 byteCobalah online!
1
untuk kanan dan0
kirisumber
1-2*d
dengan-d|1
(negated
xor1
).*list('></\\<>')[d::2]
PHP, 175 byte
Jalankan dengan
-nr
, argumen pertama =0
untuk menghadap ke kanan atau1
untuk kiri dan argumen kedua = teksatau coba online .
sumber
Perl 5 , 126 byte
Kode 124 byte + 2 untuk
-pl
.Cobalah online!
sumber
Corea , 51 byte
Cobalah online!
Penjelasan
Program ini terdiri dari beberapa bagian:
1: Inisialisasi
2: teks mentah
Teks berikut ini dikeluarkan ke bidang konten:
3: postamble
sumber
Excel VBA, 198 Bytes
Fungsi jendela langsung VBE anonim yang mengambil input sebagai string dari
[A1]
dan int dari jarak di[B1]
mana1
menunjukkan bahwa pesawat berada di sebelah kiri dan0
menunjukkan bahwa pesawat berada di sebelah kanan.sumber
Google Sheets, 210 Bytes
Fungsi lembar kerja anonim yang mengambil input input sebagai string dari [A1] dan int dari rentang [B1] di mana 1 menunjukkan bahwa pesawat di sebelah kiri dan 0 menunjukkan bahwa pesawat di sebelah kanan.
sumber