Grâce au récent défi de MD XF , nous pouvons désormais lire les mots de passe dans de nombreuses langues différentes! Le problème est que nous devons maintenant porter nos applications sur des appareils mobiles, et ils saisissent un mot de passe un peu différemment.
Défi
- Lisez une chaîne du clavier.
- Chaque fois qu'un caractère
k
est entré, affichez-le pendant un court intervalle de temps. - Une fois l'intervalle de temps écoulé OU l'utilisateur a entré un autre caractère, remplacez-le
k
par un caractèrec
.
Règles
c
doit être constant; ce doit être le même personnage.c
peut être n'importe quel caractère visible (c'est-à-dire qu'il ne peut pas s'agir d'une nouvelle ligne, d'un espace, d'une tabulation ou non imprimable).c
ne peut pas être basé sur une entréek
;c
doit être défini / constant avant la premièrek
lecture.c
doit être le même à chaque exécution du programme.c
peut être l'une des valeurs données commek
par accident, tant que toutes les autres règles sont respectées.- Vous devez imprimer
k
en temps réel. Dès que l'utilisateur saisit un nouveauk
, vous devez l'afficher immédiatement. k
doit être visible par l'utilisateur final avant d'être remplacé parc
; l'intervalle de temps ne doit pas être inférieur à 0,5 seconde.k
devrait être remplacé parc
dans un délai raisonnable; l'intervalle de temps ne doit pas dépasser 5 secondes.- Dès qu'un nouveau caractère est entré, que l'intervalle de temps soit expiré ou non, vous devez remplacer
k
parc
et utiliser la clé entrée comme nouveauk
immédiatement. - Il est acceptable d'effacer et de redessiner l'écran chaque fois que vous devez changer un personnage.
- Vous pouvez utiliser toutes les méthodes d'entrée et de sortie raisonnables tant que toutes les autres règles sont respectées.
- Vous pouvez supposer que le nombre de caractères saisis n'est jamais supérieur à la largeur du terminal / de la fenêtre graphique.
- Si vous utilisez un terminal, votre programme doit se terminer après la saisie d'une nouvelle ligne ou lorsque l'EOF est atteint.
- Votre programme devrait fonctionner comme indiqué ici sur les environnements mobiles et autres.
- Votre programme peut supposer que l'entrée ne contiendra que des caractères imprimables (lettres, chiffres, symboles) et éventuellement une nouvelle ligne de fin (pas de retour arrière, de touches fléchées, de suppression, etc.).
- Votre programme peut se terminer lorsque vous appuyez sur Ctrl + C.
- Vous pouvez terminer votre programme en fermant une fenêtre, si votre programme en lance une.
Notation
C'est le code-golf , donc la réponse la plus courte dans chaque langue gagne!
Exemple
Voici un exemple de ce à quoi cela devrait ressembler. Notez que cela est enregistré sur une plate-forme mobile, mais devrait également fonctionner sur une plate-forme de bureau.
Réponses:
HTML + JavaScript, 20 + 105 = 125 octets
Le délai entre l'entrée de
k
et la lettre devenant*
est d'une seconde.JavaScript
oninput
, formatéExtrait de test
Ajout du crochet de fin (
>
) pour une meilleure compatibilité.la source
Python 3 ,
186224 octetsFonctionne uniquement sous Windows.
Version plus ancienne (186 octets): la mise en veille était obligatoire quelle que soit la vitesse à laquelle la touche était enfoncée.
la source
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.
Cela étant dit, je ne peux pas le tester car je n'exécute pas Windows, alors faites le moi savoir! Vous pouvez trouver ce défi connexe utile comme référencePython 2 , 133 octets
Basé sur la réponse @officialaimm .
la source
\r
in the print