Trump membutuhkan dinding yang dibangun dan Anda akan melakukannya! Untuk membangun temboknya secara paling efisien, saya telah membuat pola yang sederhana dan dapat diulang untuk Anda gunakan:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump akan memberi tahu Anda berapa banyak segmen dinding yang ia butuhkan dan Anda akan membangunnya agar terlihat seperti ini.
Berikut polanya:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
Input akan selalu berupa bilangan bulat> 0.
Kasus uji:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Karena Anda perlu melakukan ini dengan cepat, tulislah program sesingkat mungkin!
Jika itu membantu, saya menulis tantangan terlebih dahulu, judul terakhir;)
JavaScript (ES6),
116115 byteMenyimpan satu byte berkat @Neil !
Penjelasan
Hampir sama dengan metode CJam @Mauris , tetapi tanpa pemetaan karakter.
Bagian dinding dalam format:
karena jika Anda mengulangi setiap baris 15 kali Anda mendapatkan:
dan setelah mengiris hanya 15 karakter terakhir yang Anda dapatkan:
Tidak disatukan
Uji
Tampilkan cuplikan kode
sumber
.slice(-15)
sebagai gantinya?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 byte
Bermain golf yang cukup bisa dilakukan.Matikan cetakan cantik dan kosongkan output untuk hasil yang lebih baik. Coba di sini! . Juga, gunakan ini untuk menguji nomor arbitrer dengan lebih mudah.Saya akan menambahkan penjelasan nanti.
sumber
Haskell,
116118108 byteContoh penggunaan:
Ini menggunakan strategi yang sama dengan jawaban lain di sini: setiap baris dinding adalah satu siklus pola, misalnya "-" (tanda hubung + spasi) untuk baris terakhir kedua. Ulangi setiap pola, ambil 15 karakter untuk mendapatkan satu segmen dinding, ulangi lagi dan ambil
15*n
karakter untukn
segmen.Sunting: @Mauris ditemukan 10 byte. Terima kasih!
sumber
Utilitas Bash + Linux (
247186180 byte)Karena karakter yang tidak patut telah digunakan dengan murah hati dalam pembuatan skrip di atas, inilah hexdump:
sumber
PowerShell,
103100 karakter (105 byte pada disk, 102 tanpa BOM)Hampir sama dengan metode @ user81655 .
Versi tidak disatukan
Contoh penggunaan
sumber
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 karakter)Versi Tidak Serigala
[7 karakter disimpan dengan mengikuti saran Blackhole. ]
Versi lain dengan byte lebih sedikit tetapi lebih banyak karakter
PHP 5.4, (176 karakter, 178 byte)
Cukup ganti 15 instance m-dash dengan satu dash dengan fungsi str_repeat
sumber
$s
, gunakan langsung di loop Anda:foreach([…,…] as $d)
2) Hapus ruang kecuali sebelum$d
:foreach(… as$d)
3) Gunakan baris baru sebagai ganti"\n"
.C, 148 byte
Skor mengecualikan baris baru yang tidak perlu sebelum
f(n)
dimasukkan untuk kejelasan.angka ajaib dalam
p
menyandikan karakter untuk dinding di basis 4, yang direkonstruksi dari string" -|_"
masing-masing 0,1,2,316843009
dalam hex adalah0x1010101
. ini digunakan untuk baris dengan-
di dalamnya.Karena
_
dikodekan oleh3
, intinya dapat dikodekan hanya sebagai-1
, yang merupakan angka dengan semua bit diatur ke1
.sumber
#define q
dan hanya hardcoding nilai-nilai.Vitsy , 121 byte
Cara saya melakukan ini adalah dengan mengakses setiap baris satu per satu waktu input, memberi saya tumpukan dengan isi setiap baris. Kemudian, saya menampilkan satu baris sekaligus. Jika ada yang ingin saya memberikan penjelasan yang lebih mendalam, tanyakan saja (saya sedang membuka hadiah, jadi ...).
Cobalah online!
sumber
PHP5.5,
182172 byte168 byteberdasarkan jawaban @ kuldeep.kamboj, yang sebenarnya 212 byte saat saya menulis ini tetapi 182 karakter. Saya berharap temboknya sedikit lebih tinggi, maka saya bisa melakukan beberapa optimasi lagi ;-)
yang ini adalah 168 byte, terima kasih kepada @ JörgHülsermann
Yang ini adalah 172 byte
Yang ini 182 byte :-)
versi tanpa ungolfed
sumber
$x=$r(' ',3);
dapat disingkat menjadi$x=' ';
as$z
Python 3,
132122120 byteTidak Disatukan:
sumber
)for s in[
...Python 2, (161 karakter, 191 byte)
sumber
SOGL V0.12 , 32 byte
Coba Di Sini!
Penjelasan:
sumber
Vim, 90 kunci
Dengan asumsi input ada dalam buffer dengan sendirinya yang berikut ini akan melakukan pekerjaan (baris baru untuk keterbacaan)
dimana
^M
a return,^[
adalah escape,^K
adalah ctrl+kdan^V
sedang ctrl+v.Ini sangat mungkin diturunkan sedikit, karena mungkin ada banyak cara yang lebih baik untuk menghasilkan pola.
sumber
Java 11,
236235231229 byteCobalah online.
CATATAN: Java 11 belum pada TIO, jadi
String.repeat(int)
telah ditiru denganrepeat(String,int)
(untuk byte-count yang sama).Penjelasan:
sumber
File Powershell +, 92 byte
simpan PowerShell ke
get-trumpwall.ps1
(40 byte)simpan file data dengan nama
f
dan data hanya mengandung simbol Unicode dan Linux LF (52 byte):hex dump:
Contoh penggunaan
sumber