Yürüyüşçüler Katıl! Şirket logosu yok


13

Alan Walker'ı popüler olan Faded şarkısından tanıyabilirsiniz. Şimdi onun “takipçileri” Walkers olarak adlandırılıyor ve bir logoları var, işte basitleştirilmiş bir versiyon:

\\
 \\              //\\  
  \\            //  \\            //
   \\          //    \\          //
    \\        //      \\        //
     \\      //        \\      //
      \\    //          \\    //
       \\  //    //\\    \\  //
        \\//    //  \\    \\//
         //    //    \\    \\
        //\\  //      \\  //\\
           \\//        \\//  \\
                              \\

Bu zorluğun amacı bu logoyu basmaktır.

KURALLAR:

  1. Bir dizeden meta standartlarına göre bir işlev listesi döndürürseniz, lütfen bunu ekrana yazdıran bir altbilgi sağlayın.
  2. Yukarıdaki logonun tüm karakterleri orada olmalıdır. Kısayol yok!
  3. En az sayıda bayt kazanır!

her satırın sonunda fazladan boşluk olabilir mi (çıktının görünüşünü değiştirmedikleri için)? Öncü / ekleme satırları olabilir mi?
dzaima

@ dzaima, evet yapabilirsin.
Dat

Alan Walker için +1!
Radyoaktif

Yanıtlar:


14

Odun kömürü , 31 30 29 27 bayt

F²«Jι⁰↙χ↖↖⁵↙↙⁵↖↖²P↖χ↙↗χ↘↘¹²

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Ne yazık ki Copybu durumda istediğimi yapmıyor, bu yüzden bunun yerine döngü yapmam gerekiyor. Açıklama:

F²«Jι⁰

Her şeyi iki kez çizin, ancak imleç ikinci kez bir karakter sağdan başlayarak.

   ↙χ↖↖⁵↙↙⁵↖↖²P↖χ

Ana W'yi sağdan sola çizin, ancak imleci ters V yakınında bırakın.

   ↙↗χ↘↘¹²

Ters V'yi çizin.


Saf çözümleri 20 bayt ile "sadece" yersiniz: P
Stephen

1
@StepHen İlk etapta bir döngü oluşturmanın yükü göz önüne alındığında,% 46'lık bir tasarruf fena değil ...
Neil

Aynalama bunun için daha kısa değil mi?
Stephen

5
@StepHen Asimetriyi sabitlemek çok pahalı. Yapabileceğim en iyi 35 byte oldu: F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³.
Neil

13

JavaScript (ES6), 172 139 bayt

let f =

_=>`1
3s1
5o5o
7k9k
9gdg
bchc
d8l8
f48194
h08590
i899
g14d41
n0h05
1p`.replace(/.p?/g,n=>' '.repeat((n=parseInt(n,36))/2)+(c='/\\'[n&1])+c)

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

Nasıl?

Logo temel olarak boşluk gruplarından sonra gelen ya //da \\satır beslemelerinden oluşur.

Boşluklar ve bitiş kalıpları base-36 değerleri kullanılarak kodlanır:

  • En az anlamlı bit bitiş desenini verir: 0for //, 1for \\.
  • Diğer tüm bitler bitiş deseninden önceki boşluk sayısını verir.

30 boşluktan oluşan son satır haricinde her şey tek bir taban-36 rakamıyla kodlanabilir \\, ardından 1ptaban-36'da 30 * 2 + 1 = 61 = olur. Bunu p12 boşluk olarak yorumlamak gerekir, \\ancak bu desen hiçbir yerde görünmez. Yani, biz sadece normal ifadede 2 ekstra bayt pahasına bu özel durumda işleyebilir: /.p?/.


İlk sürüm, 186 bayt

Not: Bu, logo güncellemesinden önce gönderildi.


Güzel golf. Cevapları kontrol etmeden önce kendime bir bıçak attı; 172 bayt sürümünüze benzer bir şeyle sonuçlandı.
Shaggy

7

