¡Intenta crear una animación de tijeras de arte ASCII simple!
Reto
Todas las entradas serán enteras -31 a 31.
La salida será una animación (se emitirá en algún lugar , siempre que se reemplace el fotograma anterior. Se permiten GIF.), Separados por (aproximadamente) 1 cuarto de segundo.
Si la entrada ( n
) es positiva:
- La animación debería comenzar con
8<
, también conocido como tijeras abiertas. - El siguiente cuadro es
8=
. Esto muestra las tijeras "cortando". - Se agrega un guión (marca de corte) detrás de las tijeras, y la animación se repite hasta que haya
n
guiones.
Si la entrada es negativa:
- Las tijeras comienzan abiertas y mirando hacia la izquierda (así:)
>8
, conn
espacios en frente. - Las tijeras se cierran y permanecen mirando hacia la izquierda (
=8
). - Las tijeras se vuelven a abrir, a medida que se elimina el espacio, y se agrega un guión detrás de las tijeras.
Si la entrada es cero:
- Salida solo las tijeras de apertura y cierre, para 10 cuadros. Pueden estar orientados en cualquier dirección, siempre que sea consistente.
Este es el código de golf , por lo que gana el envío más corto en bytes. (Incluso si su entrada claramente no ganará debido a algún tipo de "lenguaje de golf" novedoso, todavía nos gustaría verlo).
Los mensajes de error están permitidos, siempre que el mensaje de error en sí no interfiera con la animación.
Ejemplo de pares de entrada y salida:
(Separé los cuadros para mayor claridad, pero debería haber aproximadamente 0,25 segundos entre cada cuadro)
Input: 1
Output:
8<
8=
-8<
Input: 2
Output:
8<
8=
-8<
-8=
--8<
Input: 5
Output:
8<
8=
-8<
-8=
--8<
--8=
---8<
---8=
----8<
----8=
-----8<
Input: 0
Output:
8<
8=
8<
8=
8<
8=
8<
8=
8<
8=
Input: -2
Output:
>8
=8
>8-
=8-
>8--
Input: -3
Output:
>8
=8
>8-
=8-
>8--
=8--
>8---
¡Disfrutar!
Respuestas:
SOGL V0.12 , 53 bytes
Pruébalo aquí!
fuente
MATL ,
595857 bytes¡Pruébalo en MATL Online! O vea un ejemplo ejecutado desde el compilador fuera de línea:
fuente
JavaScript (ES2017) + HTML, 165 + 10 bytes
-16 bytes por @Shaggy
Pruébelo en el fragmento de abajo:
fuente
alert
cada "marco" no se adhiera a la especificación, es posible que desee obtener una aclaración sobre eso.)alert
utilicé intencionalmente, ya que los requisitos son que los marcos vienen a intervalos de ~ 0.25 segundos, loalert
que no sería compatible sin una mayor entrada del usuario.TI-BASIC, 173 bytes
¡Hacer que la entrada 0 terminara en un marco diferente de los demás fue un obstáculo muy interesante!
Como a TI-BASIC no le gustan las cadenas vacías, esto mantiene al menos un carácter ficticio a la izquierda de las tijeras, el primero de los cuales es constantemente un espacio; para evitar contar esto como parte de los n espacios para entradas negativas, este programa comienza a imprimir desde la columna más a la derecha de la primera fila, luego envuelve el resto de la cadena hacia abajo para comenzar el campo real de animación allí, recién salido del primera columna.
Algunas notas para un dispositivo exótico: el tamaño del código TI-BASIC se mide en tokens, no en caracteres. Para comparaciones consistentes de calculadoras cruzadas, generalmente ignoramos los recuentos de bytes que tratan con longitudes de encabezado (por ejemplo, restamos 8 de PROGRAMA: TIJERAS). Además, para las rutinas que se comportan completamente bien en la pantalla de inicio (las que carecen de estructuras de control, en su mayor parte), eliminamos aún más el tamaño de un programa vacío para "guardar" en 9 bytes también. Este programa en particular no se puede escribir en la pantalla de inicio, por lo que no se tomará la libertad.
fuente
Octava ,
190186 bytesPruébalo en línea! (nota:
clc
no funciona en TIO, por lo que solo se muestran todos los cuadros de animación secuencialmente). Gracias por @LuisMendo por informarme sobre la funcióne(...)
en Octave, que es igual aexp(1)*ones(...)
.Resulta que las asignaciones en línea devuelven solo las entradas de matriz modificadas, no toda la matriz. Esto significa que construcciones como
q(k(i+1)+=s)
no son posibles, por lo que el programa es casi como MATLAB. De hecho, la entrada de MATLAB es solo un poco más larga,MATLAB,
198195 bytesfuente
+ones
por el más feo+~e
. Además, en Octave y en Matlab, reemplace[i i+1]
pori:i+1
.e(...)
así? No creo haber sentido la necesidad de una matriz de m por ne
. Sin embargo, es un buen golf.Limpio , 294 bytes
Pruébalo en línea!
Tenga en cuenta que esto no funciona en TIO, el enlace es solo para fines de presentación.
Sus resultados pueden variar si tiene una
CLOCK_PER_TICK
constante distinta a1000
la predeterminada para Windows Clean x86.fuente
Python 2 , 170 bytes
Pruébalo en línea!
fuente
(approximately) 1 quarter of a second
; ¿Por qué no usar un tiempo de reposo de.2
segundos y guardar un byte?Ruby, 169 bytes
Bastante autoexplicativo cuando profundizas en ello, al menos en mi opinión. El programa debe ejecutarse en una computadora con el comando / alias cls.
Pruébalo en línea! (Tuve que sobrescribir el método system (), solo para este script, debido a las limitaciones mencionadas anteriormente).
Intenté usar
Pero acaba de imprimir un personaje invisible, ¿alguien sabe por qué?
fuente