Stack Exchange favicon'unu yazdırma


19

Meydan okuma

Stack Exchange favicon'unu aşağıda belirtildiği gibi yazdırın veya iade edin:

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

Bu , bu yüzden her dilde en kısa cevap kazanır.


2
Sol üst köşenin biraz yanlış hizalanması mı amaçlanıyor?
ETHproductions

@ETHproductions O edildi amaçlanan, ama şimdi değiştireceğim. Her iki şekilde de garip görünüyor.
musicman523

2
Referans için gerçek çıkış 219 bayttır.
totallyhuman

Sondaki satırlara ve / veya satırlardaki sondaki boşluklara izin verilir, değil mi?
dzaima

Yanıtlar:


43

Flashpoint komut dosyası dili, 263195 bayt

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

İş için doğru araç değil.

İle ara:

hint call f;

Çıktı:

Yazı tipi tek aralıklı olmadığından biçimlendirme başarısız oluyor.


49
Sadece bir meydan okuma bakmak ve "oh, Operasyon Flashpoint Operasyonu cevap gerekir" düşünmek ne yapar beni bulmaca ...
totallyhuman

7
@totallyhuman Bence onun komut dosyası yazma sadece eğlenceli. Oldukça tuhaf ve sınırlamaları vardır, bu yüzden bazen ilginç (ama çok pratik değil) bazı garip geçici çözümler kullanmanız gerekir.
Steadybox

5
Cevabı zor kodlamak size muhtemelen daha iyi bir puan verecektir.
NieDzejkob

2
@NieDzejkob Artık çıktıyı kodlamaktan daha kısa, ama önceki versiyondan daha sıkıcı.
Steadybox

@totallyhuman Ve özellikle bu meydan okuma ile, dilin bir Kolmogorov-karmaşıklık meydan okumasıyla nasıl ilerleyeceğini test etmek istedim (bunun için idealden çok daha az).
Steadybox

11

Odun kömürü , 38 37 33 30 bayt

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Düzenleme: @CarlosAlejo aslında yansımadan 37 bayt içinde yapılabileceğini gösterir, ancak bir yansıma yardımıyla bir bayt kaydetmek için yönetilir. Sol drawing çizerek ve son ¼ yansıtarak 4 bayt daha kaydedildi. Düzenleme: Önceki 33 bayt cevap ReflectButterflyOverlap()yansıması ile örtüşme alanı üst baskı değil bağlı , bu nedenle bu davranış değişti, ben buna güvenmeyen bir çözüm aradım ve sonuç yine de daha kısa olduğu ortaya çıktı benim sayesinde dizi yazdırmanın yaratıcı kullanımı. Açıklama:

←×_χ                            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
Çok iyi oynadı. Bu sorunun dört Kömür cevabı olduğunu seviyorum ! ‖BOen son kullandığım dilde değildi - bunu gelecek için aklımda tutmam gerekecek.
DLosc

"Finali refl yansıtan" ne demek istediğini kendim görmek zorundaydım . Gerçekten iyi oynadı!
Charlie

8

/// , 98 bayt

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

Çevrimiçi deneyin! Veya etkileşimli olarak görün!


3
Bir /// programının farklı "adımlarını" görmemi sağlayan bir yardımcı program var mı? (Her değişiklikten sonra kısmi infaz.) Bu onları daha iyi anlamama yardımcı olabilir.
CAD97

@ CAD97 Çevrimiçi tercümanla uğraşıyordum ve genellikle hata ayıklama seçenekleriyle gelirdi, ancak çevrimiçi tercümanın argümanları sipariş etme şekli bu şekilde çalışmaz. Tercümanın bir kopyasını kendiniz alabilir ve benzer bir şey yapabilirsiniz perl slashes.pl -d1 code.txt. Şu anda /// için bir çevrimiçi yürütme ortamı üzerinde çalışıyorum, ancak bu biraz zaman alabilir.
Conor O'Brien

3
@ CAD97 Said online şey var, bir göz atın!
Conor O'Brien

8

JavaScript (ES6), 113 112 bayt

(@Craig Ayre sayesinde bir bayt kurtardı.)

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());


