Elija un conjunto de cuatro bytes sin reemplazo (es decir, sin byte repetido), y no necesariamente en un orden particular, de cualquiera de los siguientes cuatro conjuntos:
- Los caracteres de cualquier codificación de un solo byte
- Los caracteres Unicode en el rango 00 – FF
- Los enteros decimales con signo en el rango −128–127
- Los enteros decimales sin signo en el rango 0-255
Los cuatro valores que elija (indique cuáles son) serán las entradas válidas. Debe emparejar cada valor con una de las siguientes obras de arte ASCII.
Dada (por cualquier medio) una de sus cuatro entradas válidas, responda (por cualquier medio, incluso una lista de cadenas) con el arte ASCII correspondiente. Se permite espacio en blanco adicional en todos los lados, siempre que la imagen esté allí en un área 2D contigua.
Primer byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
/\ | | /\
/ \| |/ \
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
| || || |
AAAAAAAAAAAA
Segundo byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
AAAA
Tercer byte:
/\
/ \
| |
| |
| |
|____|
\__/
| |
| |
| |
|__|
/\
Cuarto byte:
db
_/\_
\__/
| |
| |
| |
|__|
/\
¿Qué hay de nuevo en este desafío de complejidad ASCII art Kolmogorov?
La capacidad de seleccionar entradas válidas presenta un nuevo aspecto para el desafío. Las entradas son claramente demasiado limitadas para codificar el resultado completo, pero pueden llevar suficiente información para merecer atención.
Las múltiples salidas posibles comparten mucha estructura, por lo que la reutilización de código o subimágenes es factible tanto dentro de cada imagen como entre imágenes.
Existe suficiente duplicación para que incluso los lenguajes que no estén bien orientados a desafíos como este tengan una oportunidad justa de poder usar código inteligente en lugar de solo codificar cadenas de manera extensiva.
Respuestas:
JavaScript (ES6), 247 bytes
RegPack'ed. Espera 0 ... 3 como entrada.
Pruébalo en línea!
fuente
BigFu!#?%$Rocket
? ¡Pero esto es solo Falcon Heavy!BFR.reduce() == FalconHeavy
: p"FRFRFRF" = "Fu!#?%$RocketFu!#?%$RocketFu!#?%$RocketFu!#"
¿Derecha? Me encanta esta respuesta más que nada jajaja.Carbón , 67 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Toma la entrada como un número 3-0. Explicación:
Ingrese el número.
Si es 3, dibuje la mitad del refuerzo, luego duplíquelo, luego muévase a la punta del cohete.
Si no es 0, dibuje la mitad izquierda del tanque de combustible delantero.
Pero si es 3, dibuje la mitad izquierda del cono de la nariz.
Dibuja el lado izquierdo del cohete.
Dibuja la base apropiada del cohete y luego espejo para terminar.
fuente
Charcoal
solo para este concurso?Limpio ,
292278273271262261 bytes-5 bytes gracias a Adám
Pruébalo en línea!
Una función lambda, que asigna los
Int
valores0..3
a las imágenes en el orden indicado en el OP.fuente
Python 2 ,
292290284282281 bytesPruébalo en línea!
Toma un número entero de 0 a 3 como entrada y utiliza la indexación de lista (1 o 0) para construir cada salida.
-2 para un par de paréntesis innecesarios.
-6 eliminando una asignación variable que solo se usó una vez.
-2 para otra variable de uso único.
-1 con un consejo de @Rod
fuente
n
,p
y tambiénq
son innecesarias (-2 bytes cada una)." db"
y"_/\_"
se unirá"\n"
más tarde, puede convertir ambos en" db\n_/\_"
para guardar otro byte. Puede (probablemente) mover+y
, de cada elemento, fuera de la lista (y eliminar también la constante) algo como(...)[i>2]+["\__/"]
Ruby ,
234212205 bytesPruébalo en línea!
Toma un entero 0-3. Construye una matriz de las mitades izquierdas de cada fase, indexa, luego rellena y refleja cada fila. Todo el relleno tiene el mismo ancho, por lo que las últimas fases tienen espacios en blanco iniciales. Devuelve una matriz de cadenas.
-2 bytes: declarar
y
como una matriz de inmediato en lugar de necesitar*[y]
más tarde.-5 bytes: reemplazar
x="\\"
cont=%w{_| \\}
.-5 bytes: menos desreferenciación, más adición de matriz.
-1 bytes:
h+y*21+[?A*2]
->h+y*21<<?A*2
en la fase 1.-3 bytes: la especificación permite la omisión de
*$/
unir el resultado.-4 bytes:
["b","\\_","_/"]
->%w{b \\_ _/}
en la fase 3.-2 bytes: use la
%w
notación en la matriz principal también.-7 bytes: usar en
rjust
lugar de relleno manual (esto también significa generar el lado izquierdo y reflejarlo, en lugar de comenzar con el lado derecho)Sin golf:
fuente
SOGL V0.12 , 90 bytes
Pruébalo aquí!
Entradas 0/1/2/3 correspondientes a los bytes 1/2/3/4
fuente
Rubí ,
209183 bytesPruébalo en línea!
Entradas requeridas de la siguiente manera:
La idea es tomar el
centre core + upper stage + fairing
valor predeterminado y modificarlo para las otras salidas.Comentado
fuente
Rojo , 333 bytes
Pruébalo en línea!
Toma 1 - 4 como entrada
Rebol , 258 bytes
Hice un experimento con la
compress
función de Rebol , comprimiendo una cadena de las 4 etapas e imprimiendo la parte correspondiente después de la descompresión:fuente
Jstx , 124 bytes
Explicación
Pruébalo en línea!
fuente
C (sonido metálico) ,
421408 bytesPruébalo en línea!
fuente