Escolha um conjunto de quatro bytes sem substituição (ou seja, nenhum byte repetido) e não necessariamente em uma ordem específica, de qualquer um dos quatro conjuntos a seguir:
- Os caracteres de qualquer codificação de byte único
- Os caracteres Unicode no intervalo de 00 a FF
- Os números decimais assinados no intervalo −128–127
- Os números inteiros decimais não assinados no intervalo de 0 a 255
Os quatro valores que você escolheu (indique quais são) serão as entradas válidas. Você deve emparelhar cada valor com uma das obras de arte ASCII abaixo.
Dada (por qualquer meio) uma de suas quatro entradas válidas, responda (por qualquer meio, até mesmo a lista de strings) com a arte ASCII correspondente. Espaço em branco extra é permitido em todos os lados, desde que a imagem esteja lá em uma área 2D contígua.
Primeiro byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
/\ | | /\
/ \| |/ \
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
AAAAAAAAAAAA
Segundo byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
AAAA
Terceiro byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
|__|
/\
Quarto byte:
db
_/\_
\__/
| |
| |
| |
|__|
/\
O que há de novo neste desafio de complexidade de arte ASCII Kolmogorov?
A capacidade de selecionar entradas válidas apresenta um novo aspecto para o desafio. As entradas são claramente muito limitadas para codificar todo o resultado, mas podem levar informações suficientes para merecer atenção.
As múltiplas saídas possíveis compartilham muita estrutura; portanto, a reutilização de código ou sub-imagens é possível tanto dentro de cada imagem quanto entre as imagens.
Há duplicação suficiente para que mesmo idiomas que não sejam bem orientados para desafios como esse tenham uma boa chance de poder usar código inteligente, em vez de apenas codificar códigos extensivamente.
Respostas:
JavaScript (ES6), 247 bytes
RegPack'ed. Espera 0 ... 3 como entrada.
Experimente online!
fonte
BigFu!#?%$Rocket
? Mas isso é apenas Falcon Heavy!BFR.reduce() == FalconHeavy
: p"FRFRFRF" = "Fu!#?%$RocketFu!#?%$RocketFu!#?%$RocketFu!#"
direito? Eu amo essa resposta mais do que qualquer coisa lol.Carvão , 67 bytes
Experimente online! Link é a versão detalhada do código. Recebe a entrada como um número 3-0. Explicação:
Digite o número.
Se for 3, puxe metade do booster, espelhe-o e vá para a ponta do foguete.
Se não for 0, puxe a metade esquerda do tanque de combustível dianteiro.
Mas se for 3, desenhe metade esquerda do cone do nariz.
Desenhe o lado esquerdo do foguete.
Desenhe a base apropriada do foguete e espelhe para finalizar.
fonte
Charcoal
apenas para este concurso?Limpo ,
292278273271262261 bytes-5 bytes graças a Adám
Experimente online!
Uma função lambda, mapeando os
Int
valores0..3
para as imagens na ordem listada no OP.fonte
Python 2 ,
292290284282281 bytesExperimente online!
Pega um número inteiro de 0 a 3 como entrada e usa a indexação de lista (1 ou 0) para criar cada saída.
-2 para um par de colchetes desnecessários.
-6 removendo uma atribuição de variável que foi usada apenas uma vez.
-2 para outra variável de uso único.
-1 com uma dica de @Rod
fonte
n
,p
eq
as variáveis são desnecessárias também (-2 bytes cada)." db"
e"_/\_"
será associado"\n"
mais tarde, você pode transformar os dois em" db\n_/\_"
para salvar outro byte. Você pode (provavelmente) mover o+y
, de cada elemento, fora da lista (e remover o const também) algo como(...)[i>2]+["\__/"]
Rubi ,
234212205 bytesExperimente online!
Leva um número inteiro de 0 a 3. Constrói uma matriz das metades esquerdas de cada fase, indexa e depois preenche e reflete cada linha. Todo o preenchimento é da mesma largura, portanto, as últimas fases têm espaços em branco à esquerda. Retorna uma matriz de seqüências de caracteres.
-2 bytes: declare
y
como uma matriz imediatamente, em vez de precisar*[y]
mais tarde.-5 bytes: substitua
x="\\"
port=%w{_| \\}
.-5 bytes: menos desreferenciamento, mais adição de matriz.
-1 bytes:
h+y*21+[?A*2]
->h+y*21<<?A*2
na fase 1.-3 bytes: A especificação permite a omissão de
*$/
ingressar no resultado.-4 bytes:
["b","\\_","_/"]
->%w{b \\_ _/}
na fase 3.-2 bytes: use também a
%w
notação na matriz principal.-7 bytes: use em
rjust
vez de preenchimento manual (isso também significa gerar o lado esquerdo e espelhá-lo, em vez de começar pelo lado direito)Ungolfed:
fonte
SOGL V0.12 , 90 bytes
Experimente aqui!
Entradas 0/1/2/3 correspondentes aos bytes 1/2/3/4
fonte
Ruby ,
209183 bytesExperimente online!
Entradas necessárias da seguinte maneira:
A idéia é pegar o
centre core + upper stage + fairing
padrão e modificá-lo para as outras saídas.Comentado
fonte
Vermelho , 333 bytes
Experimente online!
Toma 1 - 4 como entrada
Rebol , 258 bytes
Fiz um experimento com a
compress
função de Rebol , comprimindo uma sequência de todos os 4 estágios e imprimindo a parte correspondente após a descompressão:fonte
Jstx , 124 bytes
Explicação
Experimente online!
fonte
C (clang) ,
421408 bytesExperimente online!
fonte