Değiştirme işlevinden önce başıboş bir alanınız var gibi görünüyor. 113 baytlık JS çözümüm için de benzer bir güncelleme yapmıştım. Göndermem ya da almama izin vermem.
Shaggy

Ah, bekle, sadece şimdi benimkini göndermeden önce çözümünü gönderdiğini görüyorum. Bir bilgisayara geldiğimde benimkini silerim ve bir bayt kaydedebilirsiniz replace(/.(\d+)/g,(a,b)=>a[0].repeat(b)).
Shaggy

Teşekkürler Shaggy. Bu tür bir cevabı otomatikleştirmek için bir program yazmıştım ve gereksiz bir alan çıkması aptalcaydı. Önerilen replaceifadeniz kesinlikle bir iyileştirmedir, şimdi programıma dahil ettim.
Rick Hitchcock

1
Bir bayt dizisi eşleşen kurtarabilir a: ([a],b)=>a.repeat(b))?
Craig Ayre

Evet teşekkürler! Bu sözdizimine aşina değildim.
Rick Hitchcock

7

SOGL V0.12 , 32 31 bayt

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

Buradan Deneyin!

Açıklama:

...‘               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

Çeyrek:

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

ve diğer kısmı:

    
|  /
| /
|/

"togethe"? "yalak"? Bunu anlamak için ise Ayrıca, biraz aldı .açıklama geliyordu string. Belki kullanın ^...'ve "...'?
CalculatorFeline

@CalculatorFeline ...Sıkıştırılmış dizeler (saçmalık olarak da bilinir) için yaptım ama son zamanlarda bir ya da iki tane yapmaya başladım. Ve hatalarımı ve
gramerimi

7

Python 2 , 115 bayt, daha yaratıcı fikir

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

Çevrimiçi deneyin!

Python 2 , 102 bayt, sıkıcı fikir

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

Çevrimiçi deneyin!


2
Bu yöntemin çok fazla kullanıldığını gördüğüm için oy kullanıyorum. Tekrar tekrar görmek sıkıcı.
R. Kap

8
@ R.Kap Daha kısa bir yol olmadıkça, bu düşürmek için keyfi bir neden.
Dennis

1
@Dennis Belki, ama hala benim görüşüme dayanıyorum ve bunu ifade etme hakkım var. Bu yöntemin bu tür zorluklar üzerinde sayısız kez kullanıldığını gördüm ve OP'nin en azından benim görüşüme göre Kolomogorov karmaşıklık zorluklarının büyük yönleri olan ve bu yüzden aşağı oylama nedenim için çok az ya da hiç yaratıcılık gerektirmiyor. .
R. Kap

2
@ R.Kap Genel amaçlı sıkıştırma algoritmaları manuel olanları kolayca yenebiliyorsa, bu sorunun değil, sorunun bir problemidir. Bubblegum'u Jelly ile yenmeyi bile başaramadım ve dekompresyonun Jelly'de çok az yükü vardı.
Dennis

2
@Dennis Burada kod uzunluğu hakkında bile konuşmuyorum. Bence bu cevabın, çok daha fazlasını yapabileceği bir dilde gösteremediği çaba ve yaratıcılıktan bahsediyorum, bu yüzden aşağı oy verdim. Şimdi, benim akıl yürütmeme katılmıyorsanız, sorun değil. Bu durumda, katılmamaya karar verelim ve bu konuşmayı çok uzun süre önce bitirelim. :)
R. Kap

6

Python 2, 124 bayt

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

Çevrimiçi Deneyin!


Hiç kullanmazsınız c, böylece 3 bayt için ortadan kaldırabilirsiniz. Çevrimiçi deneyin!
musicman523

@ musicman523 Bunu neden buraya koyduğumu bile bilmiyorum. Yakaladığınız için teşekkürler! :)
R. Kap

6

C (gcc) , 187 bayt

Cody Gray sayesinde 2 bayt, Keyu Gan sayesinde 3 bayt!

#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"  |/");}

Çevrimiçi deneyin!


2
putsizleyen yeni bir çizgi kabul edilebilirse, önemsiz derecede daha kısa olacaktır.
Cody Gray

f()yerine kullanabilirsiniz main(). Bir işlev de kabul edilebilir.
Keyu Gan

