Anda mungkin tahu Alan Walker dari lagu populernya Faded. Sekarang "pengikut" nya disebut Pejalan Kaki dan mereka memiliki logo, ini adalah versi yang disederhanakan:
\\
\\ //\\
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // //\\ \\ //
\\// // \\ \\//
// // \\ \\
//\\ // \\ //\\
\\// \\// \\
\\
Tujuan dari tantangan ini adalah untuk mencetak logo ini.
ATURAN:
- Jika Anda mengembalikan daftar string dari fungsi sesuai standar meta, berikan footer yang mencetaknya ke layar.
- Semua karakter dari logo di atas harus ada di sana. Tidak ada jalan pintas!
- Jumlah byte terpendek menang!
Jawaban:
Arang ,
31302927 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sedihnya
Copy
tidak melakukan apa yang saya inginkan dalam kasus ini, jadi saya harus mengulang. Penjelasan:Gambar semuanya dua kali, tetapi dengan kursor mulai satu karakter ke kanan untuk kedua kalinya.
Gambarlah W utama dari kanan ke kiri, tetapi tinggalkan kursor di dekat V. terbalik
Gambar V. terbalik
sumber
F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³
.JavaScript (ES6),
172139 byteBagaimana?
Logo pada dasarnya terdiri dari kelompok ruang diikuti oleh salah satu dari keduanya
//
atau\\
dan umpan baris.Spasi dan pola akhir dikodekan menggunakan nilai basis-36:
0
untuk//
,1
untuk\\
.Semuanya dapat dikodekan dengan cara ini dengan satu basis-36 digit kecuali baris terakhir yang terdiri dari 30 spasi diikuti oleh
\\
, mengarah ke 30 * 2 + 1 = 61 =1p
di basis-36. Inip
harus ditafsirkan sebagai 12 spasi diikuti\\
tetapi pola ini tidak muncul di mana pun. Jadi, kita bisa menangani case khusus ini dengan biaya 2 byte tambahan dalam ekspresi reguler:/.p?/
.Versi pertama, 186 byte
NB: Yang ini dikirim sebelum pembaruan logo.
Tampilkan cuplikan kode
sumber
brainfuck , 579 byte
Cobalah online!
Hasilkan konstanta
47 92 32 10
dalam memori, lalu pilih dan keluarkan sesuai kebutuhan.sumber
SOGL V0.12 , 38 byte
Coba Di Sini!
sumber
Bubblegum ,
7776 byteHexdump:
Cobalah online!
Ambang permen karet. : P
sumber
/// , 166 byte
Cobalah online!
sumber
C (gcc) , 377 byte
Cobalah online!
sumber
Python 2 , 197 byte
Cobalah online!
Menggunakan logika dari jawaban JS.
sumber
Haskell,
161160 byteCobalah online!
Spasi sebelumnya
\\
dikodekan sebagai huruf kecil dan sebelumnya//
sebagai huruf besar dengan jumlah spasi adalah nilai ASCII minus 96 (atau 64). Nol spasi adalah`
/@
. Spasi dari setiap baris disimpan dalam urutan terbalik, karena habis oleh lipatan-kanan.sumber
Arang , 51 byte
Cobalah online!
Arang , 50 byte
Cobalah online!
sumber
Arang ,
5031 byteCobalah online! Tautan adalah untuk versi verbose.
Saya mencoba. (Juga, saya akan menunjukkan bahwa saya melakukan ini sepenuhnya sendiri, bahkan jika itu terlihat agak mirip dengan yang lain. [Shiz, saya melakukannya lagi. Ini masih berbeda, omong-omong.: P])
sumber
Jelly , 65 byte
Cobalah online!
Mengembalikan daftar karakter. TIO link memiliki footer untuk mencetak pada garis yang berbeda
sumber
PHP, 186 byte:
Kedua versi membutuhkan PHP 5.5 atau yang lebih baru.
Jalankan dengan
-nr
atau coba onlinekompresi ruang memberikan alternatif terpendek:
(double backslash dipetakan ke
0
, double slash tof
, sapses dikompresi ke digit)PHP 7.1 menghasilkan peringatan; ganti
+$c
dengan$c>0
untuk memperbaiki.base 64 bitmap yang dikodekan ( 187 byte ):
(ruang dipetakan ke
00
, baris baru ke01
, garis miring terbalik ganda10
dan garis miring ganda11
, kemudian digabungkan masing-masing 3 "piksel" menjadi satu karakter, ditambahkan1
dan dikonversi dari biner ke ASCII)(linebreak pertama untuk kenyamanan membaca; yang lain sangat penting)
sumber
Bubblegum , 74 byte
Cobalah online!
sumber
PowerShell ,
221220 byteCobalah online!
Pendekatan yang cukup naif ( dan 50 byte lebih buruk daripada jawaban JS, ngeri ). Adakah yang tahu cara melakukan multiple
-replace
di PowerShell?-1 byte terima kasih kepada Veskah.
sumber
Python 2 , 180 byte
Cobalah online!
Pengkodean adalah basis 36:
dan sebaliknya,
sumber
C # (Visual C # Interactive Compiler) , 122 byte (121 karakter)
Cobalah online!
Penjelasan
Setiap bagian dari logo hanya 0+ spasi dengan a
\\
atau a//
di akhir, plus mungkin baris baru. Ada 52 di antaranya. Kami kemudian menyandikan setiap segmen menjadi karakter:Ambil jumlah spasi di setiap segmen, lalu tambahkan 2 ke nomor itu.
Bit menggeser nomor ke kiri 2 kali.
Jika segmen berakhir dengan
//
, bit-bijaksana ATAU nomor per satu.Jika segmen berakhir dengan baris baru, bit-bijaksana ATAU nomor dengan dua.
Ambil nomornya, dan masukkan ke char.
Ulangi untuk setiap segmen.
Berikut adalah semua 52 segmen dan nilai numerik yang disandikan menjadi:
sumber
j>>2
->j/4
string.Concat
sini agar valid ...C (gcc) ,
144140139 byte-4 bytes berkat ceilingcat .
Setiap karakter dalam string mengkodekan sejumlah spasi untuk digunakan sebelum string tertentu. Jika huruf kecil (atau backtick), maka string adalah "\", dan jika huruf besar atau @, itu "//". Spasi menandakan baris baru.
Cobalah online!
sumber