In der Fernsehserie Knight Rider aus den 80er Jahren wurde ein intelligentes, selbstbewusstes Auto namens KITT vorgestellt. Ein charakteristischer Aspekt des Autos war eine an der Vorderseite angebrachte Scannerleiste, die es KITT ermöglichte, zu "sehen" (und die den Fans einer anderen früheren Fernsehserie verdächtig bekannt vorkam ).
Der Scanner hatte acht Lichter, wie auf diesem Bild zu sehen:
Die Lichter "bewegten" sich wie in diesem animierten Bild gezeigt .
Ihre Aufgabe ist es, wie Sie bereits vermutet haben, die Scannerleiste mit den Moving Lights in ASCII-Kunst nachzubilden.
Die Herausforderung
Geben Sie bei einer bestimmten Ganzzahl t
den Status der Scannerleiste zu diesem Zeitpunkt wie folgt aus:
- Der Scanner besteht aus acht Lichtern.
- Zu jedem Zeitpunkt ist eine der Leuchten aktiv und wird als angezeigt
#
. Die Lichter, die zu bestimmten Zeiten aktiv warent-1
undt-2
jetzt abgeblendet sind, werden als angezeigt+
. es sei denn, sie stimmen mit der aktuell aktiven überein. Die restlichen Lichter sind aus und werden als angezeigt-
. - Das aktive Licht bewegt sich von links nach rechts und dann von rechts nach links.
Die genaue Ausgabe für jedes t
ist unten aufgeführt.
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
Bei negativen Werten wird t
der Zyklus einfach verlängert:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
Zusätzliche Regeln
Sie können ein Programm oder eine Funktion schreiben.
Die Ausgabe kann abschließende Leerzeichen und eine führende Newline enthalten.
Kürzester Code in Bytes gewinnt.
Antworten:
Jelly ,
2822 Bytes-6 Bytes dank der Hilfe von @Dennis! (Erst upend, dann verketten)
TryItOnline
Oder führe vier Oszillationen mit einem Bonus- Osterei aus !!
Wie?
quelle
JavaScript (ES6),
65 bis67 ByteBEARBEITEN - Bei negativen Werten korrigiert . Jetzt wird unterstützt
N >= -8,000,000,000
, was im AUTO CRUISE-Modus eine recht gute längere Betriebszeit bieten sollte. :-)Animierte Version
Code-Snippet anzeigen
quelle
n>=7
anstelle vonn/7&1
n
war in[0 ... 13]
, aber es ist nicht.JavaScript (ES6),
9087 Bytes"- + ##" wird durch eine Bitmaske indiziert, wobei Bit 1 ein aktives Licht und Bit 0 ein gedimmtes Licht bedeutet. Active / Dimmedness wird jetzt berechnet, indem die aktuelle Position von der gewünschten Position addiert und subtrahiert wird und geprüft wird, ob eines der Ergebnisse durch 14 teilbar ist.
quelle
Python, 53 Bytes
Erzeugt den String
-----++#------
, nimmt je nach Eingangsmodulo 7 ein Länge-8-Fenster ein, kehrt für Eingänge Modulo 14 um, die zwischen 1 und 7 liegen.quelle
> <> , 51 + 3 = 54 Bytes
Die Eingabe wird beim Programmstart auf dem Stack erwartet, also +3 Bytes für das
-v
Flag.Probieren Sie es online!
quelle
MATL,
343027 Bytes7 Bytes gespart dank @Luis
Probieren Sie es online!
Ein weiteres Beispiel mit den ersten 25 Schritten
Erläuterung
quelle
Pyth,
3328 Bytes5 Bytes gespart, indem alle Lichter auf die gleiche Weise berechnet wurden.
Beginnt mit dem Ausschalten der Lichter und schaltet sie einzeln ein.
Probieren Sie es online aus!
quelle
JavaScript, 204 Byte
Prüfung
quelle
JavaScript (ES6), 72
Weniger golfen
Prüfung
quelle
Perl, 65 Bytes
Beinhaltet +1 für
-n
Führen Sie mit der Nummer auf STDIN:
kitt.pl
:Nicht sehr wettbewerbsfähig, aber verdient einen Beitrag für die seltsame Methode
quelle
Perl,
5655 BytesBeinhaltet +3 für
-p
Führen Sie mit der Nummer auf STDIN:
kitt.pl
:Fügen Sie dies in eine Datei ohne die letzte Zeile ein (fügen
;
Sie dem Programm ein Finale hinzu , wenn Sie sich nicht darum kümmern möchten). Leider^F
funktioniert ein Literal nichtDieses Programm enthält 2 Kommentarzeichen (ignorieren Sie die
#!
Zeile). Einer von ihnen ist wirklich ein Kommentar und gewinnt tatsächlich ein Byte ....Implementiert den eigentlichen Nachleuchtalgorithmus
quelle
Canvas , 23 Byte
Probieren Sie es hier aus!
quelle