Su desafío es escribir un programa o función que tenga una cadena. Debe tomar una cadena como entrada (a través de cualquier método estándar), luego siga estos pasos:
- Genere un entero aleatorio (no necesariamente uniformemente) n entre 1 y 10, inclusive.
- Espera n segundos
- Imprima los n caracteres iniciales / siguientes de la entrada, o el resto de la entrada si hay menos de n caracteres.
- Si queda entrada para imprimir, regrese al paso 1.
Reglas
- La entrada siempre será una cadena no vacía que contenga solo caracteres ASCII (32-126).
- El tiempo de espera no tiene que ser exactamente n segundos, pero debe estar dentro del 10% de n .
- Puede imprimir una nueva línea final cada vez que se imprime una sección de texto.
Ejemplo
Un espacio aquí representa 1 segundo. Si la entrada es Hiccupinator!
, una salida podría ser:
Hic cupin a tor!
Puntuación
Este es el código de golf , por lo que gana el código más corto en bytes .
Respuestas:
Scratch, 16 bloques + 6 bytes
Asume que la entrada ya está definida como una lista de caracteres (
["H","e","l","l","o"," ","W","o","r","l","d"]
)fuente
Pushy ,
201716 o 13 bytesDependiendo de lo que está permitido, hay dos soluciones.
16 bytes:
Dar argumentos en la línea de comandos:
$ pushy hiccup.pshy 'hiccupinator'
. Esto se imprime con líneas nuevas después de cada 'hipo'. Aquí está el desglose:13 bytes:
Mientras codificaba la respuesta anterior, se me ocurrió esta solución significativamente más corta:
Aunque hace algo similar, imprime directamente de la cadena en lugar de construir una nueva cadena, por menos bytes. Esto requiere que
N
al comienzo del programa se evite el arrastre de nuevas líneas, o de lo contrario cada personaje estaría en una nueva línea.Sin embargo, al probar esto, noté un error:
stdout
está protegido por líneas, por lo que el programa esperaría toda la longitud y luego mostraría la cadena con hipo.Lo arreglé en la última confirmación agregando un simple
.flush()
: técnicamente no es agregar una nueva característica al idioma, solo corregir un error, pero entiendo si no tiene en cuenta esta respuesta :)El desglose se ve así:
fuente
Javascript (ES6)
9189 Bytesahorró 2 bytes gracias a @zeppelin
Abusa de la tolerancia del 10% para el tiempo de espera al esperar
n<<10 === 1024*n
milisegundos.Como usted dijo que el tiempo de espera debe estar dentro del 10% de n , decidí guardar un byte y esperar 999 milisegundos en lugar de 1 segundo.Ya no necesito las tonterías de 999 milisegundos gracias a @ETHProductions
fuente
1e3
;-)Python 2,
9392 bytes-1 byte gracias a Flp.Tkc
Estoy seguro de que hay una manera de acortar el
random.randint
ytime.sleep
, perofrom random,time import*
no funciona ...fuente
from random,time import*
no funciona porque Python no sabe desde qué módulo desea importar bibliotecas.while v1:n=ri(1,10);_i("time").sleep(n);p(v1[:n]);v1=v1[n:];
(Toma información de losimport random,time
luegodef F(s):
nueva líneaif s:n=random.randint(1,10);time.sleep(n);print s[:n];F(s[n:])
Perl 6 , 62 bytes
Expandido
fuente
Lote, 131 bytes
El uso
set/pn=<nul
hubiera dado un efecto más agradable, excepto que recorta espacios.fuente
Pyth, 16 bytes
Puede probarlo en línea , pero no funciona bien ya que el intérprete en línea solo muestra la salida una vez que el programa ha finalizado.
Explicación
fuente
MATL , 19 bytes
Cómo funciona
Pruébalo en línea! El compilador en línea produce gradualmente las salidas con las pausas.
fuente
BaCon , 93 bytes
Una solución en BASIC. La función RANDOM () genera un número entre 0 y n-1, por lo tanto, tenemos que usar RANDOM (11) para obtener un número entre 0 y 10 inclusive.
Sesión de muestra, la primera línea es la entrada, la segunda la salida:
fuente
n=RANDOM(10)+1
, su línea de código generará un número de 0-10 inclusive, no 1-10Perl, 42 bytes
Código de 41 bytes + 1 para
-n
.Tuve que forzar a Perl a eliminar la salida, ya que no mostraba nada hasta el final al principio, por lo tanto, la configuración
$|
. Usamos$-
para rastrear el número de caracteres,print
ya que esto no puede ser negativo (por lo que puedo usar--$-
y será falso cuando está vacío) y tambiénfloor
es, aunque como estoy usando el retorno desleep
esto ahora, eso no Realmente no importa.Uso
fuente
Ruby, 56 bytes
Una lambda recursiva. Llama como
f["Hello, World!"]
.fuente
> <> (Pescado)
10388 BytesIntérprete en línea encontrado aquí!
Primer intento en este problema (no golfizado).
Espera una cierta cantidad de bucles (n) ya que el pez no tiene un temporizador accesible (Ejecución en ticks).
Edición 1: movió la última línea a la parte superior (últimos 2 caracteres y reutilizó los valores iniciales) (ahorro de 15 bytes).
fuente
Bash, 78 bytes
Como nadie ha publicado una solución Bash todavía, aquí hay una. Directo, pero lo suficientemente pequeño.
Golfed
Prueba
fuente
PHP, 81 bytes
usar como:
fuente
C ++ 14, 202 bytes
Requiere entrada para ser un
std::string
Sin golf y uso:
fuente
using namespace std;
debería guardar 5 bytes de todos esosstd::
sstd::
solo está en el código de uso, en el golf solo hay 4C #, 205 bytes
Estoy seguro de que esto puede ser destruido, realmente no lo he optimizado en absoluto tal como está.
Sin golf:
fuente
PHP, 74 bytes
Corre con
php -r 'code' "string"
.fuente
C, 149 bytes, no probado
para correr, agregue
luego compila y ejecuta
fuente
Python 3, 99 caracteres
fuente