En este desafío, debe mostrar el arte ASCII de un globo de agua dada la cantidad de agua con la que se llena el globo:
| __||__ |
| / # #\ |
| |######| |
| |######| |
| |######| |
| |######| |
| |######| |
| \######/ |
| |
| |
+----------+
Como dibujar el globo
Para mostrar un globo de tamaño n
, siga los siguientes pasos (nota: cada vez que /
se usa el símbolo de división ( ), representa la división entera, redondeando hacia abajo):
Dibuje un contenedor compuesto por diez barras verticales (
|
) a la izquierda y derecha, diez guiones (-
) en la parte inferior y un signo más (+
) en la esquina inferior izquierda e inferior derecha. Esto hace que todo sea 12x11, y el "interior" 10x10.| | | | | | | | | | | | | | | | | | | | +----------+
Dibuje dos barras verticales (la apertura del globo) centradas en el centro de la fila superior, con
n/2
guiones bajos (_
) a cada lado (para este ejemplo,n
será 5):| __||__ | | | | | | | | | | | | | | | | | | | +----------+
Dibuje una barra diagonal (
/
) y una barra diagonal inversa (\
) alrededor de esta fila superior, una fila debajo:| __||__ | | / \ | | | | | | | | | | | | | | | | | +----------+
Dibuje
n
filas de barras verticales con espacios idénticos, y luego una fila de un par de barras invertidas y barras diagonales (aún con espacios idénticos):| __||__ | | / \ | | | | | | | | | | | | | | | | | | | | | | \ / | | | | | +----------+
"Rellene" el globo con agua, representado por un signo de hash (
#
). Comience en la fila más baja y trabaje hacia arriba. Si una fila no está completamente llena, puede colocar las marcas hash donde lo desee (en el ejemplo a continuación, se colocan al azar, pero podría colocarlas, por ejemplo, todas en el lado izquierdo si lo desea).| __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+
El máximo n
es 7 y el mínimo es 0.
Entrada
La entrada será un número entero i
, que es la cantidad de marcas hash (agua) que se deben dibujar.
Nunca será menor que 2 o mayor que 100.
Salida
La salida debe ser un globo de tamaño que n
contenga i
marcas hash (unidades de agua), donde n
es el tamaño más bajo posible que puede contener i
unidades de agua. Como i
siempre será 2 o mayor, n
siempre será 0 o mayor.
El tamaño máximo posible en el que se puede dibujar un globo es n
= 7. Si un globo de tamaño 7 no puede caber en la cantidad de agua especificada, el globo aparece:
| |
| |
|## # ###|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
+----------+
(Lo anterior debe ser la salida para input i
= 76. Al igual que el globo sin reventar, las seis unidades adicionales de agua en la fila superior se pueden organizar como lo desee).
Casos de prueba
¿Por qué tener un caso de prueba, cuando puede tenerlos todos ?
Aquí hay un GIF animado de todas las entradas i
de 2 a 100:
Puntuación
Este es el código de golf , por lo que gana el código más corto en bytes.