ウォーカーが参加!-アラン・ウォーカーのロゴ


13

アラン・ウォーカーは、彼のこれまでの人気曲「フェード」から知っているかもしれません。現在、彼の「フォロワー」は「ウォーカー」と呼ばれ、ロゴが付いています。これは簡略版です。

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

このチャレンジの目標は、このロゴを印刷することです。

ルール:

  1. メタ標準に従って関数から文字列のリストを返す場合は、画面に出力するフッターを提供してください。
  2. 上記のロゴのすべてのキャラクターがそこにいなければなりません。ショートカットはありません!
  3. 最短バイト数が勝ちます!

各行の最後に余分なスペースを入れることができますか(出力の外観が変わらないため)。先頭または末尾の改行を使用できますか?
dzaima

@dzaima、はい、できます。
ダット

+1 for Alan Walker !!
高放射能

回答:


14

31 30 29 27バイト

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

オンラインでお試しください!リンクは、コードの詳細バージョンです。悲しいCopyことに、この場合、私が望むことはしませんので、代わりにループしなければなりません。説明:

F²«Jι⁰

すべてを2回描画しますが、カーソルは2番目に1文字右に始まります。

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

メインWを右から左に描画しますが、カーソルは逆Vの近くに残します。

   ↙↗χ↘↘¹²

逆Vを描画します。


あなたは「単純な」単純な解決策を20バイト倒しました:P
スティーブン

1
@StepHen A 46%の節約が悪い最初の場所でループを設定するためのオーバーヘッドを与えられていない...
ニール

このためにミラーリングは短くなりませんか?
スティーブン

5
@StepHen非対称性の修正には多すぎるコストがかかります。できることは35バイトF²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³でした。
ニール

13

JavaScript(ES6)、172 139バイト

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>

どうやって?

ロゴは基本的にスペースのグループで構成され、その後に//or \\と改行が続きます。

スペースと終了パターンは、base-36値を使用してエンコードされます。

  • 最下位ビットは終了パターンを示します:0for //1for \\
  • 他のすべてのビットは、終了パターンの前のスペースの数を示します。

30個のスペースとそれに続くで構成される最後の行を除いて、すべてを36桁の1桁でこのようにエンコードできます\\。30* 2 + 1 = 61 = 1pbase-36 このpは、12個のスペースとそれに続くものとして解釈する必要がありますが\\、このパターンはどこにも現れません。そのため、正規表現で2バイト余分にコストをかけて、この特殊なケースを簡単に処理できます/.p?/


最初のバージョン、186バイト

注意:これは、ロゴの更新前に提出されました。


素敵なゴルフ。答えを確認する前に、これを自分で突き刺してください。172バイトバージョンに似たものになりました。
シャギー

7

brainfuck、579バイト

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

オンラインでお試しください!

47 92 32 10メモリに定数を生成し、必要に応じて選択して出力します。


アイムかなり確かこれは、特に最後の部分という、ダウンgolfedすることができます
スタン・ストラム

@StanStrum試してみてください。試してみましたが、特に条件付きのBFの冗長性を考えると、それを表現する良い方法を見つけることができませんでした。
コナーオブライエン


4

バブルガム77 76バイト

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

オンラインでお試しください!

バブルガムのしきい値。:P



3

C(gcc)、377バイト

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

オンラインでお試しください!




3

Haskell、161 160バイト

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 ~"

オンラインでお試しください!

前のスペース\\は小文字としてエンコードされ、前//のスペースは大文字としてエンコードされます。スペースの数はASCII値から96(または64)を引いた値です。ゼロスペースは`/ @です。各行のスペースは、右折で消費されるため、逆の順序で保存されます。



2

50 31バイト

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

オンラインでお試しください!リンクは詳細バージョンです。

私は試した。(また、私は完全に自分でこれを行ったことを指摘します。たとえそれが他のものといくらか似ているとしてもです。[シズ、私はもう一度やりました。



1

PHP、186バイト:

両方のバージョンにPHP 5.5以降が必要です。

オンラインで実行する-nr、オンラインで試してください


スペース圧縮は、最短の代替手段を提供します。

(二重バックスラッシュはにマップされ0、二重スラッシュはにf、空間は数字に圧縮されます)

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では警告が生成されます。置き換え+$c$c>0修正します。


base 64エンコードビットマップ(187バイト):

(にスペースをマッピングし00、改行を01、に二重スラッシュを10、に二重スラッシュを付け11、それぞれ3つの「ピクセル」を1文字に連結し、先頭に追加1してバイナリからASCIIに変換します)

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

(読みやすくするための最初の改行;もう1つは必須です)


1

バブルガム、74バイト

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

オンラインでお試しください!


1

PowerShell221 220バイト

$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','\\'

オンラインでお試しください!

かなりナイーブなアプローチ(およびJSの回答よりも50バイト悪い、クリンジ)。誰でも複数の方法を知っている-replacePowerShellでのますか?

Veskahのおかげで-1バイト。



@Veskahシンプルなバイト節約。ありがとう!
AdmBorkBork


1

C#(Visual C#Interactive Compiler)、122バイト(121文字)

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

オンラインでお試しください!

説明

ロゴの各部分は、末尾にa \\またはaが付いた0個以上のスペース//に加えて改行が含まれている場合があります。あり52これらの。次に、各セグメントを文字にエンコードします。

  • 各セグメントのスペースの数を取得し、その数に2を追加します。

  • 数値を左に2回ビットシフトします。

  • セグメントがで終わる場合//、ビット単位でORするか、数字を1つずつ。

  • セグメントが改行で終わる場合は、ビット単位でORするか、または数値を2でORします。

  • 番号を取得して、charにキャストします。

  • セグメントごとに繰り返します。

以下は、52個のセグメントすべてと、それらがエンコードする数値です。

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
ASCIIのみ

124。また、私はあなたがもしあなたの手工芸品にURLをヌル・バイトを置くことができると思います
ASCIIのみ

説明では、ビットシフトは左ではなく、右です。また、文字列のリストは、あなたが独自の文字列として各行を返す場合にのみ...あなたが必要であるstring.Concat...それが有効であるためにここに
ASCIIのみの

close、これは143であるのに対して、normalは141
ASCIIのみ

@ASCIIのみこのような文字列のリストを返すことは許可されますが、念のため別のソリューションを追加します。ただし、これは有効ですか:tio.run
無知の

0

C(GCC) 144の 140 139バイト

ceilingcatのおかげで-4バイト

文字列の各文字は、特定の文字列の前に使用するいくつかのスペースをエンコードします。小文字(またはバックティック)の場合、文字列は「\」であり、大文字または@の場合、「//」です。スペースは改行を意味します。

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?"//":"\\\\");}

オンラインでお試しください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.