(relacionado / inspirado por: Dibuja una formación de bolos )
Un pasatiempo divertido en los meses de invierno es realizar bolos de muñeco de nieve, usando una pelota grande (como una pelota de baloncesto) y pequeñas figuras de muñeco de nieve. Recreemos esto en ASCII.
Cada muñeco de nieve consta de lo siguiente:
(.,.)
( : )
Aquí está la alineación de los diez "alfileres" del muñeco de nieve
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
(.,.) (.,.)
( : ) ( : )
(.,.)
( : )
Estos "pines" están etiquetados de 1
a 10
como
7 8 9 10
4 5 6
2 3
1
Hasta ahora, tan estándar. Sin embargo, a diferencia de los bolos normales, los alfileres del muñeco de nieve simplemente se aplanan y no se quitan por completo. Esto lo hace alguien que necesita aplanar manualmente la nieve de cualquier pin que haya sido golpeado. Un muñeco de nieve aplanado está representado por _____
(cinco guiones bajos), con un espacio en blanco arriba. Aquí hay un ejemplo con los 1 3 5 6 9 10
pines aplanados (lo que significa que solo 2 4 7 8
quedan los pines)
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
Entrada
- Una lista de enteros desde
1
hasta10
en cualquier formato conveniente que represente qué pines se golpearon y, por lo tanto, deben aplanarse. - Cada número solo aparecerá como máximo una vez, y los números pueden estar en cualquier orden (ordenados, sin clasificar, ordenados descendentes): su elección, lo que haga que su código sea más golfoso.
- Se garantiza que la entrada tenga al menos un número entero.
Salida
La representación artística ASCII resultante de los pines del muñeco de nieve, con los pines correctos aplanados.
Reglas
- Las nuevas líneas o espacios en blanco iniciales o finales son opcionales, siempre que los caracteres se alineen correctamente.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que las personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Ejemplos
1 3 5 6 9 10
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
1 2 3
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
_____ _____
_____
1 2 3 4 5 6 8 9 10
(.,.)
( : ) _____ _____ _____
_____ _____ _____
_____ _____
_____
fuente
Respuestas:
05AB1E ,
4544 bytesPruébalo en línea!
Explicación
fuente
Muñeco de nieve 1.0.2 , 157 bytes
Pruébalo en línea!
Cuando vi este desafío, supe que tenía que responder en el idioma perfecto ...
Esta es una subrutina que toma la entrada como una matriz de números y las salidas como una cadena a través del permavar actual.
Envuelto para "legibilidad" / estética:
Versión ungolfed / comentada:
fuente
apilada , no competitiva, 118 bytes
Agregué
deepmap
y algunas otras cosas después de este desafío, junto con toneladas de correcciones de errores. Pruébalo aquí!Sin golf
Salida:
fuente
Python 2,
248243241226224223221210206200177 bytes-5 gracias a @Rod
-15 nuevamente gracias a Rod
-1 usando el cálculo del espacio nuevamente desde Rod
Parece más largo debido a más líneas y sangrías, pero sorprendentemente 11 bytes más cortos.
Estoy seguro de que esto será inferior a 200 ...
Tenía razón, pero no sin 23 bytes de pistas serias de @ Pietu1998. ¡Muchas gracias!
Pruébalo en línea!
Toma la entrada como una lista de enteros. Demasiado grande en 248 pero funciona.
fuente
C #
233221213203 bytesEl método toma una matriz int a como la lista de pines caídos
envuelto
expandido
eliminó algunos bytes por sugerencias en los comentarios de Ghost, raznagul y auhmaan.
fuente
new[]{7,4,2,1}.Contains(i--)
ai<9&&i%3==1||i==2
i==7||i<5&&i!=3
i==7|i<5&i--!=3
var o="";var x=...
porstring o="",x=""...
.Lote, 262 bytes.
Nota: Las líneas 2, 3 y 4 terminan en un espacio, y también genera un espacio final en cada línea. Estos se pueden eliminar a un costo de 5 bytes. Funciona creando las variables s1 ... s10 como las mitades inferiores de los muñecos de nieve, y luego alisando las dadas como argumentos de línea de comandos. Las filas apropiadas se imprimen dos veces, la primera vez con las mitades inferiores reemplazadas por las mitades superiores. Esto ahorra 18 bytes sobre el uso de dos conjuntos de medias variables superior e inferior.
fuente
JavaScript,
154149 bytesfuente
Pyth, 63 bytes
Un programa que toma la entrada de una lista de enteros e imprime el resultado.
Banco de pruebas
[Explicación más tarde]
fuente
Pyth, 51 bytes
El código contiene algunos no imprimibles, así que aquí hay un
xxd
hexdump.Pruébalo en línea.
Sin imprimibles, 52 bytes
Pruébalo en línea.
fuente
Javascript
178169 bytesEsencialmente un puerto de mi respuesta C #.
Toma una matriz int como la lista de "pines" aplanados;
Envuelto:
Ampliado y explicado:
fuente