È quel periodo dell'anno in cui molti di noi ricevono i nostri calendari dell'avvento ! Se non si ha familiarità con un calendario dell'avvento, si tratta di calendari speciali utilizzati per il conto alla rovescia dell'avvento in previsione del Natale. Nella mia esperienza, le porte sono posizionate in modo casuale e parte del divertimento di un bambino stava studiando dove si trovava la porta di domani! Spesso in questi giorni, i calendari hanno cioccolatini dietro ogni porta, ma invece di acquistare un calendario dell'avvento quest'anno, dovresti costruirne uno ASCII!
Compito
Dato input di un numero intero ( n
) nell'intervallo 0
- 24
, produce un calendario dell'avvento ASCII con le porte numerate aperte n
, aperte. È necessario utilizzare lo stesso ordine come nell'esempio qui sotto: 2
, 17
, 8
, 12
, 1
, 6
, 11
, 20
, 5
, 22
, 3
, 10
, 15
, 23
, 7
, 16
, 9
, 24
, 18
, 4
, 13
, 19
, 21
, 14
.
Porte
La porta chiusa deve essere:
.-----------.
| |
| |
| |
| nn |
|___________|
dove n
rappresenta il numero della porta (gli zeri iniziali sono opzionali) e la porta aperta è:
.-----------.
|\ |
| | |
| | |
| | |
| |_________|
\|
fatta eccezione per la porta 24, che è invece:
.--------------------------.
| |
| |
| |
| 24 |
|__________________________|
.--------------------------.
|\ |
| | |
| | |
| | |
| |________________________|
\|
Queste porte sono disposte all'interno di una cornice di 37 linee di 79 caratteri, con due spazi tra ogni colonna e una linea vuota tra ogni riga.
Porte aperte
Quando le porte sono aperte, devi mostrare una delle (tenuamente legate al Natale - scuse per le mie terribili abilità artistiche!) Sotto la porta:
. _ . _'_ + .^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 ) /_/\_\ |_/\*_| %%
""""""" `=====' '-' `"` \/ [_____] //
Ogni immagine è lunga 7 caratteri e copre 4 linee in modo da adattarsi alle finestre. Sei libero di scegliere una delle immagini sopra e usarle in qualsiasi ordine, ma non puoi ripetere un'immagine. Per il 24, è inoltre necessario aggiungere un messaggio:
~
~ MERRY ~
~ CHRISTMAS! ~
~~~~~
che si adatta a fianco di una delle immagini sopra, puoi scegliere se il testo è a destra o a sinistra dell'immagine.
Esempi
Dato input 0
, genera il calendario senza porte aperte:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 2 | | 17 | | 8 | | 12 | | 1 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 6 | | 11 | | 20 | | 5 | | 22 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 3 | | 10 | | 15 | | 23 | | 7 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
| .-----------. .-----------. .--------------------------. .-----------. |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | 16 | | 9 | | 24 | | 18 | |
| |___________| |___________| |__________________________| |___________| |
| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | 4 | | 13 | | 19 | | 21 | | 14 | |
| |___________| |___________| |___________| |___________| |___________| |
| |
|_____________________________________________________________________________|
Per l'input 5
, output qualcosa di simile 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 | |
| | |_________| |___________| |___________| |___________| |___________| |
| \| |
|_____________________________________________________________________________|
Per input 14
:
.-----------------------------------------------------------------------------.
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ . _ . | | | |\ . | |\ ____ | |\ __.==,_ | |
| | | }\O/{ | | | | | __/ \__ | | | /_%_/| | | | --|XX|- | |
| | | }/*\{ | | | | | `. .' | | | |_|_| | | | | _| | | |
| | | /***\ | | 17 | | | /.^.\ | | | |_|_|/ | | | (____' | |
| | |_________| |___________| | |_________| | |_________| | |_________| |
| \| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _ | |\ $ | | | |\ _{/ _{/ | | | |
| | | .'.'O | | | |,| | | | | | \_/ | | | |
| | | /___\ | | | | | | | | | | /O \ | | | |
| | | (_____) | | | ._|_|_. | | 20 | | | @__,/\\ | | 22 | |
| | |_________| | |_________| |___________| | |_________| |___________| |
| \| \| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ _n_ | |\ _(")_ | | | | | |\ |=| | |
| | | (") | | | (_ . _) | | | | | | | / \ | |
| | | >( o )< | | | / : \ | | | | | | | |(%)| | |
| | | ( o ) | | | (_/ \_) | | 15 | | 23 | | | |___| | |
| | |_________| | |_________| |___________| |___________| | |_________| |
| \| \| \| |
| .-----------. .-----------. .--------------------------. .-----------. |
| | | |\ \ ==== | | | | | |
| | | | | \\\|--| | | | | | |
| | | | | \\\\\-| | | | | | |
| | 16 | | | \\\\\\\ | | 24 | | 18 | |
| |___________| | |_________| |__________________________| |___________| |
| \| |
| .-----------. .-----------. .-----------. .-----------. .-----------. |
| |\ + | |\ , * | | | | | |\ i | |
| | | /~\ | | | + . + | | | | | | | .'%'. | |
| | | /~*~\ | | | . ' . | | | | | | | |^~~.~| | |
| | | /~*~~*\ | | | ~~~~~~~ | | 19 | | 21 | | | _'._.'_ | |
| | |_________| | |_________| |___________| |___________| | |_________| |
| \| \| \| |
|_____________________________________________________________________________|
Per input 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-.) | | | _'._.'_ | |
| | |_________| | |_________| | |_________| | |_________| | |_________| |
| \| \| \| \| \| |
|_____________________________________________________________________________|
Regole
Questo è code-golf, quindi vince il codice più breve in byte, in ogni lingua.
- Qualsiasi formato ragionevole può essere utilizzato per l'I / O presupponendo che sia coerente.
- Qualsiasi quantità di spazio prima e dopo il calendario va bene, così come spazi aggiuntivi / non stampabili alla fine di ogni riga, ma nulla prima di ogni riga in quanto deve contenere 80 caratteri.
- Sono vietate tutte le scappatoie standard .
Grazie
James Holderness per aver contribuito con immagini ASCII!