Cetak favicon Stack Exchange


19

Tantangan

Cetak atau kembalikan favicon Stack Exchange, sebagaimana disediakan di bawah ini:

 ___________________
/                   \
---------------------
|                   |
---------------------
|                   |
---------------------
\__________    _____/
           |  /
           | /
           |/

Ini adalah , jadi jawaban tersingkat di setiap bahasa menang.


2
Apakah sudut kiri atas dimaksudkan untuk sedikit tidak selaras?
ETHproduksi

@ETHproductions Hal itu dimaksudkan, tapi aku berubah sekarang. Sepertinya agak canggung.
musicman523

2
Output aktual adalah 219 byte, untuk referensi.
totallyhuman

Garis trailing dan / atau spasi trailing pada garis diperbolehkan, bukan?
dzaima

Jawaban:


43

Operasi bahasa scripting Flashpoint , 263 195 byte

f={r="                   ";t="---------------------\n";s=" ___________________\n/"+r+"\\n"+t+"|"+r+"|\n"+t+"|"+r+"|\n"+t+"\__________    _____/\n           |  /\n           | /\n           |/";s}

Bukan alat yang tepat untuk pekerjaan itu.

Telepon dengan:

hint call f;

Keluaran:

Pemformatan gagal, karena font tidak monospasi.


49
Apa yang membuat Anda melihat tantangan dan berpikir "oh, saya harus menjawabnya di Operation Flashpoint" membingungkan saya ...
manusiawi

7
@totallyhuman Saya kira bahasa scriptingnya hanya menyenangkan untuk ditulis. Ini memiliki beberapa kebiasaan dan keterbatasan, jadi Anda kadang-kadang perlu menggunakan beberapa solusi aneh, yang membuatnya menarik (namun tidak terlalu praktis).
Steadybox

5
Hardcoding jawabannya mungkin akan memberi Anda skor yang lebih baik.
NieDzejkob

2
@NieDzejkob Sekarang ini lebih pendek dari sekedar hardcoding output, tetapi lebih membosankan dari versi sebelumnya.
Steadybox

@totallyhuman Dan dengan tantangan ini khususnya, saya ingin menguji bagaimana bahasa akan berjalan dengan tantangan Kolmogorov-kompleksitas (yang jauh dari ideal untuk).
Steadybox

11

Arang , 38 37 33 30 byte

←×_χ↓F/||⟦ι¹¹⟧\×_⁹‖B_×ψ⁴↙↙³↑↑³

Cobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Berhasil menyimpan byte dengan bantuan refleksi, meskipun @CarlosAlejo menunjukkan bahwa itu sebenarnya dapat dilakukan dalam 37 byte tanpa memantulkan. Menyimpan 4 byte lebih lanjut dengan menggambar ¾ kiri dan mencerminkan akhir ¼. Sunting: Sebelumnya 33 byte jawaban tergantung pada ReflectButterflyOverlap()tidak mencetak di area tumpang tindih dengan refleksi, jadi jika perilaku ini berubah, saya mencari solusi yang tidak bergantung pada itu, dan hasilnya ternyata menjadi lebih pendek, terima kasih kepada saya penggunaan kreatif mencetak array. Penjelasan:

