Les marcheurs se joignent! - Logo d'Alan Walker

13

Vous connaissez peut-être Alan Walker grâce à sa chanson très populaire Faded. Maintenant ses "followers" s'appellent Walkers et ils ont un logo, voici une version simplifiée:

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

Le but de ce challenge est d'imprimer ce logo.

RÈGLES:

  1. Si vous renvoyez une liste de chaînes d'une fonction selon les normes méta, veuillez fournir un pied de page qui l'imprime à l'écran.
  2. Tous les personnages du logo ci-dessus doivent être présents. Pas de raccourcis!
  3. Le nombre d'octets le plus court gagne!
Dat
la source
peut-il y avoir des espaces supplémentaires à la fin de chaque ligne (car ils ne changent pas l'apparence de la sortie)? Peut-il y avoir des nouvelles lignes en tête / en annexe?
dzaima
@dzaima, oui vous le pouvez.
Dat
+1 pour Alan Walker !!
HighlyRadioactive

Réponses:

14

Charbon de bois , 31 30 29 27 octets

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

Essayez-le en ligne! Le lien est vers la version détaillée du code. Malheureusement, Copyne fait pas ce que je veux dans ce cas, je dois donc faire une boucle à la place. Explication:

F²«Jι⁰

Dessinez tout deux fois, mais avec le curseur commençant un caractère à droite la deuxième fois.

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

Tracez le W principal de droite à gauche, mais laissez le curseur près du V. inversé

   ↙↗χ↘↘¹²

Dessinez le V. inversé

Neil
la source
Vous "seulement" avez battu les solutions naïves de 20 octets: P
Stephen
1
@StepHen Une économie de 46% n'est pas mauvaise étant donné la surcharge de mise en place d'une boucle en premier lieu ...
Neil
La mise en miroir n'est-elle pas plus courte pour cela?
Stephen
5
@StepHen Corriger l'asymétrie coûte trop cher. Le meilleur que je pouvais faire était de 35 octets: F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³.
Neil
13

JavaScript (ES6), 172 139 octets

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>

Comment?

Le logo se compose essentiellement de groupes d'espaces suivis par //ou\\ de sauts de ligne.

Les espaces et les motifs de fin sont codés à l'aide des valeurs de base 36:

  • Le bit le moins significatif donne le motif de fin: 0for //, 1for\\ .
  • Tous les autres bits donnent le nombre d'espaces avant le motif de fin.

Tout peut être encodé de cette façon avec un seul chiffre en base 36 sauf la dernière ligne qui se compose de 30 espaces suivis de \\, conduisant à 30 * 2 + 1 = 61 = 1pen base 36. Cela pdoit être interprété comme 12 espaces suivis de \\mais ce motif n'apparaît nulle part. Donc, nous ne pouvons traiter ce cas particulier au coût de 2 octets supplémentaires dans l'expression régulière: /.p?/.


Première version, 186 octets

NB: Celui-ci a été soumis avant la mise à jour du logo.

Arnauld
la source
Joliment joué au golf. J'ai essayé moi-même avant de vérifier les réponses; fini avec quelque chose de similaire à votre version 172 octets.
Shaggy
7

brainfuck , 579 octets

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

Essayez-le en ligne!

Génère les constantes 47 92 32 10en mémoire, puis les sélectionne et les génère selon les besoins .

Conor O'Brien
la source
Je suis à peu près sûr que cela peut être joué au golf, en particulier cette dernière partie
Stan Strum
@StanStrum N'hésitez pas à essayer. J'ai essayé mais je n'ai pas trouvé de moyen agréable de l'exprimer, surtout compte tenu de la verbosité de BF dans les conditionnels.
Conor O'Brien
6

SOGL V0.12 , 38 octets

6«╝5╚@┼╬⁷7«8ž'⁸3L╚ž92L╚╬5L«26«╝╬5:21╬5

Essayez-le ici!

dzaima
la source
Maintenant, nous attendons le charbon de bois: P
M. Xcoder
@ Mr.Xcoder si ça ne me bat pas, je ne sais pas.
dzaima
4

Bubblegum , 77 76 octets

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

Essayez-le en ligne!

Seuil Bubblegum. : P

totalement humain
la source
3

/// , 166 octets

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

Essayez-le en ligne!

Conor O'Brien
la source
3

C (gcc) , 377 octets

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

Essayez-le en ligne!

cleblanc
la source
356 octets
Plafond
3

Python 2 , 197 octets

print''.join(i>'/'and(i<'2'and['/','\\'][int(i)]*2or' '*int(i))or i for i in"""1
 19501
2193021
319 0419 0
41806180
51608160
61409 140
71204014120
8104021410
90404141
8012061201
921081021
99931""")

Essayez-le en ligne!

Utilise la logique de la réponse JS.

totalement humain
la source
191 octets
movatica
3

Haskell, 161 160 octets

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

Essayez-le en ligne!

Les espaces avant \\sont codés en lettres minuscules et avant //en lettres majuscules où le nombre d'espaces est la valeur ASCII moins 96 (ou 64). Zéro espace est `/ @. Les espaces de chaque ligne sont stockés dans l'ordre inverse, car ils sont consommés par un pli droit.

nimi
la source
2

Fusain , 51 octets

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

Essayez-le en ligne!

Fusain , 50 octets

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

Essayez-le en ligne!

Stephen
la source
2

Fusain , 50 31 octets

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

Essayez-le en ligne!Le lien est vers la version détaillée.

J'ai essayé. (De plus, je soulignerai que je l'ai fait complètement par moi-même, même si cela ressemble un peu à l'autre. [Shiz, je l'ai encore fait. C'est encore différent, soit dit en passant.: P])

totalement humain
la source
1

Gelée , 65 octets

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

Essayez-le en ligne!

Renvoie une liste de caractères. Le lien TIO a un pied de page pour imprimer sur des lignes distinctes.

Erik le Outgolfer
la source
1

PHP, 186 octets:

Les deux versions nécessitent PHP 5.5 ou version ultérieure.

Courez avec -nrou essayez-les en ligne


la compression d'espace donne l'alternative la plus courte:

(double barre oblique inverse mappée 0, double barre oblique f, sapces compressé en chiffres)

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 génère des avertissements; remplacer +$cpar $c>0pour corriger.


bitmap codé en base 64 ( 187 octets ):

(espace mappé vers 00, nouvelle ligne vers 01, double barre oblique inverse 10et double barre oblique vers 11, puis concaténé 3 "pixels" chacun en un caractère, ajouté 1et converti du binaire en 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];

(premier saut de ligne pour faciliter la lecture; l'autre est essentiel)

Titus
la source
1

Bubblegum , 74 octets

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

Essayez-le en ligne!

ovs
la source
1

PowerShell , 221220 octets

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

Essayez-le en ligne!

Approche assez naïve ( et 50 octets de moins que la réponse JS, grincer des dents ). Quelqu'un connaît-il un moyen de faire plusieurs -replaces dans PowerShell?

-1 octet grâce à Veskah.

AdmBorkBork
la source
1

Python 2 , 180 octets

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

Essayez-le en ligne!

L'encodage est en base 36:

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

et sinon,

n => (n-2) spaces
Chas Brown
la source
1

C # (Visual C # Interactive Compiler) , 122 octets (121 caractères)

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

Essayez-le en ligne!

Explication

Chaque partie du logo ne comporte que 0+ espaces avec un \\ou un //à la fin, plus peut-être une nouvelle ligne. Il y en a 52 . Nous encodons ensuite chaque segment en un caractère:

  • Prenez le nombre d'espaces dans chaque segment, puis ajoutez 2 à ce nombre.

  • Bit décale le nombre vers la gauche 2 fois.

  • Si le segment se termine par //, bit par bit OU le nombre par un.

  • Si le segment se termine par une nouvelle ligne, bit par bit OU le nombre par deux.

  • Prenez le nombre et jetez-le dans un char.

  • Répétez l'opération pour chaque segment.

Voici tous les 52 segments et la valeur numérique dans laquelle ils codent:

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
Incarnation de l'ignorance
la source
j>>2->j/4
ASCII uniquement
124 . Je pense aussi que vous pouvez mettre les octets nuls si vous fabriquez l'URL à la main
ASCII uniquement
dans l'explication: bitshift à gauche , pas à droite. aussi la liste des chaînes est seulement si vous renvoyez chaque ligne comme sa propre chaîne ... vous aurez besoin de l' string.Concatici pour qu'elle soit valide ...
ASCII uniquement
fermer , c'est 143 alors que la normale est 141
ASCII uniquement
@ ASCII uniquement Je suis à peu près sûr que le retour d'une liste de chaînes comme celle-ci est autorisé, mais j'ajouterai une autre solution au cas où. Cependant, est-ce valable: tio.run/##Sy7WTS7O/…
Incarnation de l'ignorance
0

C (gcc) , 144 140 139 octets

-4 octets grâce au plafond .

Chaque caractère de la chaîne code un certain nombre d'espaces à utiliser avant une certaine chaîne. S'il s'agit d'une lettre minuscule (ou d'un crochet), la chaîne est "\", et si elle est en majuscule ou @, c'est "//". Un espace signifie une nouvelle ligne.

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

Essayez-le en ligne!

gastropner
la source