brainfuck , 579 bayt

+++++++++[>+>+++++>+++>++++++++++<<<<-]>+>++>+++++>++..<<<.>>.>..<..............<..>>..<..<<.>>..>..<............<..>..>..<............<..<.>>...>..<..........<..>....>..<..........<..<.>>....>..<........<..>......>..<........<..<.>>.....>..<......<..>........>..<......<..<.>>......>..<....<..>..........>..<....<..<.>>.......>..<..<..>....<..>>..<....>..<..<..<.>>........>..<<..>....<..>..>..<....>..<<..<.>>.........<..>....<..>....>..<....>..<<<.>>........<..>>..<..<..>......>..<..<..>>..<<<.>>...........>..<<..>........>..<<..>..>..<<<.>>..............................>..

Çevrimiçi deneyin!

47 92 32 10Bellekteki sabitleri oluşturur , ardından uygun şekilde seçer ve çıkarır.


Ben ediyorum oldukça emin bu özellikle son kısmı, aşağı golfed edilebilir
Stan Strum

@StanStrum Denemek için çekinmeyin. Denedim, ancak özellikle BF'nin koşullu ayrıntısı göz önüne alındığında, bunu ifade etmenin güzel bir yolunu bulamadım.
Conor O'Brien


4

Sakız , 77 76 bayt

HexDump:

