Gracias al desafío reciente de MD XF , ¡ahora podemos leer contraseñas en muchos idiomas diferentes! El problema es que ahora necesitamos portar nuestras aplicaciones a dispositivos móviles, y ellos ingresan la contraseña de manera un poco diferente.
Desafío
- Leer una cadena del teclado.
- Cada vez que
k
se ingresa un carácter , muéstrelo por un breve intervalo de tiempo. - Después de que el intervalo de tiempo haya pasado O el usuario haya ingresado otro carácter, reemplácelo
k
con algún carácterc
.
Reglas
c
debe ser constante; Debe ser el mismo personaje.c
puede ser cualquier carácter visible (es decir, no puede ser una nueva línea, espacio, tabulación o no imprimible).c
no puede basarse en ninguna entradak
;c
debe estar definido / constante antes de quek
se lea el primero .c
debe ser el mismo cada vez que se ejecuta el programa.c
puede ser uno de los valores dados comok
por accidente, siempre que se sigan todas las demás reglas.- Debe imprimir
k
en tiempo real. Tan pronto como el usuario ingrese uno nuevok
, debe mostrarlo de inmediato. k
debe ser visible para el usuario final antes de cambiarlo ac
; El intervalo de tiempo no será inferior a 0,5 segundos.k
debe ser reemplazado porc
dentro de un tiempo razonable; el intervalo de tiempo no debe exceder los 5 segundos.- Tan pronto como se introduce un nuevo personaje, si el intervalo de tiempo ha expirado, se debe reemplazar
k
conc
y utilizar la clave introducida como la nuevak
forma inmediata. - Es aceptable borrar y volver a dibujar la pantalla cada vez que necesite cambiar un personaje.
- Puede usar cualquier método razonable de entrada y salida siempre que se sigan todas las demás reglas.
- Puede suponer que el número de caracteres ingresados nunca es más largo que el ancho de la ventana del terminal / gráfico.
- Si usa un terminal, su programa debe finalizar después de ingresar una nueva línea o alcanzar EOF.
- Su programa debe funcionar como se describe aquí en entornos móviles y de otro tipo.
- Su programa puede suponer que la entrada solo contendrá caracteres imprimibles (letras, números, símbolos) y posiblemente una nueva línea de terminación (sin retroceso, teclas de flecha, borrar, etc.).
- Su programa puede finalizar cuando se presiona Ctrl + C.
- Puede finalizar su programa cerrando una ventana, si su programa inicia una.
Puntuación
Esto es código golf , por lo que gana la respuesta más corta en cada idioma.
Ejemplo
Aquí hay un ejemplo de cómo debería ser. Tenga en cuenta que esto se registra en una plataforma móvil, pero también debería funcionar en una plataforma de escritorio.
Respuestas:
HTML + JavaScript, 20 + 105 = 125 bytes
La demora entre la entrada
k
y la carta*
es de un segundo.JavaScript
oninput
, formateadoFragmento de prueba
Se agregó el soporte final (
>
) para una mejor compatibilidad.fuente
Python 3 ,
186224 bytesFunciona solo en ventanas.
Versión anterior (186 bytes): la suspensión fue obligatoria independientemente de la velocidad a la que se presionó la tecla.
fuente
As soon as a new character is entered, whether or not the time interval has expired, you should replace k with c and use the entered key as the new k immediately.
Dicho esto, no puedo probarlo ya que no ejecuto Windows, ¡hágamelo saber! Puede encontrar este desafío relacionado útil como referenciaPython 2 , 133 bytes
Basado en la respuesta @officialaimm .
fuente
\r
en la impresión