En cualquier lenguaje de programación, cree un programa que tome datos y anime el texto que se está escribiendo en un teclado.
El retraso entre cada carácter debe variar para simular la escritura verdadera en un teclado. El retraso será de 0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...
segundos, hasta que se imprima el último carácter. El resultado final se dejará en la pantalla.
Debe sobrescribir la línea de texto actual; no puede hacer que el texto se imprima en nuevas filas.
Ejemplo, la entrada "¡Hola, PPCG! ¡Adiós Tierra!" debería producir la siguiente animación (tenga en cuenta que la frecuencia de muestreo del creador de gifs fue baja, por lo que el resultado real es ligeramente diferente):
Como se trata de un código de golf, gana la menor cantidad de bytes.
Respuestas:
C
1089389787380 bytesVersión sin golf:
@Kritixi Lithos @Metoniem ¡Gracias por su aporte! guardado algunos bytes
De alguna manera, solo
int i
me dio un error de segmentación al ejecutar, así que lo inicialicé con 0.fuente
i%3
el retraso debe ser 5.100000
con1e5
para afeitar 3 bytes1e5
no funciona en mi dispositivoJalea , 13 bytes
Este es un enlace / función monádico. Debido a la salida implícita, no funciona como un programa completo.
Verificación
Cómo funciona
fuente
MATLAB, 74 bytes
Explicación:
Solía bastante tiempo hacer la
fprintf
versión más corta quedisp()
conclc
. El avance fue cuando descubrí / recordé quepause
puede tomar un vector como argumento, en cuyo caso simplemente elegirá el primer valor. Esto permite dejar fuera un mostrador.El más corto que utilicé
disp
fue de 81 bytes:fuente
printf
lugar defprintf
? Funciona en octave-online.net (pero es Octave y no Matlab)JavaScript (ES6), 67 bytes
fuente
Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
V ,
201918 bytes1 byte guardado gracias a @DJMcMayhem
guardado 1 byte al eliminar
ò
al finalTerriblemente poco golfista, lo sé, es solo ese estricto
u
ndo que me impide usar bucles anidados.Explicación
El cursor comienza en el comienzo del búfer, que es el primer carácter de la entrada.
Gif próximamente ...
fuente
gÓ
sin un recuento predeterminado de 500 ms, por lo que puede guardar un byte allí. Además, recuerda que no necesitas el segundoò
.u
ndo, ¿puedes simplementep
aste? Sin embargoò
porque, de lo contrario, el programa termina temprano debido a la nueva línea implícita al final que causa un error de ruptura.p
aste, pero desafortunadamente mueve el cursor al final de la línea y para regresar necesitaría algo como``
lo que solo aumentaría mi bytecount aún másMATL , 16 bytes
¡Pruébalo en MATL Online!
Explicación
fuente
Noodel , 18 bytes
Intentalo:)
Cómo funciona
Fragmento de código de 19 bytes que se repite sin parar.
fuente
APL, 23 bytes
Explicación:
fuente
C #,
131bytesNo hay mucho que explicar. Simplemente toma una cadena (envuelta en "") como argumento e imprime cada carácter usando el patrón de retraso correcto. Después de la animación, sale con un
OutOfRangeException
porque el bucle no se detiene después de recorrer todos los personajes. Como es un bucle infinito, eso también significa que puedo usarlo enint Main
lugar devoid Main
;-)Golfed
Sin golf
Ediciones
i
dentro delSleep()
método en lugar de hacerlo en elfor
bucle. (Gracias Maliafo )fuente
Sleep(i++ [...])
guardar un byte adicional en el bucle for?SmileBASIC, 61 bytes
Creo que el cálculo del retraso podría ser mucho más corto.
fuente
Clojure, 81 bytes
Recorre la cadena de entrada comprimida con una lista infinita de
[100 100 500]
.fuente
Bash (+ utilidades), 32 bytes
Golfed
Manifestación
fuente
Python 3 ,
8375 bytesPruébalo en línea!
fuente
,flush=1
.Powershell,
666563 Bytes-1 eliminó el espacio en blanco innecesario después de
-m
-2 gracias a AdmBorkBork: usado
1,1,5
y*
resultado final en100
lugar de usar100,100,500
toma
$args
como una matriz de caracteres, recorreWrite-Host
el modo de-N
suspensión según lo especificado, con el argumento oNewline se usa para escribir los caracteres en la misma línea.Mejoras?
[0..99]
lugar de[char[]]
guardar 1 byte, pero no funcionará en cadenas de más de 100 caracteres.100,500
y[(++$i%3)-gt1]
pero hacerlo más corto de alguna manera.Write-Host
No puedo encontrar ninguna manera de hacer que los dos últimos funcionen, y el primero no es válido por ninguna regla en particular.
fuente
sleep -m((1,1,5)[++$i%3]*100)
Perl, 63 bytes
fuente
Python 3, 88 bytes
fuente
Rebol, 65 bytes
Sin golf:
fuente
Bash + coreutils, 57 bytes
fuente
Java 7,
151149 bytes-2 bytes gracias a @KritixiLithos por algo que siempre olvido.
Explicación:
Uso:
fuente
a[0].split("")
eso?split
en mi respuesta de procesamiento ...Procesamiento,
133131 bytesTraté de hacer
args[0]
y envolver el argumento en""
lugar, pero no funciona por alguna razón.De todos modos ... esta es la primera vez que escribo un programa de procesamiento que toma argumentos. A diferencia de Java, no necesita declarar los argumentos utilizando
String[]args
, pero la variableargs
se inicializará automáticamente a los argumentos.Póngalo en un archivo llamado
sketch_name.pde
debajo de una carpeta llamadasketch_name
(sí, el mismo nombre para la carpeta y el boceto). Llámalo como:fuente