La serie TV degli anni '80 Knight Rider presentava un'auto intelligente e consapevole di sé chiamata KITT. Un aspetto distintivo dell'auto era una barra dello scanner frontale che permetteva a KITT di "vedere" (e che sembrava sospettosamente familiare ai fan di un'altra precedente serie TV ).
Lo scanner aveva otto luci come mostrato in questa immagine:
Le luci "si sono mosse" come mostrato in questa immagine animata .
Il tuo compito, come hai già intuito, è ricreare la barra dello scanner con le luci mobili nell'arte ASCII.
La sfida
Dato un numero intero t, emette lo stato della barra dello scanner in quell'istante, definito come segue:
- Lo scanner è composto da otto luci.
- In qualsiasi momento una delle luci è attiva e viene mostrata come
#. Le luci che erano attive a voltet-1et-2ora sono dimmerate e sono mostrate come+; a meno che non coincidano con l'attuale attivo. Le altre luci sono spente e vengono visualizzate come-. - La luce attiva si sposta da sinistra a destra, quindi da destra a sinistra.
L'output esatto per ciascuno tè dettagliato di seguito.
0 --> #++----- % The leftmost light is active, and it just came from the right.
% The two neighbouring lights are dimmed
1 --> +#------ % The active light has bounced to the right, and it is covering
% one of the two lights that should be dimmed. So there is only
% one dimmed light
2 --> ++#----- % The active light has moved one more step to the right, and the
% two trailing dimmed lights are visible
3 --> -++#----
7 --> -----++#
8 --> ------#+ % The active light has bounced to the left
9 --> -----#++
10 --> ----#++-
13 --> -#++----
14 --> #++----- % Same as 0
15 --> +#------ % Same as 1
Per valori negativi del tciclo viene semplicemente esteso:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
Regole aggiuntive
È possibile scrivere un programma o una funzione.
L'output può contenere spazi vuoti finali e una nuova riga iniziale.
Vince il codice più breve in byte.
