Graças ao recente desafio do MD XF , agora podemos ler senhas em diversos idiomas! O problema é que agora precisamos portar nossos aplicativos para dispositivos móveis, e eles inserem a senha de maneira um pouco diferente.
Desafio
- Leia uma string do teclado.
- Sempre que um caractere
k
for inserido, exiba-o por um curto intervalo de tempo. - Após o intervalo de tempo OU, o usuário inseriu outro caractere, substitua
k
por algum caracterec
.
Regras
c
deve ser constante; deve ser o mesmo personagem.c
pode ser qualquer caractere visível (ou seja, não pode ser uma nova linha, espaço, guia ou não imprimível).c
não pode ser baseado em nenhuma entradak
;c
deve ser definido / constante antes que o primeirok
seja lido.c
deve ser o mesmo sempre que o programa for executado.c
pode ser um dos valores dados comok
se por acidente, desde que todas as outras regras sejam seguidas.- Você deve imprimir
k
em tempo real. Assim que o usuário inserir um novok
, você deve exibi-lo imediatamente. k
deve estar visível para o usuário final antes de ser alterado parac
; o intervalo de tempo não deve ser inferior a 0,5 segundos.k
deve ser substituídoc
dentro de um prazo razoável; o intervalo de tempo não deve exceder 5 segundos.- Assim que um novo personagem é introduzido, com ou sem o intervalo de tempo tiver expirado, você deve substituir
k
comc
e use a chave entrou como o novok
imediatamente. - É aceitável limpar e redesenhar a tela sempre que precisar alterar um personagem.
- Você pode usar qualquer método razoável de entrada e saída, desde que todas as outras regras sejam seguidas.
- Você pode supor que o número de caracteres inseridos nunca seja maior que a largura da janela gráfica do terminal /.
- Se estiver usando um terminal, seu programa deve terminar após uma nova linha ser inserida ou o EOF ser alcançado.
- Seu programa deve funcionar conforme descrito aqui em ambientes móveis e outros.
- Seu programa pode assumir que a entrada conterá apenas caracteres imprimíveis (letras, números, símbolos) e possivelmente uma nova linha final (sem espaço de fundo, teclas de seta, exclusão etc.).
- Seu programa pode terminar quando Ctrl + C é pressionado.
- Você pode encerrar seu programa fechando uma janela, se o programa iniciar uma.
Pontuação
Isso é código-golfe , então a resposta mais curta em cada idioma vence!
Exemplo
Aqui está um exemplo de como deve ser. Observe que isso é registrado em uma plataforma móvel, mas também deve funcionar em uma plataforma de desktop.
Respostas:
HTML + JavaScript, 20 + 105 = 125 bytes
O atraso entre a entrada
k
e a letra*
é de um segundo.JavaScript
oninput
, formatadoSnippet de teste
Adicionado o colchete final (
>
) para melhor compatibilidade.fonte
Python 3 ,
186224 bytesFunciona apenas no Windows.
Versão mais antiga (186 bytes): o sono era obrigatório, independentemente da velocidade na qual a tecla foi pressionada.
fonte
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.
Dito isto, não posso testá-lo porque não executo o Windows, então me avise! Você pode achar esse desafio relacionado útil como referênciaPython 2 , 133 bytes
Com base na resposta @officialaimm .
fonte
\r
na impressão