5

Pas , 181 bayt

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

Çevrimiçi deneyin!

Pas , 184 bayt

Bu sürüm, replaceher biri daha az bayt ekleyerek daha golf edilebilir . Birincisi replacedöngünün bir parçası değildir, çünkü çift görevi değiştirmeyi sa Stringyerine çeker &'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}

Çevrimiçi deneyin!


5

C, 167 bayt

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);}

Çevrimiçi deneyin!

Not: Yukarıdaki birçok görünür alan aslında sekme karakteridir.

Okunabilir sürüm:

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);
}

Açıklama:

Veri dizisi (d), yanıtı değişmez tekil karakterler ve kodlanmış yinelenen karakterler olarak kodlar. Veri dizisindeki her karakter, c, bir temel karakter, b ve birkaç tekrarla eşlenir. Daha sonra birçok kez yazdırılır.

Yalnızca tek başına kullanılan karakterler (eğik çizgiler ve boru) ASCII kodları 47, 92 ve 124'e sahiptir. Bunlardan ikisi 5 ile bölünebilir ve 2'si kalacaktır (c%5=2||c>123). Üçünü de test etmek için daha kısa bir koşul bulamadım.

ASCII kodları 95, 45 ve 32 ile tekrarlanan karakterler (alt çizgi, tire ve boşluk), daha yüksek bir ASCII kodu ile kodlanır - tekrarlama başına bir artar. Örneğin, tek bir boşluk sadece bir boşluktur, ancak iki boşluk bir sonraki ASCII karakteri olan ünlem işareti ile kodlanabilir. Kodlanmış bir karakterin yukarıdaki modulo koşulunu karşıladığı için uygun olmadığı durumlarda, # boşluklarında olduğu gibi # ve ile bölünebilir. Aynı teknik, boşluk ve çizgi karakter aralıkları arasında çakışmayı önlemek için de kullanılır.

Son olarak, on yeni satır, yeni satırlardan bir ters eğik çizgiden kaçmak için harcanan ve daha sonra yazdırma için artırılan baytları kaydetmek için sekmeler olarak kodlanır ( ++c).


Aferin! Orada daha iyi C cevapları olduğunu biliyordum.
musicman523

Teşekkürler! Eğlenceli bir mücadeleydi. Üzerinde dört saat gibi bir şey geçirdim, bu yüzden sonunda işe yaradı.
jiv

4

Kömür , 49 37 bayt

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

Çevrimiçi deneyin!

Sonunda bu biraz golf olabilir. Bu cevap (diğer tüm Kömür cevaplarından farklı olarak) yansıma kullanmaz, ancak tüm konturları bir geçişte çizer ve yatay çubukları sonuna kadar bırakır.

Bağlantı Ayrıntılı sürümü .


