La serie de televisión de los 80 Knight Rider presentó un auto inteligente y consciente de sí mismo llamado KITT. Un aspecto distintivo del automóvil era una barra de escáner frontal que permitía a KITT "ver" (y que parecía sospechosamente familiar para los fanáticos de otra serie de televisión anterior ).
El escáner tenía ocho luces como se ve en esta imagen:
Las luces "se movieron" como se muestra en esta imagen animada .
Su tarea, como ya lo ha adivinado, es recrear la barra del escáner con las luces en movimiento en el arte ASCII.
El reto
Dado un entero t, genera el estado de la barra del escáner en ese instante, definido de la siguiente manera:
- El escáner consta de ocho luces.
- En cualquier instante, una de las luces está activa y se muestra como
#. Las luces que estaban activas a vecest-1yt-2ahora están atenuadas , y se muestran como+; a menos que coincidan con el activo actual. El resto de las luces están apagadas y se muestran como-. - La luz activa se mueve de izquierda a derecha, luego de derecha a izquierda.
El resultado exacto de cada uno tse detalla a continuación.
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 del tciclo simplemente se extiende:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
Reglas adicionales
Puedes escribir un programa o función.
La salida puede contener espacios en blanco al final y una nueva línea inicial.
El código más corto en bytes gana.


Respuestas:
Jalea ,
2822 bytes-6 bytes gracias a la ayuda de @Dennis! (invertir primero, luego concatenar)
TryItOnline ¡
O realiza cuatro oscilaciones con un huevo de pascua extra !
¿Cómo?
fuente
JavaScript (ES6),
6567 bytesEDITAR - Corregido para valores negativos. Ahora compatible
N >= -8,000,000,000, lo que debería proporcionar un tiempo de funcionamiento extendido bastante bueno en modo CRUCERO AUTOMÁTICO. :-)Versión animada
Mostrar fragmento de código
fuente
n>=7lugar den/7&1nestuviera dentro[0 ... 13], pero no lo está.JavaScript (ES6),
9087 bytes"- + ##" está indexado por una máscara de bits, donde el bit 1 significa una luz activa y el bit 0 significa una luz atenuada. La atenuación activa / atenuación ahora se calcula sumando y restando la posición actual de la posición deseada y viendo si alguno de los resultados es divisible por 14.
fuente
Python, 53 bytes
Crea la cadena
-----++#------, toma una ventana de longitud 8 según el módulo de entrada 7, invierte las entradas del módulo 14 que se encuentran entre 1 y 7.fuente
> <> , 51 + 3 = 54 bytes
Se espera la entrada en la pila al inicio del programa, por lo que +3 bytes para el
-vindicadorPruébalo en línea!
fuente
MATL,
343027 bytes7 bytes guardados gracias a @Luis
Pruébalo en línea!
Otro ejemplo con los primeros 25 pasos.
Explicación
fuente
Pyth,
3328 bytesAhorró 5 bytes calculando todas las luces de la misma manera.
Comienza con todas las luces apagadas y las enciende de una en una.
¡Pruébelo en línea!
fuente
JavaScript, 204 bytes
Prueba
fuente
JavaScript (ES6), 72
Menos golf
Prueba
fuente
Perl, 65 bytes
Incluye +1 para
-nEjecutar con el número en STDIN:
kitt.pl:No es muy competitivo, pero merece una publicación por el extraño método.
fuente
Perl,
5655 bytesIncluye +3 para
-pEjecutar con el número en STDIN:
kitt.pl:Ponga esto en un archivo sin la nueva línea final (agregue una final
;al programa si no quiere molestarse con eso). Desafortunadamente, usar un literal^Fno funcionaEste programa contiene 2 caracteres de comentario (ignore la
#!línea). Uno de ellos realmente es un comentario y de hecho gana un byte ...Implementa el algoritmo de resplandor posterior real
fuente
Lienzo , 23 bytes.
Pruébalo aquí!
fuente