Sfida
Sappiamo tutti dei normali alberi di Natale, ma che ne dici di un albero di Natale capovolto ! Questa è una sfida a tema natalizio abbastanza semplice. L'obiettivo di questa sfida è di farmi un albero di Natale capovolto ASCII. Ecco le regole per questa sfida:
- Accetta un numero intero dispari e positivo. Puoi presumere che sarà sempre tra
7e51. La base dell'albero sarà composta dai personaggi:
___ \ / |La parte superiore dell'albero (la stella), sarà composta da un singolo
*.Ogni linea dell'albero verrà costruita utilizzando il formato in
<?>cui?è presente un numero qualsiasi di-s. Ad esempio, se si crea una linea di lunghezza5, la linea dovrebbe essere<--->. O se si crea una linea di lunghezza8, la linea dovrebbe essere<------>.Ecco come dovrebbe essere costruito il corpo dell'albero:
Prendi il numero dispari
nindicato come input e crea una linea dell'albero di quella lunghezza.Sottrarre
4dane creare una linea dell'albero che lunghezza.Sottrarre
2dane creare una linea dell'albero che lunghezza.Decremento
ndi2. Dopodiché, a meno che non sianuguale5, tornare al passaggio 2.
La base (vedi passaggio 2.) la stella (vedi passaggio 3.) e ogni linea dell'albero (vedi passaggi 4. e 5.) dovrebbero essere tutte centrate usando il numero dispari originale (vedi passaggio 1.) come massimo larghezza.
Esempi / casi di test
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
Regole
- Si applicano scappatoie standard .
- Questo è code-golf , quindi vince la risposta più breve in byte!
repeat the above steps until the odd number minus 2 equals 5- nel primo input, il numero dispari è 7, e 7-2 = 5, quindi l'albero dovrebbe terminare all'istante (so cosa intendi, ma ha bisogno di essere riformulato)
7, l'input minimo, dovresti prima creare le tre linee dell'albero (sottofasi .1.1, .1.2, .1.3), quindi sottrarre 2dal numero dispari e verificare se è uguale 5. L'istruzione per verificare se il "numero dispari meno 2 è uguale a 5" è alla fine, gli altri tre passaggi devono essere eseguiti per primi. Ma per rispondere al tuo primo commento, andrebbe bene.
7come input o se puoi accettare 4, come nel quarto numero dispari (o 3se è 0-indicizzato).