"Diğer tüm Kömür cevabından farklı olarak" Aslında ilk cevabım da yansıma kullanmadı, ama sol dikey çizgi ile çizime başlayarak bir bayt golf oynama şansını fark etmediğimi itiraf edeceğim. (Çözümlerimiz arasındaki diğer tek değişiklik, Times'ı kullandığım Range ürününü kullanmanız ve 1 adımda \yeni yazdırdığım bir yeri yazdırmanızdır :UpLeft.)
Neil

Her ne kadar yansıtıcı gidecek kadar ...
Neil

Ayrıca bu iki kez şimdi s anahtarım işe yaramadı ...
Neil

3

Sakız , 40 bayt

Sondaki yeni satırı kaldırarak 1 bayt kaydedildi, teşekkürler @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...

Çevrimiçi deneyin!


Sondaki yeni satır olmadan, bu 40 bayt alır .
ovs

Teşekkürler! Metin düzenleyicim otomatik olarak bir tane koydu.
musicman523

Bunu nasıl yarattın? zlib.compress(s.encode(), 9)46 bayt verir ve cevap zlib gibi görünür.
NieDzejkob

Başına Dennis'in öneri , kullandığım zopfli --deflatesonra kullanılan ham DEFLATE.Ayrıca akışı oluşturmak için xxdXXD biçime dönüştürmek için. zlibBir sağlama toplamı bıraktığına veya başka bir nedenden ötürü ham bir DEFLATE akışı olmadığına inanıyorum .
musicman523

3

Kömür , 38 bayt

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

Çevrimiçi deneyin!

Kullandığım orijinal biçiminde Carlos'un cevabı bir sıçrama noktası olarak değil, bir yansıma kullanarak yatay simetri yararlanarak iyi biraz kurtardı. (Dikey simetri buna değmezdi çünkü alt çizgiler yanlış sırada sona erdi.) Burada her adımda tuvalin evrimini görebilirsiniz .

İşte ayrıntılı sürüm .


btw -dher adımı göstermek için kullanabilirsiniz (aynı zamanda kömürü çok değiştirdiğim için üzgünüm, yeni fikirlerin çoğunun çok yararlı olduğundan emin değilim, özellikle keçi ascii-art yerleşik ve wolfram dilinin bir parçası haha)
Sadece ASCII


3

Python 2, 119 117 116 bayt

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')

Çevrimiçi deneyin!

Biraz işkence edilen çalışma uzunluğu kodlaması ...

DÜZENLEME: Uzunluk kümesini değiştirerek 3 bayt kaydedin:

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

ile

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


Vaov! Bunu kendim yapmanın etkili bir yolunu düşünmeye çalışıyordum.
GarethPW

Güzel kod, ama 119 bayt gibi görünüyor?
mdahmoune

@mdahmoune: Oldukça sağ - r''uzunluğu kontrol ederken kullanmayı unuttum ...
Chas Brown

3

C ++ 11 - 162 159 154 152 150 bayt

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;}}

Giriş dizesi ikarakter çiftleriyle kodlanmıştır:

  1. Tekrarlanacak karakter sayısı (okunaklı bir karakter olmak için 'a'ya eklenir)
  2. Char yazdırmak için

Bence, hala iyileştirilmesi gereken çok yer var.

Düzenle:

  1. Putchar cout ile değiştirildi <<
  2. Süre kaldırma, karakterleri tekrarlamak için dize yapıcısı kullanma
  3. İşaretçi ve sahte bir noktalı virgülden önce boşluk kaldırıldı ;;
  4. Talimatları virgülle birleştirme, kaşlı ayraçları çıkarma.

C ++ 11 autobir dönüş türü olarak desteklenmez , bu bir C ++ 14 özelliğidir. Ancak, bunu düzeltebilir ve dönüş türünü yaparak bir bayt kaydedebilirsiniz int. Bu kod çalışıyor gibi görünmüyor; Test edebilir misiniz ? Çevrimiçi deneyin! ve tamir edip edemeyeceğinize bakın
musicman523

Dönüş türü auto -> void olarak değiştirildi. Visual Studio 2017'de test yapıyordum - otomatik olarak C ++ 14. Gcc için bir sürüm eklendi.
Robert Andrzejuk

Oh tamam, yakaladım. Linux kullanıyorum, bu yüzden VS yok. İyi iş!
musicman523

Merhaba Robert - çalışma uzunluğu kodlama yaklaşımınız benimkine benzer; buraya bakın . Ayrıca her bir (uzunluk, karakter) çifti 2 yerine tek bir karakter halinde paketliyorum. 7 olası karakter ve 8 farklı uzunluk vardır; böylece ' '..'X'kodlama için 56 karakter kullanın ; kod çözme için biraz fazla ek yük ile 40 bayt tasarruf sağlar.
Chas Brown


3

R16K1S60 Meclisi , 152 144 Bayt

ASCII'de R16K1S60'ın ekran çevre birimine çıkışı yazar. Toz Oyuncak tasarruf çalışır 2012356. (Bilgi için başlıktaki bağlantıya bakın)

Programın bayt boyutu derleme değil, derlenen sonuçtur (Kullanılan Hücreler * 2).

Logo bayt kodunuzdan daha fazla yer kapladığında iyi iş çıkardığınızı biliyorsunuz.

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

açıklama

Yukarıdaki derleme kodu, basit bir sıkıştırma algoritması uygular; 0x000C sözcükleri yeni satır ve 0x0009 yürütmeyi durdurma komutudur.

