A série de TV dos anos 80 Knight Rider apresentava um carro inteligente e autoconsciente chamado KITT. Um aspecto distintivo do carro era uma barra de scanner montada na frente que permitia ao KITT "ver" (e que parecia suspeitamente familiar aos fãs de outra série de TV anterior ).
O scanner tinha oito luzes, como visto na figura:
As luzes "se moveram", como mostrado nesta imagem animada .
Sua tarefa, como você já adivinhou, é recriar a barra do scanner com as luzes móveis da arte ASCII.
O desafio
Dado um número inteiro t
, imprima o estado da barra do scanner naquele instante, definido da seguinte maneira:
- O scanner consiste em oito luzes.
- A qualquer momento, uma das luzes está ativa e é mostrada como
#
. As luzes que estavam ativas às vezest-1
et-2
agora estão esmaecidas e são mostradas como+
; a menos que coincidam com o ativo atual. O restante das luzes estão apagadas e são mostradas como-
. - A luz ativa se move da esquerda para a direita e depois da direita para a esquerda.
A saída exata para cada um t
é detalhada abaixo.
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
Para valores negativos do t
ciclo é simplesmente estendido:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
Regras adicionais
Você pode escrever um programa ou função.
A saída pode conter espaços em branco à direita e uma nova linha principal.
O menor código em bytes vence.