Trump precisa do muro construído e você vai fazê-lo! Para construir seu muro com mais eficiência, criei um padrão simples e repetível para você usar:
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
Trump lhe dirá quantos segmentos de parede ele precisa e você os construirá para ficar assim.
Aqui está o padrão:
__ __ <-- 4-2-3-2-4 ' _ _ '
| |_| | <-- 3-1-2-1-1-1-2-1-3 ' | |_| | '
___| |___ <-- 3-1-7-1-3 '_| |_'
- - - - <-- 1-3-1-3-1-3-1-1 '- - - - '
- - - - - - - <-- 1-1-...-1-1 ' - -...- - '
- - - - - - - - <-- 1-1-...-1-1 '- - ... - -'
——————————————— <-- 15 Unicode U+2014
A entrada sempre será um número inteiro> 0.
Casos de teste:
1
__ __
| |_| |
___| |___
- - - -
- - - - - - -
- - - - - - - -
———————————————
2
__ __ __ __
| |_| | | |_| |
___| |______| |___
- - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -
——————————————————————————————
5
__ __ __ __ __ __ __ __ __ __
| |_| | | |_| | | |_| | | |_| | | |_| |
___| |______| |______| |______| |______| |___
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————
Como você precisa fazer isso rápido, escreva o programa mais curto possível!
Se ajudar, escrevi o desafio primeiro, o título por último;)
fonte
JavaScript (ES6),
116115 bytesGuardou um byte graças a @Neil !
Explicação
Praticamente o mesmo que o método CJam do @Mauris , mas sem o mapeamento de caracteres.
As peças da parede estão no formato:
porque se você repetir cada linha 15 vezes, obtém:
e depois de cortar apenas os últimos 15 caracteres, você obtém:
Ungolfed
Teste
Mostrar snippet de código
fonte
.slice(-15)
?__ __ n| |_| | n| |___n - n- n -n—
Jolf , 135 bytes
Golfe considerável pode ser feito.Desative a impressão bonita e limpe a saída para obter um melhor resultado. Experimente aqui! . Além disso, use isso para testar um número arbitrário com mais facilidade.Vou adicionar uma explicação mais tarde.
fonte
Haskell,
116118108 bytesExemplo de uso:
Isso usa a mesma estratégia que outras respostas aqui: cada linha da parede é um ciclo do padrão, por exemplo, "-" (traço + espaço) para a segunda última linha. Repita cada padrão, pegue 15 caracteres para obter um segmento de parede, repita novamente e leve
15*n
caracteres paran
segmentos.Edit: @Mauris encontrados 10 bytes. Obrigado!
fonte
Utilitários Bash + Linux (
247186180 bytes)Como caracteres não imprimíveis foram generosamente usados na construção do script acima, aqui está um hexdump:
fonte
PowerShell,
103100 caracteres (105 bytes no disco, 102 sem BOM)Praticamente o mesmo que o método @ user81655 .
Versão ungolfed
Exemplo de uso
fonte
param($c);' __ __n | |_| |n___| |n- n -n- n—'-split'n'|%{-join($_*15)[0..14]*$c}
PHP 5.4, (
182175 caracteres)Versão Ungolfed
[7 caracteres salvos por sugestão do Blackhole. ]
Outra versão com menos bytes, mas mais caracteres
PHP 5.4, (176 caracteres, 178 bytes)
Apenas substitua 15 instâncias do m-dash por uma dash com a função str_repeat
fonte
$s
, use-a diretamente no seu loop:foreach([…,…] as $d)
2) Remova o espaço, a menos que antes$d
:foreach(… as$d)
3) Use uma nova linha em vez de"\n"
.C, 148 bytes
A pontuação exclui a nova linha desnecessária antes da
f(n)
qual é incluída para maior clareza.os números mágicos em
p
codificam os caracteres da parede na base 4, que são reconstruídos a partir da sequência" -|_"
0,1,2,3, respectivamente16843009
em hexadecimal é0x1010101
. isso é usado para as linhas com-
elas.Como
_
é codificado por3
, a linha inferior pode ser codificada simplesmente como-1
, que é o número com todos os bits configurados para1
.fonte
#define q
e apenas codificando os valores.Vitsy , 121 bytes
Como eu faço isso é acessando cada linha, uma de cada vez, fornecendo pilhas com o conteúdo de cada linha. Então, eu produzo uma linha de cada vez. Se alguém quiser que eu dê uma explicação mais aprofundada, basta perguntar (atualmente estou abrindo presentes, então ...).
Experimente online!
fonte
PHP5.5,
182172 bytes168 bytescom base na resposta de @ kuldeep.kamboj, que na verdade é de 212 bytes no momento em que escrevo isso, com 182 caracteres. Eu gostaria que o muro fosse um pouco mais alto, então eu poderia fazer mais otimização ;-)
este tem 168 bytes, graças a @ JörgHülsermann
Este é 172 bytes
Este é 182 bytes :-)
versão ungolfed
fonte
$x=$r(' ',3);
pode ser reduzido para$x=' ';
as$z
Python 3,
132122120 bytesUngolfed:
fonte
)for s in[
...Python 2, (161 caracteres, 191 bytes)
fonte
SOGL V0.12 , 32 bytes
Experimente aqui!
Explicação:
fonte
Vim, 90 teclas
Supondo que a entrada esteja em um buffer por si só, o seguinte fará o trabalho (nova linha apenas para facilitar a leitura)
onde
^M
é um return,^[
é escape,^K
é ctrl+ke^V
éctrl+v .Provavelmente, isso pode ser bastante diminuído, pois pode haver maneiras muito melhores de gerar o padrão.
fonte
Java 11,
236235231229 bytesExperimente online.
NOTA: O Java 11 ainda não está no TIO, então
String.repeat(int)
foi emulado comrepeat(String,int)
(para a mesma contagem de bytes).Explicação:
fonte
Powershell + arquivo, 92 bytes
salvar o PowerShell em
get-trumpwall.ps1
(40 bytes)salve o arquivo de dados com nome
f
e os dados contêm símbolo Unicode e apenas Linux LF (52 bytes):hex dump:
Exemplo de uso
fonte