Diğer kelimeler basitçe kodlanır, şöyle: 0xTTCC

  • T: Değeri tekrar etme zamanı

  • C: Yazdırılacak ASCII karakteri

ASM, daha az kullanılanlar da dahil olmak üzere, mevcut her kaydı kullanır:

  • Talimat İşaretçisi, bazı baytları kaydetmek için birkaç bilinen değeri hızlı bir şekilde geri çağırmak için (Sadece bir kayıt değil, bir girişteki sabit bir değer, depolamak için ekstra bir bayt kullanır)

  • Yığın İşaretçisi 6. genel amaçlı kayıt olarak kullanılır, çünkü kodlardan hiçbiri yığını kullanmaz.

Önemli veriler için sadece AX, BX, CX ve DX kullanılır. EX ve SP, sık kullanılan bazı sabitleri saklamak için kullanılır.

Biraz basit ve kazanma şansı yok, ama yazmak eğlenceliydi!

Eski yanıt için düzeltme geçmişine bakın (ASM açısından büyüktür)

funfact: bu kelimelerle ölçülmüş olsaydı (R16K1S60,16 bit olması durumunda), 72 baytta pire cevabından daha küçük olurdu




2

Mathematica, 163 bayt

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


2

Python 2, 171 bayt

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)])

Her satır tam olarak 85 bayttır! Hoorah!


2

Zsh, 244 bayt

Bu, garip sözdizimi açısından biraz daha fazla izin verdiği için Bash için değil, Zsh için yazılmıştır.

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 \|/

Not: tio.run üzerinde çalıştırmayı denediğimde çıkış terminalimdekinden farklı. Bunun çözümü değişiyor

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

ile

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

bu da 245 bayt ( link ) yapar.

Düzenle Bu gönderi düğmesine basmak için çok istekliyim ve bazı alanları kaçırdım, çözümümü biraz daha az verimli hale getirdim. Benim yeni çıktı olsa görünüyor, ama ben doğru sayım düşünüyorum (ama yine de uzunluğu değişmez).


PPCG'ye Hoşgeldiniz! Alt çizgilerin alt satırında, kodunuzun çıktısında eksik olan dört boşluk bulunduğuna dikkat edin.
Steadybox

@Steadybox Oh aptal bana. Cevabı güncelledim, işaret ettiğiniz için teşekkürler!
Luca_Scorpion

Sorun değil! Ne yazık ki, hala biraz uzakta olduğunu düşünüyorum, ama bu düzeltmek gerekir (ve size de bir bayt kaydeder!).
Steadybox

Sanırım 'işlev işlev adı {}' yerine 'funcname () {}' kullanarak birkaç bayt kaydedebilirsiniz
Winny


2

Python 2, 159 153 139 bayt

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)

Çevrimiçi deneyin!

EDIT: %yerine biçimlendirme kullanarak 6 bayt kaydedildi .format().
DÜZENLEME: Musicman523 sayesinde çıkışı düzelterek 14 bayt daha kaydetti.


1
Bu tam metni yazdırmıyor (fazladan satırlar var). Bunu düzeltmek muhtemelen bazı baytları da kurtaracaktır.
officialaimm

İşte 139 139
baytta

2

Japt , 79 72 71 bayt

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

Dene

  • ETHproductions'ın tekrar değerleri için temel 32 tamsayıların mükemmel önerisi sayesinde 7 bayt tasarruf edildi.

Çok güzel sıkıştırma yöntemi. Eğer kullanırsanız nHsize kaydedebilen bir kaç bayt: ethproductions.github.io/japt/...
ETHproductions

1

JavaScript (ES6), 151 bayt

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

Snippet'i Test Et

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

Kömür , 48 bayt

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

Çevrimiçi deneyin!

İlk başta görünmese de Carlos'unkinden biraz farklı iç kısımlar.


1

,,, , 115 101 98 bayt

Bunun üretebileceğim en iyi şey olduğu konusunda kesinlikle utanıyorum. >.>

"|/
"' 11×:"| /
"⇆:"|  /
"⇆'
'/'_5×' 4×'_10×92c'
'|' 19×'|'
'-21×+++++3×110⇆⊣"\
"' 19×'/'
'_19×' #
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.