¡Los caminantes se unen! - Logotipo de Alan Walker

13

Es posible que conozcas a Alan Walker por su siempre popular canción Faded. Ahora sus "seguidores" se llaman Walkers y tienen un logotipo, aquí hay una versión simplificada:

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

El objetivo de este desafío es imprimir este logotipo.

REGLAS:

  1. Si devuelve una lista de cadenas de una función según los meta estándares, proporcione un pie de página que lo imprima en la pantalla.
  2. Todos los caracteres del logotipo anterior deben estar allí. ¡Sin atajos!
  3. ¡El menor número de bytes gana!
Dat
fuente
¿Puede haber espacios adicionales al final de cada línea (ya que no cambian la apariencia de la salida)? ¿Puede haber nuevas líneas iniciales / anexas?
dzaima
@dzaima, sí puedes.
Dat
+1 para Alan Walker !!
Muy radioactivo el

Respuestas:

14

Carbón , 31 30 29 27 bytes

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

Pruébalo en línea! El enlace es a la versión detallada del código. Lamentablemente Copyno hace lo que quiero en este caso, así que tengo que hacer un bucle. Explicación:

F²«Jι⁰

Dibuje todo dos veces, pero con el cursor comenzando un carácter a la derecha la segunda vez.

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

Dibuje la W principal de derecha a izquierda, pero deje el cursor cerca de la V. invertida

   ↙↗χ↘↘¹²

Dibuja la V. invertida

Neil
fuente
Usted "solo" venció a las soluciones ingenuas por 20 bytes: P
Stephen
1
@StepHen Un ahorro del 46% no está mal dada la sobrecarga de configurar un bucle en primer lugar ...
Neil
¿La duplicación no es más corta para esto?
Stephen
55
@StepHen Arreglar la asimetría cuesta demasiado. Mejor que podía hacer era 35 bytes: F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³.
Neil
13

JavaScript (ES6), 172 139 bytes

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>

¿Cómo?

El logotipo consiste básicamente en grupos de espacios seguidos de uno //o \\y saltos de línea.

Los espacios y los patrones finales se codifican utilizando valores de base 36:

  • El bit menos significativo da el patrón final: 0for //, 1for \\.
  • Todos los demás bits dan el número de espacios antes del patrón final.

Todo se puede codificar de esta manera con un solo dígito base-36, excepto la última línea que consta de 30 espacios seguidos de \\30 * 2 + 1 = 61 = 1pen base-36. Esto pdebe interpretarse como 12 espacios seguidos de \\pero este patrón no aparece en ningún lado. Por lo tanto, podemos simplemente manejar este caso especial en el costo de 2 bytes adicionales en la expresión regular: /.p?/.


Primera versión, 186 bytes

NB: Este se envió antes de la actualización del logotipo.

Arnauld
fuente
Muy bien golfizado. Le hice una puñalada a esto antes de comprobar las respuestas; terminó con algo similar a su versión de 172 bytes.
Shaggy
7

brainfuck , 579 bytes

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

Pruébalo en línea!

Genera las constantes 47 92 32 10en la memoria, luego las selecciona y las genera según corresponda.

Conor O'Brien
fuente
Estoy bastante seguro de que esto se puede reducir, especialmente esa última parte
Stan Strum,
@StanStrum Siéntase libre de darle una oportunidad. Lo intenté pero no pude encontrar ninguna manera agradable de expresarlo, especialmente dada la verbosidad de BF en los condicionales.
Conor O'Brien
6

SOGL V0.12 , 38 bytes

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

Pruébalo aquí!

dzaima
fuente
Ahora estamos esperando a Carbón: P
Sr. Xcoder
@ Mr.Xcoder si no me gana, no lo sé.
dzaima
4

Chicle , 77 76 bytes

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

Pruébalo en línea!

Umbral de chicle. :PAG

totalmente humano
fuente
3

/// , 166 bytes

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

Pruébalo en línea!

Conor O'Brien
fuente
3

C (gcc) , 377 bytes

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

Pruébalo en línea!

cleblanc
fuente
356 bytes
ceilingcat
3

Python 2 , 197 bytes

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

Pruébalo en línea!

Utiliza la lógica de la respuesta JS.

totalmente humano
fuente
191 bytes
movatica
3