←×_χ                            Print 10 `_`s leftwards (top row)
    ↓                           Move down to the next row
     F/||                       For each character in the string `/||`
          ι                     Current character
           ¹¹                   Integer 11, prints as `-----------`
         ⟦   ⟧                  Put both into an array
                                Implicitly print on separate lines
              \                 Implicitly print `\`
               ×_⁹              Implicitly print 9 `_`s
                  ‖B            Reflect right, overlapping the axis
                    _           Implicitly print `_`
                     ×ψ⁴        Implicitly delete 4 characters
                        ↙↙³     Move down left and print three `/`s
                           ↑↑³  Move up and print three '|'s

2
Dimainkan dengan sangat baik. Saya suka bahwa ada empat jawaban Arang untuk pertanyaan ini! ‖BOtidak dalam bahasa terakhir kali saya menggunakannya - saya harus mengingatnya untuk masa depan.
DLosc

Saya harus melihat sendiri apa yang Anda maksud dengan "mencerminkan akhir ¼". Dimainkan dengan baik!
Charlie

8

/// , 98 byte

/'/  //&/
"""
|!! |//%/\\\/
!'|//#/_____//"/-------//!/'''' / ###____
\/!! \\&&
"""
\\##''#%'% %\/

Cobalah online! Atau, lihat secara interaktif!


3
Apakah ada utilitas yang memungkinkan saya untuk melihat "langkah" yang berbeda dari program ///? (Eksekusi parsial setelah setiap penggantian.) Itu bisa membantu saya untuk memahami mereka dengan lebih baik.
CAD97

@ CAD97 Saya sudah mengutak-atik penerjemah online, dan biasanya akan datang dengan opsi debug, tetapi cara penerjemah online memesan argumen, tidak berfungsi seperti itu. Anda bisa mengambil sendiri salinan penerjemah dan melakukan sesuatu seperti perl slashes.pl -d1 code.txt. Saat ini saya sedang mengerjakan lingkungan eksekusi online untuk ///, tapi itu mungkin perlu waktu.
Conor O'Brien

3
@ CAD97 Mengatakan hal online sudah habis, lihatlah!
Conor O'Brien

8

JavaScript (ES6), 113 112 byte

(Menyimpan satu byte berkat @Craig Ayre.)

let f=

_=>` _19
/ 19\\
-21
| 19|
-21
| 19|
-21
\\_10 4_5/
 11| 2/
 11| /
 11|/`.replace(/.(\d+)/g,([a],b)=>a.repeat(b))
 
 console.log(f());


Sepertinya Anda memiliki ruang yang menyimpang sebelum fungsi penggantian. Saya baru saja datang dengan pembaruan serupa untuk solusi JS saya pada 113 byte. Tidak tahu apakah saya harus mempostingnya atau membiarkan Anda memilikinya.
Shaggy

Ah, tunggu, hanya melihat sekarang bahwa Anda memposting solusi Anda sebelum saya memposting milik saya. Saya akan menghapus milik saya ketika saya sampai di komputer dan Anda dapat menyimpan byte dengan replace(/.(\d+)/g,(a,b)=>a[0].repeat(b)).
Shaggy

Terima kasih, Shaggy. Saya telah menulis sebuah program untuk mengotomatisasi jenis jawaban ini, dan itu konyol untuk menghasilkan ruang yang tidak diperlukan. replacePernyataan Anda yang disarankan tentu saja merupakan peningkatan, yang sekarang telah saya masukkan ke dalam program saya.
Rick Hitchcock

1
Bisakah Anda menyimpan pencocokan array byte a:([a],b)=>a.repeat(b)) ?
Craig Ayre

Ya terima kasih! Saya tidak terbiasa dengan sintaks itu.
Rick Hitchcock

7

SOGL V0.12 , 32 31 byte

^$∙r↑Ψ«2τγæΕž‘╬Æ╬⁷"ƧΡ⅟?0Ξ³‘6«8ž

Coba Di Sini!

Penjelasan:

...‘               push a quarter of the icon
    Β             palindromize vertically
      ╬⁷           palindromize horizontally (these two should be ╬3 together, but spacing doesn't work correctly (though now it does since I fixed it))
        "...‘      push the extention
             6«8ž  at coordinates [12; 8] in the quad-palindromized image put that in

Seperempat:

 __________
/
-----------
|
-----------

dan bagian lainnya:

    
|  /
| /
|/

"Bersama"? "lewat"? Juga, butuh beberapa saat untuk mengetahui bahwa .dalam penjelasan itu berarti string. Mungkin menggunakan ^...'dan "...'?
CalculatorFeline

@ CalculatorFeline biasanya saya lakukan ...untuk string terkompresi (alias omong kosong) tetapi belakangan ini saya mulai melakukan satu atau dua. Dan merasa bebas untuk memperbaiki kesalahan dan tata bahasa saya: p
dzaima

7

Python 2 , 115 byte, ide yang lebih kreatif

t,u,v,w,x,y,z='\n -/\\_|';k=w+t+11*u+z;i=t+21*v+t
print u+19*y+t+w+19*u+x+(i+z+19*u+z)*2+i+x+10*y+4*u+5*y+k+u,k,k+w

Cobalah online!

Python 2 , 102 byte, ide yang membosankan

print'eNrjUojHBFz6CpgghksXG+CqwaK2hgpqYxDuASkDM/S5kDUqKKDxUbn6XADUmClx'.decode('base64').decode('zip')

Cobalah online!


2
Saya memilih ini karena saya sudah melihat metode ini terlalu sering digunakan. Sangat membosankan untuk melihat berulang kali.
R. Kap

8
@ R.Kap Kecuali jika ada cara yang lebih pendek, itu alasan yang agak sewenang-wenang untuk downvote.
Dennis

1
@ Dennis Mungkin, tapi saya masih berdiri dengan pendapat saya dan punya hak untuk mengekspresikannya Saya telah melihat metode ini digunakan berkali-kali pada tantangan semacam ini dan itu membutuhkan sedikit atau tidak ada kreativitas pada bagian OP, yang merupakan aspek besar, setidaknya menurut pendapat saya, tantangan kompleksitas Kolomogorov, dan karenanya alasan saya untuk memilih-turun .
R. Kap

2
@ R.Kap Jika algoritma kompresi tujuan umum dapat mengalahkan yang manual dengan mudah, itu masalah tantangan, bukan jawabannya. Saya bahkan tidak berhasil mengalahkan Bubblegum dengan Jelly, dan dekompresi memiliki overhead yang sangat sedikit di Jelly.
Dennis

2
@ Dennis Saya bahkan tidak berbicara tentang panjang kode di sini. Saya berbicara tentang upaya dan kreativitas, yang jawaban ini, menurut pendapat saya, gagal untuk ditampilkan dalam bahasa di mana orang dapat melakukan lebih banyak lagi, yang merupakan alasan mengapa saya memilih. Sekarang, jika Anda tidak setuju dengan alasan saya, itu tidak masalah. Dalam hal ini, mari kita setuju untuk tidak setuju dan mengakhiri percakapan ini di sini sebelum terlalu lama. :)
R. Kap

6

Python 2, 124 byte

a,b,d,e,f,g,h=' _-|/\\\n';r=d*21+h+e+a*19+e+h;n=f+h+a*11+e;print a+b*19+h+f+a*19+g+h+r*2+r[:22]+g+b*10+a*4+b*5+n+a*2+n+a+n+f

Cobalah secara Online!


Anda tidak pernah menggunakan c, jadi Anda bisa menghilangkannya selama 3 byte. Cobalah online!
musicman523

@ musicman523 Saya bahkan tidak tahu mengapa saya meletakkannya di sana. Terima kasih atas tangkapannya! :)
R. Kap

6

C (gcc) , 187 byte

Disimpan 2 byte berkat Cody Grey, dan 3 byte berkat Keyu Gan!

#define a"         "
#define s a" "a
#define l"\n---------------------\n"
f(){puts(" ___________________\n/"s"\\"l"|"s"|"l"|"s"|"l"\\__________    _____/\n"a"  |  /\n"a"  | /\n"a"  |/");}

Cobalah online!


2
putsakan lebih pendek sepele, jika jalur baru tertinggal dapat diterima.
Cody Grey

Anda bisa menggunakan f()bukan main(). Suatu fungsi juga dapat diterima.
Keyu Gan

5

Karat , 181 byte

||" ___________________
/2\\
1
1
3
\\__________    _____/
4|  /
4| /
4|/".replace("1","3
|2|").replace("2",&" ".repeat(19)).replace("3",&"-".repeat(21)).replace("4",&" ".repeat(11))

Cobalah online!

Karat , 184 byte

Versi ini mungkin lebih golf karena menambahkan replacebiaya lebih sedikit masing-masing byte. Yang pertama replacebukan bagian dari loop karena itu menarik tugas ganda berubah smenjadi Stringbukan &'static str.

||{let mut s=" 5__5__5
/2\\
1
1
3
\\55    5/
4|  /
4| /
4|/".replace("1","3
|2|");for p in vec![("2"," ",19),("3","-",21),("4"," ",11),("5","_",5)]{s=s.replace(p.0,&p.1.repeat(p.2))}s}

Cobalah online!


5

C, 167 byte

i;char*d=" q    /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/",c,b;main(j){while(c=d[i++],b=c%5==2||c>123?c:c>95?95:c>45?45:c>=32?32:++c,i<47)for(j=c;j-->=b;)putchar(b);}

Cobalah online!

Catatan: banyak spasi yang tampak di atas sebenarnya adalah karakter tab.

Versi yang dapat dibaca:

i;
char *d = " q   /()\\   A   |()|    A   |()|    A   \\h#c/  #&|!/   #&| /   #&|/", c, b;
main(j) {
    while(
        c = d[i++],
        b = c % 5==2 || c > 123 ? c:
            c > 95 ? 95:
            c > 45 ? 45:
            c >= 32 ? 32:
            ++c,
        i < 47
    )
        for(j = c; j-- >= b;)
            putchar(b);
}

Penjelasan:

Array data, d, mengkodekan jawaban dalam karakter tunggal literal dan mengkodekan karakter berulang. Setiap karakter, c, dalam array data dipetakan ke karakter dasar, b, dan sejumlah pengulangan. Itu kemudian dicetak berkali-kali.

Karakter yang hanya digunakan secara tunggal (garis miring dan pipa) memiliki kode ASCII 47, 92, dan 124. Dua di antaranya dapat dibagi oleh 5 dengan sisa 2 (c%5=2||c>123). Saya tidak dapat menemukan kondisi yang lebih pendek untuk menguji ketiganya.

Karakter yang diulang (garis bawah, tanda hubung, dan spasi), masing-masing dengan kode ASCII 95, 45, dan 32, dikodekan dengan kode ASCII yang lebih tinggi - meningkat satu per pengulangan. Jadi, misalnya, satu ruang hanya sebuah ruang, tetapi dua ruang dapat dikodekan oleh karakter ASCII berikutnya, yaitu tanda seru. Jika karakter kode tidak cocok karena memenuhi syarat modulo di atas, karakter tersebut dapat dipisah, seperti halnya # & untuk merepresentasikan sebelas spasi. Teknik yang sama digunakan untuk menghindari tumpang tindih antara rentang karakter spasi dan dash.

Akhirnya, sepuluh baris baru dikodekan sebagai tab untuk menyimpan byte yang akan dihabiskan untuk melarikan diri baris baru dengan garis miring terbalik, kemudian ditambahkan untuk dicetak ( ++c).


Sudah selesai dilakukan dengan baik! Saya tahu ada jawaban C yang lebih baik di luar sana.
musicman523

Terima kasih! Itu adalah tantangan yang menyenangkan. Saya menghabiskan sekitar empat jam untuk itu, jadi saya senang akhirnya berhasil.
jiv

4

Arang , 49 37 byte

↓⁵\…_χ↓↓³↗↗³…_⁵↑/↑⁵↖\←…_¹⁹↓ /F³«P²¹¶¶

Cobalah online!

Akhirnya saya bisa bermain golf ini sedikit. Jawaban ini (tidak seperti semua jawaban Arang lainnya) tidak menggunakan pantulan, tetapi menggambar semua kontur dalam satu lintasan, meninggalkan palang horizontal di akhir.

Tautan ke versi verbose .


"Tidak seperti semua jawaban Arang lainnya" Sebenarnya jawaban pertamaku juga tidak menggunakan refleksi, tapi aku akan mengakui bahwa aku tidak menemukan peluang untuk bermain golf satu byte dengan memulai gambar dengan garis vertikal kiri. (Satu-satunya perubahan lain di antara solusi kami adalah Anda menggunakan Range di mana saya menggunakan Times dan Anda mencetak di \mana saya baru saja mencetak :UpLeft1 langkah.)
Neil

Meskipun tampaknya pantulannya adalah sampai jalan ...
Neil

Juga itu dua kali sekarang karena kunci saya tidak berfungsi ...
Neil

3

Permen karet , 40 byte

Disimpan 1 byte dengan menghapus baris tambahan, terima kasih @ovs!

00000000: 5388 c704 5cfa 0a98 2086 4b17 1be0 aac1  S...\... .K.....
00000010: a2b6 860a 6a63 10ee 0129 0333 f4b9 9035  ....jc...).3...5
00000020: 2a28 a0f1 51b9 fa00                      *(..Q...

Cobalah online!


Tanpa baris baru, ini mendapat 40 byte .
Ovs

Terima kasih! Saya pikir editor teks saya secara otomatis memasukkan satu.
musicman523

Bagaimana Anda membuat ini? zlib.compress(s.encode(), 9)menghasilkan 46 byte, dan jawabannya tampaknya zlib.
NieDzejkob

Per saran Dennis , saya digunakan zopfli --deflateuntuk menghasilkan aliran DEFLATE mentah, kemudian digunakan xxduntuk mengubahnya menjadi format xxd. Saya percaya zlibmeninggalkan checksum, atau bukan aliran DEFLATE mentah untuk beberapa alasan lain.
musicman523

3

Arang , 38 byte

←…_χP↑⁵P\F³«↑P¹¹↑»↗¹…_χ‖BM²¦⁷P↓⁴… ⁴↙↙³

Cobalah online!

Saya menggunakan jawaban Carlos dalam bentuk aslinya sebagai titik awal, tetapi menghemat sedikit dengan menggunakan refleksi, mengambil keuntungan dari simetri horisontal. (Simetri vertikal tidak sepadan karena garis bawah berakhir di baris yang salah.) Anda dapat melihat evolusi kanvas pada setiap langkah di sini .

Inilah versi verbose .


btw bisa kamu gunakan -duntuk menunjukkan setiap langkah (maaf aku sudah terlalu banyak mengubah arang, aku tidak yakin banyak dari ide-ide baru ini sangat berguna, terutama kambing ascii-art builtin dan bagian dari bahasa wolfram haha)
ASCII


3

Python 2, 119 117 116 byte

print''.join(' \n-/|\\_'[ord(x)/8-4]*int('1245abjl'[ord(x)%8],36)for x in' V(8&H(7(@&@(7(@&@(7(HT"S8(%@!8(%@ 8(%@8')

Cobalah online!

Sedikit enkode run-length tersiksa ...

SUNTING: Hemat 3 byte dengan mengganti set panjang:

[1,2,4,5,10,11,19,21][ord(x)%8]

dengan

int('1245abjl'[ord(x)%8],36)


Wow! Saya mencoba memikirkan cara yang efektif untuk melakukan ini sendiri.
GarethPW

Kode yang bagus, tetapi tampaknya 119 byte?
mdahmoune

@mdahmoune: Benar sekali - lupa digunakan r''saat memeriksa panjangnya ...
Chas Brown

3

C ++ 11 - 162 159 154 152 150 byte

MSVC:

void f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i)cout<<string(*i++-97,*i),i++;}

GCC: (+4 karakter)

int f(){char*i="b t_b\nb/t b\\b\nv-b\nb|t b|b\nv-b\nb|t b|b\nv-b\nb\\k_e f_b/b\nl b|c b/b\nl b|b b/b\nl b|b/";while(*i){cout<<string(*i-97,*(i+1));i+=2;}}

Input string i dikodekan dalam pasangan karakter:

  1. Hitungan karakter yang akan diulang (ditambahkan ke 'a' untuk menjadi karakter yang dapat dibaca)
  2. Char untuk mencetak

Saya pikir, masih ada banyak ruang untuk perbaikan di sini.

Edit:

  1. Ganti putchar dengan cout <<
  2. Hapus sementara, Gunakan konstruktor string untuk mengulangi karakter
  3. Ruang yang dihapus sebelum pointer dan semi-colon palsu;
  4. Instruksi majemuk dengan koma, menghapus kawat gigi.

C ++ 11 tidak mendukung autosebagai tipe pengembalian, itu fitur C ++ 14. Namun, Anda dapat memperbaikinya dan menyimpan byte dengan membuat tipe pengembalian int. Tampaknya kode ini tidak berfungsi; dapatkah Anda mengujinya di Coba online! dan lihat apakah Anda dapat memperbaikinya?
musicman523

Mengubah tipe pengembalian otomatis -> batal. Saya menguji pada Visual Studio 2017 - secara otomatis C ++ 14. Menambahkan versi untuk gcc.
Robert Andrzantai

Oh oke, mengerti. Saya menjalankan Linux jadi saya tidak punya VS. Pekerjaan yang baik!
musicman523

Hai Robert - pendekatan pengkodean jangka panjang Anda mirip dengan saya sendiri; lihat di sini . Saya juga mengemas setiap pasangan (panjang, karakter) menjadi satu karakter, bukan 2. Ada 7 karakter yang mungkin, dan 8 panjang yang berbeda; jadi saya menggunakan 56 karakter ' '..'X'untuk encoding; yang menghemat 40 byte dengan overhead tambahan kecil untuk decoding.
Chas Brown


3

Majelis R16K1S60 , 152 144 Bytes

Menulis output ke layar perangkat R16K1S60 di ASCII. Berjalan pada The Powder Toy save2012356 . (Lihat tautan di tajuk untuk info)

Ukuran byte program adalah hasil yang dikompilasi (Sel Digunakan * 2), bukan rakitan.

Anda tahu Anda telah melakukannya dengan baik ketika logo membutuhkan lebih banyak ruang daripada bytecode Anda.

a:
mov ex, ip
mov ax, .string
mov sp, ip
mov dx, 0x1000
send sp, dx
.loop:
mov bx, [ax]
cmp bx, ip
je .end
cmp bx, ip
je .newline

shr bx, cx, 8
and cx, 0x00FF
.inner:
send sp, cx
sub bx, ex
jnz .inner
.reentry:
add ax, ex
jmp .loop
.newline:
add dx, 0x0020
send sp, dx
jmp .reentry
.string:
dw 0x0120
dw 0x135F
dw 0x000C
dw 0x012F
dw 0x1320
dw 0x015C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x015C
dw 0x0A5F
dw 0x0420
dw 0x055F
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0220
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0120
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x012F
dw 0x0009
.end:
hlt

Penjelasan

Kode rakitan di atas mengimplementasikan algoritma kompresi sederhana, dengan kata-kata 0x000C menjadi baris baru dan 0x0009 menjadi perintah untuk menghentikan eksekusi.

Kata-kata lain disandikan secara sederhana, seperti ini: 0xTTCC

  • T: Waktu untuk mengulang nilainya

  • C: Karakter ASCII untuk dicetak

ASM menggunakan setiap register yang tersedia untuknya, termasuk beberapa yang kurang umum digunakan:

  • Instruction Pointer, untuk mendapatkan beberapa nilai yang diketahui ke dalam penarikan cepat untuk menyimpan beberapa byte (Nilai konstan dalam sebuah instuksi yang bukan hanya sebuah register menggunakan byte tambahan untuk menyimpannya)

  • Stack Pointer digunakan sebagai register tujuan umum ke-6, karena tidak ada kode yang menggunakan stack.

Hanya AXE, BX, CX, dan DX yang benar-benar digunakan untuk data penting. EX dan SP digunakan untuk menyimpan beberapa konstanta yang sering digunakan.

Ini agak sederhana, dan memiliki peluang nol untuk menang, tetapi menyenangkan untuk menulis!

Lihat riwayat revisi untuk jawaban lama (Sama besarnya dalam hal ASM)

funfact: jika ini diukur dalam kata-kata (dalam kasus R16K1S60,16 bit) itu akan lebih kecil daripada jawaban pyth, pada 72 byte




2

Mathematica, 163 byte

Row@Map[Column,Characters/@{" /-|-|-\\   ",r="_ - - -_   ",r,r,r,r,r,r,r,r,r,"_ - - - |||","_ - - -   /","_ - - -  / ","_ - - - /  ",r,r,r,r,r," \\-|-|-/   "},{1}]


2

Python 2, 171 byte

p,u,q,v,r,s,F=' ','_','/','|','-'*21,'\\',lambda f,m:f+m*19+f;B=lambda n:p*11+v+p*n+q
print'\n'.join([F(p,u),q+p*19+s,r,F(v,p),r,F(v,p),r,s+u*10+p*4+u*5+q,B(2),B(1),B(0)])

Setiap baris persis 85 byte! Hoorah!


2

Zsh, 244 byte

Ini ditulis khusus untuk Zsh, bukan Bash, karena memungkinkan sedikit lebih banyak dalam hal sintaks aneh.

alias p=printf
function r { p "$1%.s" {0..$2}}
function l { p $1;r $2 19;p $3;p "\n"}
l " " _ " "
l / " " \\
l - - -
l \| " " \|
l - - -
l \| " " \|
l - - -
p \\
r _ 10
r " " 4
r _ 5
p "/\n"
r " " 11
p "|  /\n"
r " " 11
p "| /\n"
r " " 11
p \|/

Catatan: ketika saya mencoba menjalankannya pada tio.run output berbeda dari pada terminal saya. Perbaikan untuk ini sedang diganti

function r { p "$1%.s" {0..$2}}

dengan

function r { p "$1%.0s" {0..$2}}

yang akan membuatnya 245 byte ( tautan ).

Sunting Sepertinya saya terlalu bersemangat untuk menekan tombol pos itu dan saya melewatkan beberapa ruang, membuat solusi saya sedikit kurang efisien. Keluaran baru saya kelihatannya mati, tapi saya pikir saya menghitung dengan benar (tapi itu tidak akan mengubah panjangnya).


Selamat datang di PPCG! Perhatikan bahwa garis bawah garis bawah memiliki celah empat ruang di dalamnya, yang hilang dari output kode Anda.
Steadybox

@Steadybox Ohh konyol saya. Saya telah memperbarui jawabannya, terima kasih telah menunjukkannya!
Luca_Scorpion

Tidak masalah! Sayangnya, saya pikir ini masih agak mati, tetapi ini harus memperbaikinya (dan itu juga menghemat satu byte!).
Steadybox

Saya pikir Anda dapat menyimpan beberapa byte dengan menggunakan 'funcname () {}' bukannya 'function funcname {}'
Winny


2

Python 2, 159 153 139 byte

s=" "*19;e="-"*21;a=" "*9;print" %s\n/%s\\\n%s\n|%s|\n%s\n|%s|\n%s\n\%s    %s/\n%s|  /\n%s| /\n%s|/"%("_"*19,s,e,s,e,s,e,"_"*8,"_"*7,a,a,a)

Cobalah online!

EDIT: Disimpan 6 byte dengan menggunakan %format, bukan .format().
EDIT: Menyimpan 14 byte lagi dengan memperbaiki output, terima kasih kepada musicman523.


1
Ini bukan mencetak teks yang tepat (ada garis-garis tambahan). Memperbaiki ini mungkin akan menghemat beberapa byte juga.
officialaimm

Ini adalah versi yang pasti , hadir dengan kecepatan 139 byte
musicman523

2

Japt , 79 72 71 byte

" _p
/ p\\
{"-r
| p|
"²}-r
\\_g a_b/
 h|  /
 h| /
 h|/"r".%l"_g p6nZÅnH

Menguji

  • 7 byte disimpan berkat saran sempurna ETHproductions untuk menggunakan basis 32 integer untuk nilai-nilai pengulangan.

Metode kompresi yang sangat bagus. Jika Anda menggunakan, nHAnda dapat menyimpan beberapa byte lagi: ethproductions.github.io/japt/…
ETHproductions

1

JavaScript (ES6), 151 byte

_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

Cuplikan Tes

f=
_=>` 2_________
/0\\
1
|0|
1
|0|
1
\\2    _____/
3|  /
3| /
3|/`.replace(/\d/g,a=>a.repeat.call(...[[" ",19],["-",21],["_",10],[" ",11]][a]))

O.innerHTML=f()
<pre id=O>



1

Arang , 48 byte

↙¹→P¹¹↓↓¹P¹¹‖B↓¦↘→×¹⁰_M⁷↑←←×¹⁰_‖BJ¹¹¦⁶→×⁴ ↙↙³↑↑³

Cobalah online!

Internal agak berbeda dari Carlos, meskipun pada awalnya tidak terlihat.


1

,,, , 115 101 98 bytes

Saya benar-benar malu bahwa ini adalah yang terbaik yang bisa saya hasilkan. >.>

"|/
"' 11×:"| /
"⇆:"|  /
"⇆'
'/'_5×' 4×'_10×92c'
'|' 19×'|'
'-21×+++++3×110⇆⊣"\
"' 19×'/'
'_19×' #
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.