Nell'episodio odierno di AAOD, costruiremo un Santuario cinese di varie altezze.
Considera i seguenti esempi per height ( N) 1a6
N = 1:
.
|
. ]#[ .
\_______/
. ]###[ .
\__]#.-.#[__/
|___| |___|
|___|_|___|
####/_\####
|___|
/_____\
N = 2:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\___]#.---.#[___/
|__|_| |_|__|
|__|_|___|_|__|
#####/___\#####
|_____|
/_______\
N = 3:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\____]#.-----.#[____/
|__|__| |__|__|
|__|__|_____|__|__|
######/_____\######
|_______|
/_________\
N = 4:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_____]##.-----.##[_____/
|__|__|_| |_|__|__|
|__|__|_|_____|_|__|__|
########/_____\########
|_______|
/_________\
N = 5:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_______________________/
. ]###########[ .
\______]###.-----.###[______/
|__|__|___| |___|__|__|
|__|__|___|_____|___|__|__|
##########/_____\##########
|_______|
/_________\
N = 6:
.
|
. ]#[ .
\_______/
. ]###[ .
\___________/
. ]#####[ .
\_______________/
. ]#######[ .
\___________________/
. ]#########[ .
\_______________________/
. ]###########[ .
\___________________________/
. ]#############[ .
\_______]####.-----.####[_______/
|__|__|__|__| |__|__|__|__|
|__|__|__|__|_____|__|__|__|__|
############/_____\############
|_______|
/_________\
e così via.
Dettagli di costruzione
Sono sicuro che la maggior parte dei dettagli sul modello sono chiari. Ecco alcuni dettagli più fini:
- La porta nella parte inferiore del santuario può essere almeno di
1_larghezza e al massimo di5_larghezza. - Ci saranno sempre due
.direttamente sopra i pilastri attorno alla porta (due verticali|). - Le scale iniziano con la stessa larghezza della porta e aumentano come mostrano lo schema
- I
]##..##[blocchi sopra ogni livello del tetto aumentano di dimensioni2dall'alto verso il basso. - I
\__...__/livelli dei tetti aumentano di dimensioni4dall'alto verso il basso. - I blocchi di muri attorno alla porta devono contenere almeno
1_e al massimo,3_tra i due|. La priorità va ai blocchi di muro esterno in modo che quello più vicino alla porta ottenga una dimensione variabile per ogni livello. - Lo spazio tra il
.e il](o[) è riempito dal#tetto appena sopra le porte.
Dettagli della sfida
- Scrivi una funzione o un programma completo che legge un numero intero positivo maggiore di
0tramite STDIN / ARGV / argomento della funzione o equivalente più vicino e genera (a STDOUT o equivalente più vicino) ilNSantuario cinese - Il trascinamento di newline è facoltativo.
- Non dovrebbero esserci spazi finali o spazi finali sufficienti per riempire l'output nel rettangolo di delimitazione minimo.
- Non ci dovrebbero essere spazi iniziali che non fanno parte del modello.
Classifica
Il primo post della serie genera una classifica.
Per assicurarti che le tue risposte vengano visualizzate, inizia ogni risposta con un titolo, utilizzando il seguente modello Markdown:
# Language Name, N bytes
dov'è Nla dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# Ruby, <s>104</s> <s>101</s> 96 bytes
N=1caso, il primo tetto non è troppo lungo (largo)?
#lato accanto .a sostenere la ]e [sopra di essa. Informazioni sulla dimensione del tetto iniziale - Questa è la dimensione del tetto nel tetto superiore di ogni altezza.
N=1caso? Perché non 3 e avere finestre laterali più piccole come nelN=2caso?