Dado un solo número entero x
donde 0 <= x <= 91
sale una pila de botellas de cerveza con la falta de tantas botellas (y estantes). Por simplicidad, solo mostraré las primeras 6 botellas y lo que sería para cada una de las primeras entradas.
Aquí está la pila de botellas, cada número es la botella que debe quitar para esa entrada (1 indexado):
Tenga en cuenta que estamos usando 91 en lugar de 99 porque 99 daría como resultado una pila inestable de botellas.
Ejemplo
Con 0 botellas faltantes ( x=0
):
|=|
| |
| |
/ \
. .
|-----|
| |
|-----|
|_____|
=============
|=| |=|
| | | |
| | | |
/ \ / \
. . . .
|-----| |-----|
| | | |
|-----| |-----|
|_____| |_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
Para ver la salida completa de 0, consulte aquí: https://pastebin.com/ZuXkuH6s
Sin 1
botella ( x=1
):
|=| |=|
| | | |
| | | |
/ \ / \
. . . .
|-----| |-----|
| | | |
|-----| |-----|
|_____| |_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
Una vez más, estas son las dos primeras filas desde aquí: https://pastebin.com/ZuXkuH6s (con 1 eliminado) ...
Con 2 botellas faltantes:
|=|
| |
| |
/ \
. .
|-----|
| |
|-----|
|_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
[ENTRADAS ADICIONALES ELIMINADAS]
Con 91 botellas faltantes ( n = 91
):
:(
Debes mostrar una cara triste porque no te queda cerveza.
Reglas
- Las botellas deben retirarse de izquierda a derecha.
- Los estantes se retiran cuando no queda cerveza en la parte superior de los estantes.
- Para una entrada de 0, está generando 91 botellas apiladas en un triángulo.
- La fila inferior tiene 13 botellas, la superior tiene 1.
- 1 espacio entre cada botella en cada estante.
- Los estantes deben ser ingresados entre cada fila de botellas.
- Los estantes pueden usar
=
,-
o#
como el personaje. - Los estantes deben ser 3 más anchos (en cada lado) que las botellas que sostienen.
- Los estantes pueden usar
- Este es el código de golf , el menor conteo de bytes gana.
Respuestas:
Carbón ,
9991 bytesPruébalo en línea! El enlace es a la versión detallada del código. En realidad, la versión real es solo
8370 bytes:Explicación:
Rellene una matriz proporcionando información sobre dónde van los estantes y cuánto duran.
Imprima una cara infeliz, aunque esto se sobrescribirá inmediatamente con la primera botella de cerveza (si corresponde).
Recorre las botellas de cerveza restantes.
Verifique si es necesario dibujar un estante.
Imprima el estante y colóquelo listo para dibujar la siguiente botella por encima.
Dibuja una botella y posiciona listo para dibujar otra botella.
fuente
for
bucle. Este es unwhile
bucle, así que tengo que hacer algo más manualmente.for
bucle fue el camino a seguir todo el tiempo ... ¡13 bytes guardados! (Bueno, tuve un poco de suerte con la facilidad de llenar mi matriz.)Python 3 ,
306299265253255252247244 bytesIntento rápido, podría optimizarse
Editar: -2 bytes gracias a @MrXcoder
Editar: -32 bytes ya que no se necesitan espacios finales
Editar: -12 bytes combinando las dos funciones
Editar: -5 bytes gracias a @ musicman523
Editar: +7 bytes para eliminar el estante después de la última fila
Editar: -3 bytes
Editar: -5 bytes debido a que una función lambda solo se usa una vez en un mapa
Editar: -3 bytes utilizando la función de cadena
center
Pruébalo en línea!
fuente
d=
embargo, puede poner el encabezado, ya que no es recursivo para -2 bytesE
variableJavaScript (ES6),
251256 bytesEditar: Guardado 2 bytes gracias a @dzaima .
Editar: Se agregaron 7 bytes para solucionar el problema con el parámetro.
:(
Aquí está la versión (en su mayoría) sin golf:
Código de prueba
Mostrar fragmento de código
fuente
r
"macro"; Sentí que podría haber un método más corto, pero nada de lo que intenté lo hizo caer.C (gcc) ,
360358 bytesPruébalo en línea!
Explicación:
fuente
Python 2, 436 bytes
¡Ay!
Mi método es demasiado detallado, pero de todos modos: esencialmente 'dibuja' cada fila de botellas, agrega los espacios y luego 'borra' lo que sea necesario, imprimiendo lo que queda.
Halvard Hummel's es mucho mejor.
fuente