80年代のテレビシリーズKnight Riderは、KITTと呼ばれるインテリジェントな自己認識型の車を搭載していました。車の一つの特徴的な側面は、にKITTを許さフロントマウントスキャナバーだった(と見ている「を参照してください。」怪しいですまた、以前の別のテレビシリーズのファンにはなじみがありました)。
この写真に見られるように、スキャナーには8つのライトがありました。
図のようにライトが「移動」しました このアニメーション画像に。
あなたが今推測しているように、あなたの仕事は、ASCIIアートの動く光でスキャナーバーを再作成することです。
チャレンジ
整数をt
指定すると、次のように定義された、その瞬間のスキャナーバーの状態を出力します。
- スキャナーは8つのライトで構成されています。
- どの時点でも、ライトの1つがアクティブになり、として表示され
#
ます。時間にアクティブであった光t-1
とt-2
今さ淡色、およびとして示されています+
。現在アクティブなものと一致しない限り。残りのライトは消灯していますで、として表示され-
ます。 - アクティブライトは左から右に移動し、次に右から左に移動します。
それぞれの正確な出力をt
以下に詳しく説明します。
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
t
サイクルの負の値については単純に拡張されます:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
追加のルール
プログラムまたは関数を作成できます。
出力には、末尾の空白と先頭の改行を含めることができます。
バイト単位の最短コードが優先されます。