Talvez você conheça Alan Walker da sua sempre popular música Faded. Agora, seus "seguidores" se chamam Walkers e têm um logotipo, aqui está uma versão simplificada:
\\
\\ //\\
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // \\ //
\\ // //\\ \\ //
\\// // \\ \\//
// // \\ \\
//\\ // \\ //\\
\\// \\// \\
\\
O objetivo deste desafio é imprimir este logotipo.
REGRAS:
- Se você retornar uma lista de seqüências de caracteres de uma função conforme os meta-padrões, forneça um rodapé que a imprima na tela.
- Todos os caracteres do logotipo acima devem estar lá. Sem atalhos!
- O menor número de bytes vence!
Respostas:
Carvão ,
31302927 bytesExperimente online! Link é a versão detalhada do código. Infelizmente
Copy
, não faz o que eu quero neste caso, então tenho que fazer um loop. Explicação:Desenhe tudo duas vezes, mas com o cursor iniciando um caractere para a direita na segunda vez.
Desenhe o W principal da direita para a esquerda, mas deixe o cursor próximo ao V. invertido
Desenhe o V. invertido
fonte
F²«Jι⁰↘χ↗↗⁵M⁵↑←↙χ»‖M↥\\¶ \\F²«Jι⁰↖³
.JavaScript (ES6),
172139 bytesQuão?
O logotipo consiste basicamente em grupos de espaços seguidos por um
//
ou outro\\
e feeds de linha.Espaços e padrões finais são codificados usando os valores da base 36:
0
for//
,1
for\\
.Tudo pode ser codificado dessa maneira com um único dígito base-36, exceto a última linha que consiste em 30 espaços seguidos por
\\
, levando a 30 * 2 + 1 = 61 =1p
na base-36. Issop
deve ser interpretado como 12 espaços seguidos por,\\
mas esse padrão não aparece em lugar algum. Assim, podemos simplesmente lidar com este caso especial no custo de 2 bytes extras na expressão regular:/.p?/
.Primeira versão, 186 bytes
NB: Este foi enviado antes da atualização do logotipo.
Mostrar snippet de código
fonte
brainfuck , 579 bytes
Experimente online!
Gera as constantes
47 92 32 10
na memória e as seleciona e gera como apropriado.fonte
SOGL V0.12 , 38 bytes
Experimente aqui!
fonte
Bubblegum ,
7776 bytesHexdump:
Experimente online!
Limiar de chiclete. : P
fonte
/// , 166 bytes
Experimente online!
fonte
C (gcc) , 377 bytes
Experimente online!
fonte
Python 2 , 197 bytes
Experimente online!
Usa a lógica da resposta JS.
fonte
Haskell,
161160 bytesExperimente online!
Os espaços anteriores
\\
são codificados como letras minúsculas e antes//
como letras maiúsculas, onde o número de espaços é o valor ASCII menos 96 (ou 64). Zero espaços é`
/@
. Os espaços de cada linha são armazenados na ordem inversa, porque são consumidos pela dobra à direita.fonte
Carvão , 51 bytes
Experimente online!
Carvão , 50 bytes
Experimente online!
fonte
Carvão ,
5031 bytesExperimente online! Link é a versão detalhada.
Eu tentei. (Além disso, vou apontar que fiz isso completamente sozinho, mesmo que pareça um pouco com o outro. [Shiz, fiz novamente. A propósito, ainda é diferente: P])
fonte
Geléia , 65 bytes
Experimente online!
Retorna uma lista de caracteres. O link TIO possui um rodapé para imprimir em linhas separadas.
fonte
PHP, 186 bytes:
Ambas as versões requerem PHP 5.5 ou posterior.
Corra com
-nr
ou experimente-os onlinea compactação de espaço oferece a alternativa mais curta:
(barra invertida dupla mapeada para
0
, barra dupla paraf
, letras compactadas em dígitos)O PHP 7.1 gera avisos; substitua
+$c
por$c>0
para corrigir.bitmap codificado em base 64 ( 187 bytes ):
(espaço mapeado para
00
, nova linha para01
, barra invertida para10
e barra invertida para11
, em seguida, concatenou 3 "pixels" cada para um caractere, precedido1
e convertido de binário em ASCII)(primeira quebra de linha por conveniência de leitura; a outra é essencial)
fonte
Chiclete , 74 bytes
Experimente online!
fonte
PowerShell ,
221220 bytesExperimente online!
Abordagem bastante ingênua ( e 50 bytes pior que a resposta do JS, encolher ). Alguém sabe como fazer vários
-replace
s no PowerShell?-1 byte graças a Veskah.
fonte
Python 2 , 180 bytes
Experimente online!
A codificação é base 36:
e caso contrário,
fonte
C # (compilador interativo do Visual C #) , 122 bytes (121 caracteres)
Experimente online!
Explicação
Cada parte do logotipo tem apenas 0 + espaços com um
\\
ou um//
no final, além de talvez uma nova linha. Existem 52 deles. Em seguida, codificamos cada segmento em um caractere:Pegue o número de espaços em cada segmento e adicione 2 a esse número.
Bit desloque o número para a esquerda 2 vezes.
Se o segmento terminar com
//
, bit a bit OU o número por um.Se o segmento terminar com uma nova linha, bit a bit OU o número por dois.
Pegue o número e jogue-o em um char.
Repita para cada segmento.
Aqui estão todos os 52 segmentos e o valor numérico em que eles codificam:
fonte
j>>2
->j/4
string.Concat
aqui para que seja válido ...C (gcc) ,
144140139 bytes-4 bytes graças ao ceilingcat .
Cada caractere na sequência codifica um número de espaços a serem usados antes de uma determinada sequência. Se for uma letra minúscula (ou um backtick), a sequência será "\" e, se for maiúscula ou @, será "//". Um espaço significa uma nova linha.
Experimente online!
fonte