Haskell, 161 160 bytes

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

Pruébalo en línea!

Los espacios anteriores \\se codifican como letras minúsculas y antes //como letras mayúsculas, donde el número de espacios es el valor ASCII menos 96 (o 64). Cero espacios es `/ @. Los espacios de cada línea se almacenan en orden inverso, ya que se consumen en un doblez derecho.

nimi
fuente
2

Carbón , 51 bytes

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

Pruébalo en línea!

Carbón de leña , 50 bytes

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

Pruébalo en línea!

Stephen
fuente
2

Carbón , 50 31 bytes

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

Pruébalo en línea! El enlace es a la versión detallada.

Lo intenté. (Además, señalaré que hice esto completamente por mi cuenta, incluso si se ve algo similar al otro. [Shiz, lo hice de nuevo. Por cierto, esto todavía es diferente.: P])

totalmente humano
fuente
1

Jalea , 65 bytes

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

Pruébalo en línea!

Devuelve una lista de caracteres. El enlace TIO tiene un pie de página para imprimir en líneas separadas.

Erik el Outgolfer
fuente
1

PHP, 186 bytes:

Ambas versiones requieren PHP 5.5 o posterior.

Corre -nro pruébalos en línea


la compresión espacial ofrece la alternativa más corta:

(doble barra invertida asignada a 0, barra doble a f, sapces comprimidos a dígitos)

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 arroja advertencias; reemplazar +$ccon $c>0para arreglar.


mapa de bits codificado en base 64 ( 187 bytes ):

(espacio asignado 00, nueva línea 01, doble barra diagonal inversa 10y doble barra diagonal 11, luego concatena 3 "píxeles" cada uno en un carácter, antepuesto 1y convertido de binario a 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];

(primer salto de línea para facilitar la lectura; el otro es esencial)

Titus
fuente
1

Chicle , 74 bytes

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

Pruébalo en línea!

ovs
fuente
1

PowerShell , 221 220 bytes

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

Pruébalo en línea!

Enfoque bastante ingenuo ( y 50 bytes peor que la respuesta de JS, avergonzado ). ¿Alguien sabe de una manera de hacer múltiples -replaces en PowerShell?

-1 byte gracias a Veskah.

AdmBorkBork
fuente
1

Python 2 , 180 bytes

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

Pruébalo en línea!

La codificación es base 36:

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

y de lo contrario,

n => (n-2) spaces
Chas Brown
fuente
1

C # (compilador interactivo de Visual C #) , 122 bytes (121 caracteres)

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

Pruébalo en línea!

Explicación

Cada parte del logotipo es solo 0+ espacios con una \\o una //al final, más tal vez una nueva línea. Hay 52 de estos. Luego codificamos cada segmento en un carácter:

  • Tome el número de espacios en cada segmento, luego agregue 2 a ese número.

  • Bit cambia el número a la izquierda 2 veces.

  • Si el segmento termina con //, en bits o el número por uno.

  • Si el segmento termina con una nueva línea, en bits O el número por dos.

  • Toma el número y échalo en un char.

  • Repita para cada segmento.

Aquí están todos los 52 segmentos y el valor numérico en el que codifican:

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
Encarnación de la ignorancia
fuente
j>>2->j/4
Solo ASCII
124 . También creo que puede poner los bytes nulos si crea la URL a mano
solo ASCII
en la explicación: desplazamiento a la izquierda , no a la derecha. también la lista de cadenas es solo si devuelve cada línea como su propia cadena ... necesitará el string.Concataquí para que sea válida ...
Solo ASCII
cerca , esto es 143 mientras que normal es 141
solo ASCII
@ Solo ASCII Estoy bastante seguro de que está permitido devolver una lista de cadenas como esta, pero agregaré otra solución por si acaso. Sin embargo, esto es válido: tio.run/##Sy7WTS7O/…
Encarnación de la ignorancia
0

C (gcc) , 144 140 139 bytes

-4 bytes gracias a ceilingcat .

Cada carácter en la cadena codifica una cantidad de espacios para usar antes de cierta cadena. Si se trata de una letra minúscula (o una tecla de retroceso), entonces la cadena es "\", y si es mayúscula o @, es "//". Un espacio significa una nueva línea.

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

Pruébalo en línea!

gastropner
fuente