Secondo me, un tornado assomiglia a questo:
########
#######
######
#####
####
###
##
#
Questo tornado inizia con la larghezza ne su ogni riga successiva, un carattere viene rimosso da sinistra o da destra, a seconda dell'input.
Ingresso
L'input sarà un elenco di una sorta di due valori univoci (funziona anche una stringa di due caratteri univoci) e un numero intero positivo opzionale per indicare la larghezza iniziale. Se non viene preso l'intero opzionale, la larghezza iniziale è 1 maggiore della lunghezza dell'elenco. Lascia che sia la larghezza iniziale n.
Come fare un tornado
Nel mio esempio, ho scelto la mia lista per contenere 1s e 0s, anche se è possibile scegliere tutti i due valori costanti distinte, o una stringa di due qualsiasi caratteri costanti distinte.
La prima riga sarà composta da caratteri nnon bianchi (puoi scegliere qualsiasi carattere coerente; io scelgo #per il mio esempio).
Quindi, per ogni numero nell'elenco, se il numero è 0, rimuovere il carattere sinistro e creare una nuova riga; se è a 1, rimuovi il carattere giusto e crea una nuova riga.
Pertanto, il tornado sopra è l'output per 8, [1, 0, 0, 0, 1, 0, 0].
Produzione
L'output può essere un elenco di stringhe, un elenco di elenchi di caratteri o una stringa multilinea. È consentito uno spazio bianco finale su ogni riga e è consentita una nuova riga finale alla fine.
Casi test
Questi test includono la larghezza iniziale e gli elenchi di utilizzo di 1, 0.
5, [1,0,0,1]
#####
####
###
##
#
10, [1,0,0,1,0,1,0,0,1]
##########
#########
########
#######
######
#####
####
###
##
#
7, [1,1,1,1,1,1]
#######
######
#####
####
###
##
#
100,
[1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,1,0,0,0,0,1]
Regole
- Si applicano scappatoie standard
- Vince il codice più corto in byte! code-golf
- Lo sfondo non deve essere uno spazio (ho dimenticato di specificarlo prima).
- La tua lingua deve supportare solo numeri (larghezze) che può gestire, ma se il tuo interprete è stato riscritto con una dimensione numerica più grande, deve teoricamente funzionare.