Благодаря недавнему испытанию MD XF , мы теперь можем читать пароли на разных языках! Проблема в том, что теперь нам нужно портировать наши приложения на мобильные устройства, и они вводят пароль немного по-другому.
Вызов
- Прочитайте строку с клавиатуры.
- Каждый раз, когда вводится символ
k
, отображайте его в течение короткого интервала времени. - По истечении интервала времени ИЛИ пользователь ввел другой символ, замените его
k
на какой-либо другой символc
.
правила
c
должен быть постоянным; это должен быть тот же персонаж.c
может быть любым видимым символом (т. е. он не может быть символом новой строки, пробела, табуляции или непечатного текста).c
не может быть основано на каком-либо введенномk
;c
должно быть определено / константно передk
прочтением первого .c
должен быть одинаковым при каждом запуске программы.c
может быть одним из значений, заданных какk
бы случайно, при условии соблюдения всех других правил.- Вы должны печатать
k
в режиме реального времени. Как только пользователь вводит новыйk
, вы должны отобразить его немедленно. k
должен быть виден конечному пользователю перед изменением наc
; временной интервал должен быть не менее 0,5 секунд.k
должны быть замененыc
в течение разумного периода времени; временной интервал не должен превышать 5 секунд.- Как только вводится новый символ, или не истек интервал времени, вы должны заменить
k
сc
и использовать введенный ключ как новыеk
немедленно. - Допустимо очищать и перерисовывать экран каждый раз, когда вам нужно сменить персонажа.
- Вы можете использовать любые разумные методы ввода и вывода при условии соблюдения всех других правил.
- Вы можете предположить, что количество введенных символов никогда не превышает ширину терминала / графического окна.
- Если вы используете терминал, ваша программа должна завершиться после ввода новой строки или достижения EOF.
- Ваша программа должна функционировать, как описано здесь, как в мобильной, так и в другой среде.
- Ваша программа может предполагать, что ввод будет содержать только печатаемые символы (буквы, цифры, символы) и, возможно, завершающий символ новой строки (без возврата на клавишу, клавиш со стрелками, удаления и т. Д.).
- Ваша программа может завершиться при нажатии Ctrl + C.
- Вы можете прекратить свою программу, закрыв окно, если оно запустится.
счет
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке!
пример
Вот пример того, как это должно выглядеть. Обратите внимание, что это записано на мобильной платформе, но также должно работать на настольной платформе.
Ответы:
HTML + JavaScript, 20 + 105 = 125 байт
Задержка между вступлением
k
и получением письма*
составляет одну секунду.JavaScript
oninput
, отформатированныйТестовый фрагмент
Добавлена конечная скобка (
>
) для лучшей совместимости.источник
Python 3 ,
186224 байтаРаботает только в windows.
Старая версия (186 байт). Режим ожидания был обязательным независимо от скорости нажатия клавиши.
источник
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.
как говорится, я не могу проверить это, так как я не запускаю Windows, поэтому дайте мне знать! Вы можете найти эту проблему полезной для справкиPython 2 , 133 байта
Основано на ответе @officialaimm .
источник
\r
в печати