Dadas duas entradas - um deles uma string não-vazia de impressão ASCII (incluindo espaço, excluindo nova linha), sendo o outro um dos dois valores distintos, consistentes de sua escolha ( 1 / 0
, l / r
, left / right
, etc.) - Saída de uma arte avião ASCII banner da string, apontando para a esquerda ou direita. Para maior consistência, usarei left
e right
ao longo desta descrição do desafio.
O plano é |-DI>-/
( left
) ou \-<ID-|
( right
). Como o banner é limpo, ele consiste nos caracteres da sequência de entrada separados por espaços, da esquerda para a direita ( left
) ou da direita para a esquerda ( right
), e cercados por uma caixa da forma
/--/
---< <
\--\
ou
\--\
> >---
/--/
Nota deve haver um espaço entre o início / fim da mensagem e os >
, <
personagens.
Por exemplo, aqui está a mensagem HAPPY BIRTHDAY!
e a direção left
:
/-------------------------------/
|-DI>-/---< H A P P Y B I R T H D A Y ! <
\-------------------------------\
Aqui está a mensagem PPCG
e a direção right
. Observe que as letras aparecem "para trás" quando vistas deste lado do banner:
\---------\
> G C P P >---\-<ID-|
/---------/
Regras
- Novas linhas à esquerda ou à direita ou espaços em branco são opcionais, desde que os caracteres sejam alinhados corretamente.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
eval
- Insira um programa que gere um plano voltado para a esquerda para a esquerda e um programa que gere um plano voltado para a direita para a direita.Respostas:
JavaScript (ES6),
141138 bytesString e direção são inseridas através da sintaxe de currying.
'/\n|-DI>-/---< '
para a esquerda,'/\n|-DI<-\\---> '
para a direita.Mostrar snippet de código
fonte
eval
... apenas forneça fontes de função esquerda e direita como seus dois valores de sua escolha. (Eu pensei que era uma meta sobre isso, mas eu não posso encontrá-lo.)eval
"truque" seria essa brecha no espírito, mesmo que não explicitamente declarada. Essa resposta aqui é meio inteligente, no entanto.eval
como uma resposta séria . Uma solução alternativa para desafios futuros como esse pode ser incluir entradas como parte da contagem de bytes.Perl 5 , 149 +1 (-p) = 150 bytes
Experimente online!
Entrada de duas linhas. Primeiro é a mensagem. O segundo é 0 para a esquerda, 1 para a direita.
fonte
V ,
73, 65 bytesExperimente online!
Não é a melhor pontuação, mas isso ocorre porque quase metade disso vem da reversão da produção.
Hexdump:
Leva a string como entrada para o buffer e a direção como
0
para esquerda e1
para direita como argumentos de linha de comando.fonte
05AB1E , 63 bytes
Experimente online!
Com base em erros que podem ser corrigidos no futuro.
fonte
0
na segunda linha para a1
.Carvão ,
44403935 bytesExperimente online! Link é a versão detalhada do código. A primeira entrada é 1 para a direita e 0 para a esquerda, a segunda é a string do banner. Edit:
Salvo 1 byte usandoReflectButterfly(:Up)
comoatualmente possui um erro de posicionamento do cursor, mas salvei mais 4 bytes invertendo a direção da impressão e agora não importa qual uso.ReflectButterfly(:Down)
3834versão de 32 bytes se o espelhamento do banner foi permitido:Experimente online! Link é a versão detalhada do código. A primeira entrada é 0 para a direita e 1 para a esquerda. Explicação:
Imprima o avião.
Imprima a metade superior da caixa (observe o espaço à direita).
Se a segunda entrada for diferente de zero, inverta a direção da impressão, caso contrário, reflita o plano e a caixa.
Imprima a mensagem com espaçamento extra (observe o espaço à direita). O cursor está na extremidade da caixa do plano, portanto a mensagem precisa ser revertida.
Reflita para obter a metade inferior da caixa.
fonte
Geléia ,
6865 bytesExperimente online!
Leva 1 para a direita, 0 para a esquerda.
-3 bytes graças a @ JonathanAllan ( grr eu sempre esqueço
AB+
faz o mesmo queB+@A
)fonte
³K“|-DI>-/---< “ < ”j
salva um byte;LḤ‘”-x⁾//jṭ⁶x11¤Fµ,Ñj¢œs3U⁴¡YÑ⁴¡
salva outros 2 da mesma maneira.Carvão , 56 bytes
-8 bytes graças a totallyhuman e Erik, o Outgolfer!
Experimente online!
A correção dos casos mencionados pelo dzaima afetou bastante a contagem de bytes. 36 bytes se pudermos reverter caracteres como
<
e/
.fonte
' '.join(s)
funciona. Certamente isso pode ser usado em carvão vegetal?Join
trabalha com strings.' '.join
em Charcoal. Eu credito vocês dois.SOGL V0.12 ,
554743 bytesExperimente aqui!
0 para a esquerda e 1 para a direita
fonte
Python 2 ,
137136133 bytesExperimente online!
1
para a direita e0
para a esquerdafonte
1-2*d
por-d|1
(negard
xor1
).*list('></\\<>')[d::2]
PHP, 175 bytes
Execute com
-nr
, primeiro argumento =0
para enfrentar a direita ou1
para a esquerda e o segundo argumento = textoou tente online .
fonte
Perl 5 , 126 bytes
Código de 124 bytes + 2 para
-pl
.Experimente online!
fonte
Corea , 51 bytes
Experimente online!
Explicação
O programa é composto por algumas partes:
1: Inicialização
2: texto bruto
O texto a seguir é exibido no campo de conteúdo:
3: postamble
fonte
Excel VBA, 198 bytes
Função de janela imediata VBE anônima que recebe a entrada como sequência de
[A1]
e int do intervalo,[B1]
onde1
indica que o plano está à esquerda e0
indica que o plano está à direita.fonte
Planilhas Google, 210 bytes
Função de planilha anônima que recebe entrada como string de [A1] e int do intervalo [B1], em que 1 indica que o plano está à esquerda e 0 indica que o plano está à direita.
fonte