Anda harus menulis program atau fungsi dalam bahasa apa pun yang menghasilkan pola ini:
~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~
|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~||
|||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~||||
|||||~|||||||||||||||||||||||||||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||||||||||||||||||||||||||~||||||
|||||||~|||||||||||||||||||||||||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||||||||||||||||||||||||~||||||||
|||||||||~|||||||||||||||||||||||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||~|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~|~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|||~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~|||||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||||||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~|||||||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||||||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~|||||||||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||||||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
Outputnya terdiri dari 20 baris masing-masing 61 karakter.
Aturan
- Celah standar dilarang
- Mungkin ada satu trailing newline di akhir output
- Mungkin tidak ada spasi spasi tambahan di baris output mana pun
Tanpa trailing newline, md5 checksum dari output adalah fde4e3b4606bf9f8c314131c93988e96
.
Dengan trailing newline, checksum md5 dari output adalah 1f0b43db4fec6594be202c8339024cb7
.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
Jawaban:
C (gcc) ,
97828180 byteGolf 15 byte setelah belajar yang
abs
merupakan builtin di C, byte tambahan terima kasih kepada Rogem untuk menunjukkan bahwa deklarasi variabel saya dapat dipindahkan ke fungsi, dan byte lain berkat ceilingcat untuk menyarankanx=31;--x+31
alih-alihx=-31;++x<31
.Cobalah online!
Ini menghasilkan dengan baris baru tambahan. Fungsi
f
melakukan keluaran.Penjelasan
Outputnya dapat dinyatakan sebagai grafik.
(
+
S hanya ditampilkan untuk tujuan penjelasan dan mewakili sumbu.)Persamaan grafik ini adalahy=abs(10−abs(x)) seperti yang dapat dilihat di sini dalam tautan ini ke grafik Desmos .
Secara fungsi
f
, kami memiliki dua for-loop yang berulang melalui setiap koordinat dalam grafik ini.y
pergi dari20
ke1
dan x pergi dari-30
ke30
.Untuk setiap
x
, kami memeriksa apakahabs(10-abs(x))
samay
dengan melakukanabs(10-abs(x))-y
di ternary. Jika mereka sama, ini menghasilkan0
, nilai falsey dalam C, jika tidak maka akan mengevaluasi beberapa nilai positif. Kemudian di ternerabs(10-abs(x))-y?"|":"~"
, kamiprintf
sesuai.Dan setelah setiap baris, kami menampilkan baris baru menggunakan
puts("")
, dan itulah bagaimana fungsi output dengan baris baru yang tertinggal.sumber
f(x,y)
bukannyax,y;f()
Arang ,
1615 byte-1 byte terima kasih kepada notjagan
Cobalah online!
sumber
M
dan bergerak secara implisit.R ,
7067 byte3 byte berkat Giuseppe.
Cobalah online!
sumber
""
menjadi1
untuk -1.Jelly ,
1816 byteCobalah online!
sumber
Python 2.7,
16313813513311391 byteCobalah online!
Sunting 1: -25 byte: mengubah algoritme setelah saya merasa agak ambisius. : P
Sunting 2: -3 byte: milik Felipe Nardi Batista
Sunting 3: -2 bytes: courtesy shooqie
Sunting 4: -20 byte: milik notjagan
Sunting 5: -22 byte: milik Leaky Nun
sumber
a,b,c='1','2','3'
adalah sama dengana='1';b='2';c='3'
dan sama dengan menempatkan masing-masing di baris itu sendiri, tetapi Anda dapat memperoleh byte dengan membongkar string sepertia,b,c='123'
n<m
lebih pendek dari itun-m<0
?/// , 231 byte
Cobalah online! Atau, lihat secara interaktif di sini !
sumber
WendyScript , 65 byte (tidak termasuk baris baru)
Cobalah online!
Mengikuti prinsip yang sama dengan jawaban C yang diberikan di atas. Baris pertama adalah
abs
fungsinya, baris kedua menjalankan dua untuk loop dan output~
atau|
berdasarkan pada grafik. Yang terakhir""
digunakan untuk menampilkan baris baru setelah setiap loop aktify
.sumber
abs
fungsi vs fungsi utama.Vim, 59 Bytes
Di mana
^[
adalah<ESC>
kuncisumber
:11<CR>
dapat11G
Japt , 32 byte
Cobalah online! Pastikan untuk memperluas kotak output.
Penjelasan
Setel
U
ke|
diulang 20 kali.Setel
V
ke rentang[0,9]
(AÆ
) dipetakan oleh:U
(implisit) dengan karakter pada indeksX
(nilai saat ini) disetel ke (h
)~
.Set
W
untukV
dengan setiap baris diputar 10 (A
) karakter yang tepat.Buat array:,
V, W, U
danV
dengan setiap baris terbalik (w
). Ini sekarang bagian kiri dari bentuk, diputar 90 ° ke kiri.Ratakan array (
c
), palendromize (ê
), putar 90 ° ke kanan (z
), dan gabungkan dengan baris baru (·
).sumber
Kuas , 36 byte
tidak bersaing
Penjelasan
Ini mengingatkan saya, saya perlu menambahkan operasi cermin.
sumber
Oktaf ,
1575754 byteMenurunkannya lebih jauh, berkat jawaban dan komentar lainnya
Saya hanya mendekatinya seperti jawaban lain dengan fungsi abs (10-abs (x)) dan kemudian menggunakan karakter ASCII yang tepat untuk mencetak gambar.
sumber
Pyth , 22 byte
Cobalah online!
sumber
V , 30 byte
Cobalah online!
sumber
Jelly , 18 byte
Cobalah online!
sumber
Bubblegum , 90 byte
Cobalah online!
sumber
MathGolf , 22 byte
Cobalah online!
Penjelasan
Mungkin saja untuk bermain golf 2-3 byte dari ini, saya akan lihat apa yang bisa saya lakukan.
sumber
C (gcc) , 75 byte
Cobalah online!
Benar-benar berubah dari jawaban sapi dukun
sumber
Positron , 165 byte
Cobalah online!
Saya pikir Positron memiliki terlalu banyak bug di dalamnya. Saya harus memperbaruinya ke TIO karena kemudian
++
akan benar-benar berfungsi.sumber
Mathematica,
7875 bytekecuali
\n
diganti oleh baris baru yang sebenarnya. Cobalah online! (Ada beberapa ruang tambahan di awal baris dalam Matematika untuk beberapa alasan, tetapi berfungsi dengan baik di Mathematica .)Saya datang dengan pengajuan saya sendiri, tetapi kemudian Kritixi Lithos menambahkan penjelasan mereka dan itu sangat mirip dengan saya tetapi menggunakan formula yang sedikit lebih pintar, jadi sekarang ini hanya port jawaban itu. (Pergi dan baca yang itu dan jawablah!)
sumber
Bubblegum , 93 byte
Cobalah online!
sumber
JavaScript (ES6), 87 byte
sumber
Lua, 193 byte
Perhatikan bahwa Lua tidak dapat mencetak sesuatu tanpa membuat baris baru. Untuk alasan ini, saya harus melanggar salah satu aturan.
Minimal diperkecil sebagian besar:
Beberapa perubahan yang dilakukan selama minifikasi, yang semuanya membuat program kurang dapat diperpanjang tetapi lebih kecil.
Cobalah: https://tio.run/##PY7LCoMwEEX3@YqQVVJTcWwRCp0vKV1oNa1QJ0UjGPr49TRq6eoO91wOcx/LEDp8vs1IF9da4lc5aa9aI6djkSt3a4h1pynxmwLOKD5iJog7sD2Pmf9yD@u0QrKOV6yhmkVTAtonUla8pHoLKm5BqZmtHHSmTCw9ZhoOvLZsQCHMogRdwNoMaSr/L9hevMSiePQtOTnMdwhf
Saya tidak yakin apakah ada yang pernah melakukan ini sebelumnya, tetapi saya mencoba mengecilkan dengan memuat program sebagai string dan menggunakan gsub (cari / ganti). Sayangnya, itu membuat program lebih besar. Namun, jika program ini cukup besar, itu akan menghasilkan lebih sedikit byte.
Karena kedekatannya dengan hasil sebenarnya (240 byte, hanya 41 lebih), saya pikir saya akan mempostingnya. Jika program ini di mana 350+ byte, kemungkinan akan ada pengurangan.
sumber
Java 8, 113 byte
Saya punya perasaan cek (
j==i|j+i==60|i>9&(j-i==20|j+i==40)
pasti bisa golf dengan entah bagaimana menggabungkan beberapa cek menjadi satu.Penjelasan:
Coba di sini.
sumber
Perl 5 , 79 byte
Cobalah online!
sumber
Tcl , 104 byte
Cobalah online!
Tcl , 105 byte
Cobalah online!
Tcl , 109 byte
Cobalah online!
Tcl,
143 133 123110Masih banyak ungolfed, tapi saya akan berkembang setelah:
demo
sumber
05AB1E ,
2019 byteCobalah online.
Penjelasan:
20Ýû31∍û
menghasilkan daftar:sumber