Introducción:
Cuando pensamos en Ladybugs, generalmente pensamos en un insecto rojo o naranja oscuro con manchas negras. Aunque esto no es necesariamente cierto, ya que también hay mariquitas negras con manchas rojas / anaranjadas , o mariquitas sin manchas , principalmente nos imaginamos mariquitas algo así como esta mariquita asiática:
Otra cosa a tener en cuenta es que las manchas en las mariquitas son casi siempre simétricas. Y ahí es donde entra este desafío.
Reto:
Dado un entero n
( >= 0
), genera la siguiente mariquita ASCII-art una o varias veces, con puntos simétricos divididos equitativamente entre los dos lados, así como las dos o más mariquitas.
Aquí está el diseño predeterminado de la mariquita:
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
Si n=0
, sacamos la mariquita arriba como está
Cuando n
es mayor que cero, rellenamos los espacios del error ASCII-art con minúsculas o
, o reemplazamos el |
del centro con una mayúscula O
. El objetivo es realizar n
cambios en la (s) mariquita (s) 'vacía', sin dejar de producir una salida simétrica (por mariquita) y generar la menor cantidad posible de mariquitas.
Las salidas válidas para n=1
son:
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
Pero esto sería inválido:
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
Las salidas válidas para n=2
son:
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
Lo primero n
que ya no es posible caber en una sola mariquita es n=24
. En ese caso, tendrá que dividirlo de la manera más uniforme posible en dos mariquitas (puede elegir si se mostrarán una al lado de la otra, o una debajo de la otra, con un espacio opcional o una nueva línea entre ellas). Por ejemplo:
_V_ _V_
/(@I@)\ /(@I@)\
/o o|o o\ /o o|o o\
|o o | o o||o o | o o|
\o o|o o/ \o o|o o/
''-!-'' ''-!-''
O:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
Reglas de desafío:
n
estará en el rango de0-1000
.- Puede elegir enviar a STDOUT, regresar como String o 2D-char array / list, etc. Su llamada.
- No se permiten líneas nuevas o espacios en blanco innecesarios. Se permiten espacios en blanco al final y una nueva línea al final.
- Como se mencionó anteriormente, cuando son necesarias dos o más mariquitas, puede elegir si las enviará una al lado de la otra o una debajo de la otra (o una combinación de ambas ...)
- Cuando se imprimen dos o más mariquitas una al lado de la otra, se permite un solo espacio opcional en el medio. Cuando dos o más mariquitas se imprimen entre sí, se permite una nueva línea opcional en el medio.
- Puede elegir el diseño de las mariquitas en cualquier paso durante la secuencia, siempre que sean simétricas e iguales a la entrada
n
. - Dado que el objetivo es tener
n
cambios Y la menor cantidad de mariquitas posible, comenzará a usar más de una mariquita cuando esté arriban=23
. El diseño de estas mariquitas no necesariamente tiene que ser el mismo. De hecho, esto ni siquiera es posible para algunas entradas, comon=25
on=50
para nombrar dos. - Además, a veces no es posible dividir equitativamente los puntos entre dos o más mariquitas. En ese caso, tendrá que dividirlos de la manera más uniforme posible, con una diferencia de 1 como máximo entre ellos.
Entonces n=50
, teniendo en cuenta las dos últimas reglas, esta sería una salida posible válida (donde el primer error tiene 16 puntos y los otros dos tienen 17):
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de código de golf lo desalienten de publicar respuestas con idiomas que no sean de codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
o
y en su O
lugar. He cambiado un poco la redacción.
n=50
ejemplo, creo que quieres decir que el primer error tiene 16 puntos y los otros dos tienen 17.