La série télévisée Knight Rider des années 80 présentait une voiture intelligente et consciente appelée KITT. Un aspect distinctif de la voiture était une barre de scanner montée à l'avant qui permettait à KITT de "voir" (et qui semblait étrangement familier aux fans d'une autre série télévisée antérieure ).
Le scanner avait huit lumières comme le montre cette image:
Les lumières ont "bougé" comme le montre cette image animée .
Votre tâche, comme vous l'avez deviné, consiste à recréer la barre du scanner avec les lumières mobiles dans l'art ASCII.
Le défi
Étant donné un entier t
, affichez l'état de la barre du scanner à cet instant, défini comme suit:
- Le scanner se compose de huit lumières.
- À tout instant, l'un des voyants est actif et s'affiche comme
#
. Les lumières qui étaient actives à certains momentst-1
ett-2
sont maintenant atténuées , et sont représentées comme+
; à moins qu'ils ne coïncident avec l'actuel actif. Les autres voyants sont éteints et sont représentés par-
. - La lumière active se déplace de gauche à droite, puis de droite à gauche.
La sortie exacte pour chacun t
est détaillée ci-dessous.
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
Pour les valeurs négatives du t
cycle est simplement étendu:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
Règles supplémentaires
Vous pouvez écrire un programme ou une fonction.
La sortie peut contenir des espaces de fin et une nouvelle ligne de début.
Le code le plus court en octets gagne.