Secondo me, un tornado assomiglia a questo:
########
#######
######
#####
####
###
##
#
Questo tornado inizia con la larghezza n
e 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 1
s e 0
s, 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 n
non 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.