¡Es esa época del año cuando muchos de nosotros tenemos nuestros calendarios de adviento ! Si no está familiarizado con un calendario de adviento, estos son calendarios especiales que se utilizan para contar el advenimiento antes de Navidad. En mi experiencia, las puertas se colocan al azar, y parte de la diversión de un niño era trabajar donde estaba la puerta de mañana. A menudo, en estos días, los calendarios tienen chocolates detrás de cada puerta, pero en lugar de comprar un calendario de adviento este año, ¡deberías construir uno ASCII!
Tarea
Teniendo en cuenta la entrada de un número entero ( n
) en el rango 0
- 24
, producen un calendario de advenimiento ASCII con las puertas numeradas hasta al n
, abierto. Debe utilizar el mismo orden que en el ejemplo siguiente: 2
, 17
, 8
, 12
, 1
, 6
, 11
, 20
, 5
, 22
, 3
, 10
, 15
, 23
, 7
, 16
, 9
, 24
, 18
, 4
, 13
, 19
, 21
, 14
.
Puertas
La puerta cerrada debe ser:
.-----------.
| |
| |
| |
| nn |
|___________|
donde n
representa el número de la puerta (los ceros iniciales son opcionales) y la puerta abierta es:
.-----------.
|\ |
| | |
| | |
| | |
| |_________|
\|
a excepción de la puerta 24, que en cambio es:
.--------------------------.
| |
| |
| |
| 24 |
|__________________________|
.--------------------------.
|\ |
| | |
| | |
| | |
| |________________________|
\|
Estas puertas están dispuestas dentro de un marco de 37 líneas de 79 caracteres, con dos espacios entre cada columna y una línea vacía entre cada fila.
Puertas Abiertas
Cuando se abren las puertas, debe mostrar una de las imágenes (tenuemente relacionadas con la Navidad: ¡disculpas por mis terribles habilidades artísticas!) Debajo de la puerta:
. _ . _'_ + .^o _(")_ _n_ $ .
}\O/{ ) (^.^_ /~\ (';') (_ . _) (") |,| __/ \__
}/*\{ \./v`v' /~*~\ {\|+|/} / : \ >( o )< | | `. .'
/***\ oO8 /~*~~*\ d-b (_/ \_) ( o ) ._|_|_. /.^.\
.\^/. ____ __.==,_ .*. _ _ . . . _______ _ _
<->o<-> /_%_/| --|XX|- /.\ (O X O) .i_i_i. _j_j_j_ ( `v' )
'/v\` |_|_| | _| | |_-_| / ^ \ |-~~-~| ||__| \ /
|_|_|/ (____' (.-o-.) \/ \/ |_____| _|/$$|_ V
i |~| //'`\ |=| _{/ _{/ , * \ ==== b
.'%'. | | //....\ / \ \_/ + . + \\\|+-| .'''.
|^~~.~| Y ||()()| |(%)| /O \ . ' . \\\\\+| {*=*=*}
_'._.'_ _|_ ||_[]_| |___| @__,/\\ ~~~~~~~ \\\\\\\ '._.'
_ | _ | .W. .W. .&%$+*. \O/ .;' ..,.;.. ('v')
.'.'O | ($) | |*| |*| */'"'\& [ ]|_. .m_. |\\|//| // \\
/___\ | " o| |*| |*| $\._./% |_____) C| | \\|// |\ /|
(_____) | === | 'M' 'M' '%&*+$' ------' |__| _=|=_ Y Y
\ / .==. .-. -._.- __/\__ ... .-.
._o_O_. .--' | \| |/ .+. \_\/_/ '* ` //`);
|/\/\/| \_____/ /| |\ ( W ) /_/\_\ |_/\*_| %%
""""""" `=====' '-' `"` \/ [_____] //
Cada imagen tiene 7 caracteres y cubre 4 líneas para que quepan en las ventanas. Puede elegir cualquiera de las imágenes anteriores y usarlas en cualquier orden, pero no puede repetir una imagen. Para el 24, también debe agregar un mensaje:
~
~ MERRY ~
~ CHRISTMAS! ~
~~~~~
que se ajusta junto a una de las imágenes anteriores, puede elegir si el texto está a la derecha o a la izquierda de la imagen.
Ejemplos
Dada entrada 0
, salida del calendario sin puertas abiertas:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 2 | | 17 | | 8 | | 12 | | 1 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 6 | | 11 | | 20 | | 5 | | 22 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 3 | | 10 | | 15 | | 23 | | 7 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .--------------------------. .-----------. |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | 16 | | 9 | | 24 | | 18 | |
| |___________| |___________| |__________________________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 4 | | 13 | | 19 | | 21 | | 14 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
|_____________________________________________________________________________|
Para entrada 5
, salida algo similar a:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ . _ . | | | | | | | |\ __.==,_ | |
| | | }\O/{ | | | | | | | | | --|XX|- | |
| | | }/*\{ | | | | | | | | | _| | | |
| | | /***\ | | 17 | | 8 | | 12 | | | (____' | |
| | |_________| |___________| |___________| |___________| | |_________| |
| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | |\ _{/ _{/ | | | |
| | | | | | | | | \_/ | | | |
| | | | | | | | | /O \ | | | |
| | 6 | | 11 | | 20 | | | @__,/\\ | | 22 | |
| |___________| |___________| |___________| | |_________| |___________| |
| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _n_ | | | | | | | | | |
| | | (") | | | | | | | | | |
| | | >( o )< | | | | | | | | | |
| | | ( o ) | | 10 | | 15 | | 23 | | 7 | |
| | |_________| |___________| |___________| |___________| |___________| |
| \| |
| .-----------. .-----------. .--------------------------. .-----------. |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | 16 | | 9 | | 24 | | 18 | |
| |___________| |___________| |__________________________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ + | | | | | | | | | |
| | | /~\ | | | | | | | | | |
| | | /~*~\ | | | | | | | | | |
| | | /~*~~*\ | | 13 | | 19 | | 21 | | 14 | |
| | |_________| |___________| |___________| |___________| |___________| |
| \| |
|_____________________________________________________________________________|
Para entrada 14
:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ . _ . | | | |\ . | |\ ____ | |\ __.==,_ | |
| | | }\O/{ | | | | | __/ \__ | | | /_%_/| | | | --|XX|- | |
| | | }/*\{ | | | | | `. .' | | | |_|_| | | | | _| | | |
| | | /***\ | | 17 | | | /.^.\ | | | |_|_|/ | | | (____' | |
| | |_________| |___________| | |_________| | |_________| | |_________| |
| \| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _ | |\ $ | | | |\ _{/ _{/ | | | |
| | | .'.'O | | | |,| | | | | | \_/ | | | |
| | | /___\ | | | | | | | | | | /O \ | | | |
| | | (_____) | | | ._|_|_. | | 20 | | | @__,/\\ | | 22 | |
| | |_________| | |_________| |___________| | |_________| |___________| |
| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _n_ | |\ _(")_ | | | | | |\ |=| | |
| | | (") | | | (_ . _) | | | | | | | / \ | |
| | | >( o )< | | | / : \ | | | | | | | |(%)| | |
| | | ( o ) | | | (_/ \_) | | 15 | | 23 | | | |___| | |
| | |_________| | |_________| |___________| |___________| | |_________| |
| \| \| \| |
| .-----------. .-----------. .--------------------------. .-----------. |
| | | |\ \ ==== | | | | | |
| | | | | \\\|--| | | | | | |
| | | | | \\\\\-| | | | | | |
| | 16 | | | \\\\\\\ | | 24 | | 18 | |
| |___________| | |_________| |__________________________| |___________| |
| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ + | |\ , * | | | | | |\ i | |
| | | /~\ | | | + . + | | | | | | | .'%'. | |
| | | /~*~\ | | | . ' . | | | | | | | |^~~.~| | |
| | | /~*~~*\ | | | ~~~~~~~ | | 19 | | 21 | | | _'._.'_ | |
| | |_________| | |_________| |___________| |___________| | |_________| |
| \| \| \| |
|_____________________________________________________________________________|
Para entrada 24
:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ . _ . | |\ //''\ | |\ . | |\ ____ | |\ __.==,_ | |
| | | }\O/{ | | | //....\ | | | __/ \__ | | | /_%_/| | | | --|XX|- | |
| | | }/*\{ | | | ||()()| | | | `. .' | | | |_|_| | | | | _| | | |
| | | /***\ | | | ||_[]_| | | | /.^.\ | | | |_|_|/ | | | (____' | |
| | |_________| | |_________| | |_________| | |_________| | |_________| |
| \| \| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _ | |\ $ | |\ |~| | |\ _{/ _{/ | |\ . . . | |
| | | .'.'O | | | |,| | | | | | | | | \_/ | | | .i_i_i. | |
| | | /___\ | | | | | | | | Y | | | /O \ | | | |-~~-~| | |
| | | (_____) | | | ._|_|_. | | | _|_ | | | @__,/\\ | | | |_____| | |
| | |_________| | |_________| | |_________| | |_________| | |_________| |
| \| \| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _n_ | |\ _(")_ | |\ | _ | | |\ .W. .W. | |\ |=| | |
| | | (") | | | (_ . _) | | | | ($) | | | | |*| |*| | | | / \ | |
| | | >( o )< | | | / : \ | | | | " o| | | | |*| |*| | | | |(%)| | |
| | | ( o ) | | | (_/ \_) | | | | === | | | | 'M' 'M' | | | |___| | |
| | |_________| | |_________| | |_________| | |_________| | |_________| |
| \| \| \| \| \| |
| .-----------. .-----------. .-------------------------- .-----------. |
| |\ _ _ | |\ \ ==== | |\ .&%$+*. ~ | |\ \O/ | |
| | | (O X O) | | | \\\|--| | | | */'"'\& ~ MERRY ~ | | | [ ]|_. | |
| | | / ^ \ | | | \\\\\-| | | | $\._./% ~ CHRISTMAS! ~ | | | |_____) | |
| | | \/ \/ | | | \\\\\\\ | | | '%&*+$' ~~~~~ | | | ------' | |
| | |_________| | |_________| | |________________________| | |_________| |
| \| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ + | |\ , * | |\ | | |\ .*. | |\ i | |
| | | /~\ | | | + . + | | | .'''. | | | /.\ | | | .'%'. | |
| | | /~*~\ | | | . ' . | | | {*=*=*} | | | |_-_| | | | |^~~.~| | |
| | | /~*~~*\ | | | ~~~~~~~ | | | '._.' | | | (.-o-.) | | | _'._.'_ | |
| | |_________| | |_________| | |_________| | |_________| | |_________| |
| \| \| \| \| \| |
|_____________________________________________________________________________|
Reglas
Este es el código de golf , por lo que gana el código más corto en bytes, en cada idioma.
- Se puede usar cualquier formato razonable para E / S, suponiendo que sea coherente.
- Cualquier cantidad de espacios en blanco antes y después del calendario está bien, así como espacios adicionales / no imprimibles al final de cada línea, pero nada antes de cada línea, ya que debe caber en 80 caracteres.
- Todas las lagunas estándar están prohibidas.
Gracias
James Holderness por contribuir con imágenes ASCII!