0000000: 75cf c109 8000 0c43 d17b a6c8 0659 28fb  u......C.{...Y(.
0000010: cf21 05cb a782 3de9 4b5a b495 5b9f 4946  .!....=.KZ..[.IF
0000020: 870f dac3 f8ea 5704 51b9 2284 c611 0114  ......W.Q.".....
0000030: 9029 f09e ec67 2362 21e1 075e 2136 29b9  .)...g#b!..^!6).
0000040: 08b9 bf97 8939 cf33 ebbf d33e            .....9.3...>

Çevrimiçi deneyin!

Sakız eşiği. : P


3

/// , 166 bayt

/-/!#//,/%"//'/%#//&/!!//%/  //#/\\\/\\\///"/\\\\\\\\//!/%%/"
 "&!'"%
,&-,&-
% "&'!"&'
!"&#!,&#
! "!'&"!'
!,-&,-
!% "'-"!"'
&"#-,!"#
& #-!"!"
&#"'!,'"
&% "#&"#,
&&&!,

Çevrimiçi deneyin!


3

C (gcc) , 377 bayt

char*r="2\\01 2\\14 2/2\\02 2\\12 2/2 2\\12 2/03 2\\10 2/4 2\\10 2/04 2\\8 2/6 2\\8 2/05 2\\6 2/8 2\\6 2/06 2\\4 2/10 2\\4 2/07 2\\2 2/4 2/2\\4 2\\2 2/08 2\\2/4 2/2 2\\4 2\\2/09 2/4 2/4 2\\4 2\\08 2/2\\2 2/6 2\\2 2/2\\011 2\\2/8 2\\2/2 2\\030 2\\";char d[9];main(i){do{if(*r==48)puts(""),r++;for(i=0;isdigit(*r);d[i++]=*r++);for(d[i]=0,i=atoi(d);i--;putchar(*r));}while(*r++);}

Çevrimiçi deneyin!




3

Haskell, 161160 bayt

foldr(\a->(++(' '<$[1..fromEnum a-last(96:[64|a<'`'])])++last("\\\\":["//"|a<'`'])))""<$>words"` `Na LbLb JdJc HfHd FhFe DjDf Bd`DBg @dbD@h ddDI `BfB`H b@h@k ~"

Çevrimiçi deneyin!

Önceki boşluklar \\, küçük harf olarak ve önce //boşluk sayısının eksi 96 (veya 64) olduğu ASCII değeri olduğu büyük harfler olarak kodlanır . Sıfır boşluk `/ @. Her satırın boşlukları ters sırada saklanır, çünkü bunlar sağ kat tarafından tüketilir.


2

Kömür , 51 bayt

P↘¹²→↘¹²↑P↗⁵→↗⁵↓P↘⁵→↘⁵↑P↗χ→↗χM¹¹↓M⁵←P↖¹²←↖¹²↓P↙χ←↙χ

Çevrimiçi deneyin!

Kömür , 50 bayt

P↘χ→↘χ↑P↗⁵→↗⁵M⁵↑←P↙χ←↙χMχ↗‖MM¹⁸←P↖²←↖²J²⁷¦⁹P↘²→↘²¦

Çevrimiçi deneyin!


2

Odun kömürü , 50 31 bayt

F²«↘¹²↗↗⁵↘↘⁵↗↗⁹Mχ↓M⁴←↖¹²↙↙χJ¹¦⁰

Çevrimiçi deneyin! Bağlantı ayrıntılı sürümdür.

Denedim. (Ayrıca, diğerine biraz benzese bile bunu tamamen kendi başıma yaptığımı göstereceğim. [Shiz, tekrar yaptım. Bu arada, hala farklı.: P])


1

Jöle , 65 bayt

“<fṭY2Ẹ<ƭẹ£ʋ¥¹)Œ<Ẓ⁹ḣ⁶ıĠ\ṃṛ?04|ẏḌẉƙ+’b36⁶ẋ“ÇỴ$ñ⁵FḄ’Bị⁾\/¤ẋ€2¤żFs36

Çevrimiçi deneyin!

Karakterlerin bir listesini döndürür. TIO bağlantısının ayrı satırlara yazdırmak için bir altbilgisi vardır.


1

PHP, 186 bayt:

Her iki sürüm de PHP 5.5 veya üstünü gerektirir.

Birlikte çalışın-nr veya çevrimiçi deneyin


alan sıkıştırması en kısa alternatifi sunar:

(çift ters eğik çizgi eşlendi 0, çift eğik çizgi f, rakamlara sıkıştırılmış saplamalar)

while(~$c="0
1077f0
2066f2066f
3055f4055f
408f608f
506f806f
604f5504f
702f4f0402f
80f4f2040f
9f4f4040
8f02f602f0
560f80f20
87870"[$i++])echo+$c?str_pad("",$c):strtr($c,["\\\\",f=>"//"]);

PHP 7.1 uyarı verir; düzeltmek için +$cile değiştirin $c>0.


temel 64 kodlu bitmap ( 187 bayt ):

(boşluk 00, yeni satır 01, çift ters eğik çizgi 10ve çift eğik çizgi ile eşleştirildi 11, ardından her biri bir karaktere 3 "pikseli" birleştirdi, ikilikten 1ASCII'ye önce eklendi ve dönüştürüldü)

for(;$c=ord("d`@@@@yB@@@@p`@@@M@`@@C@H@@@t@`@@p@H@@M@B@@p@@`@M@@`C@@@H@t@@`pC`BCP@@l@p`Bt@@C@L@`BP@@xL@BCd@@@K@@Bpd@@@@@@@@@B"
[$i++]);)for($b=6;$b;)echo[" ","
","\\\\","//"][3&$c>>$b-=2];

(okuma kolaylığı için ilk satır sonu; diğeri esastır)


1

Sakız , 74 bayt

00000000: 758c 4b11 0400 0885 eea6 a081 85e8 9f63  u.K............c
00000010: 4fb2 7f4f 0e30 4f07 e5ed 7615 8613 e16f  O..O.0O...v....o
00000020: 321c ab89 d484 4a22 2591 8a48 45a0 2052  2.....J"%..HE. R
00000030: 809e dfd5 481e 3d0d 7a24 4d96 bc43 b2fd  ....H.=.z$M..C..
00000040: 96d3 cdbf fff9 7fa7 f300                 ..........

Çevrimiçi deneyin!


1

PowerShell , 22120 bayt

$ofs=''
"b
 b$(' '*14)/b
$((2..6|%{' '*$_+"b$(($a=' '*(14-++$i*2)))/$(' '*$i*2)b$a/`n"}))   4b  /4/b4b  /
44b/4/  b4b/
44 /4/4b4b
44/b  /4  b  /b
44   b/44b/  b
$(' '*30)b"-replace4,'    '-replace'/','//'-replace'b','\\'

Çevrimiçi deneyin!

Oldukça naif bir yaklaşım ( ve JS cevabından 50 bayt daha kötü, cringe ). Herkes -replacePowerShell birden fazla s yapmak için bir yol biliyor ?

Veskah sayesinde -1 bayt.



@Veskah Basit bayt tasarrufu. Teşekkürler!
AdmBorkBork

1

Python 2 , 180 bayt

print''.join(c<'3'and'\\/\n\\/'[int(c)::3]or' '*(int(c,36)-2)for c in'0230g104240e140e1250c160c1260a180a127081a08128061c0612904161060412a0161406012b16160602a1041804102d01a01402w0')

Çevrimiçi deneyin!

Kodlama temel 36'dır:

0 => \\
1 => //
2 => \n

ve aksi halde,

n => (n-2) spaces

1

C # (Visual C # Etkileşimli Derleyici) , 122 bayt (121 karakter)

_=>@"
A
9;13) +!(# 0$(	-) 
4	(	€".SelectMany(j=>(j%2>0?"//":@"\\").PadLeft(j/4)+(j%4>1?"\n":""))

Çevrimiçi deneyin!

açıklama

Logonun her bir kısmı , sonunda a \\veya a ile birlikte 0+ boşluktan başka //bir satırsonu da olabilir. Bunlardan 52 tane var . Daha sonra her segmenti bir karaktere kodlarız:

  • Her segmentteki boşluk sayısını alın, ardından bu sayıya 2 ekleyin.

  • Bit sayıyı 2 kez sola kaydırın.

  • Segment //bit ile biterse VEYA sayıyı birer birer bitirir .

  • Segment bir satırsonu ile bitiyorsa, bit cinsinden VEYA sayıyı iki katına çıkarın.

  • Numarayı al ve bir karaktere dök.

  • Her bölüm için tekrarlayın.

İşte 52 segmentin tümü ve kodladıkları sayısal değer:

10,12,65,10,16,57,16,59,20,49,24,51,24,41,32,43,28,33,40,35,32,25,48,27,36,17,25,8,24,19,40,9,25,16,24,11,45,25,24,26,41,8,17,32,17,10,52,9,40,9,18,128

j>>2->j/4
Yalnızca ASCII

124 . Ayrıca ben el-eğer URL el sanatları eğer boş bayt koyabilirsiniz düşünüyorum
sadece ASCII-sadece

açıklamasında: sağa değil, sola kaydırma . Ayrıca dize listesi sadece her satırı kendi dize olarak döndürürseniz ... string.Concatgeçerli olması için buraya ihtiyacınız olacak ...
sadece ASCII-sadece

yakın , bu 143 iken normal 141
sadece ASCII

@ ASCII-only Bunun gibi dizelerin bir listesini döndürmeye oldukça eminim, ancak her ihtimale karşı başka bir çözüm ekleyeceğim. Ancak, bu geçerli mi: tio.run/##Sy7WTS7O/…
Cehalet

0

C (gcc) , 144 140 139 bayt

Tavan kedisi sayesinde -4 bayt .

Dizedeki her karakter, belirli bir dizeden önce kullanılacak bir dizi boşluğu kodlar. Eğer küçük harf (veya ters tırnak) ise, dize "\" olur ve büyük harf veya @ ise "//" olur. Bir boşluk bir satırsonu anlamına gelir.

f(c,i){for(i=0;c="` aN` bLbL cJdJ dHfH eFhF fDjD gBD`dB h@Dbd@ IDdd H`BfB` k@h@b ~"[i++];)printf("%*s",c%32+2,c<33?"\n":c<96?"//":"\\\\");}

Çevrimiçi deneyin!

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.