Dzięki najnowszemu wyzwaniu MD XF możemy teraz czytać hasła w wielu różnych językach! Problem polega na tym, że teraz musimy przenieść nasze aplikacje na urządzenia mobilne, a one wprowadzają hasła nieco inaczej.
Wyzwanie
- Przeczytaj ciąg z klawiatury.
- Za każdym razem, gdy
k
wprowadzany jest znak , wyświetl go przez krótki czas. - Po upływie czasu LUB użytkownik wprowadził inny znak, zamień
k
go na jakiś znakc
.
Zasady
c
musi być stały; musi to być ta sama postać.c
może być dowolnym widocznym znakiem (tzn. nie może być znakiem nowej linii, spacją, tabulatorem ani drukiem).c
nie może być oparty na żadnym wprowadzonym danychk
;c
musi być zdefiniowany / stały przed pierwszymk
odczytem.c
musi być taki sam przy każdym uruchomieniu programu.c
może być jedną z wartości podanych jakk
przez przypadek, o ile wszystkie inne reguły są przestrzegane.- Musisz drukować
k
w czasie rzeczywistym. Jak tylko użytkownik wprowadzi nowyk
, musisz go natychmiast wyświetlić. k
powinien być widoczny dla użytkownika końcowego przed zmianą nac
; odstęp czasu nie może być krótszy niż 0,5 sekundy.k
powinien zostać zastąpiony przezc
w rozsądnym terminie; przedział czasu nie może przekraczać 5 sekund.- Jak tylko nowa postać zostanie wprowadzony, czy przedział czasu upłynął, należy wymienić
k
zec
i używać wprowadzony jako nowy kluczk
natychmiast. - Dopuszczalne jest czyszczenie i przerysowywanie ekranu za każdym razem, gdy trzeba zmienić postać.
- Możesz stosować dowolne rozsądne metody wprowadzania i wyświetlania, o ile przestrzegane są wszystkie inne reguły.
- Możesz założyć, że liczba wprowadzonych znaków nigdy nie jest większa niż szerokość okna terminala / graficznego.
- Jeśli używasz terminala, twój program powinien zakończyć się po wprowadzeniu nowej linii lub osiągnięciu EOF.
- Twój program powinien działać tak, jak opisano tutaj, zarówno na urządzeniach mobilnych, jak i innych.
- Twój program może założyć, że dane wejściowe będą zawierać tylko znaki do wydrukowania (litery, cyfry, symbole) i być może końcowy znak nowej linii (bez cofania, klawiszy strzałek, usuwania itp.).
- Twój program może zakończyć się po naciśnięciu Ctrl + C.
- Możesz zakończyć swój program, zamykając okno, jeśli Twój program je uruchomi.
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w każdym języku!
Przykład
Oto przykład tego, jak powinien on wyglądać. Uwaga: jest to rejestrowane na platformie mobilnej, ale powinno również działać na platformie stacjonarnej.
Odpowiedzi:
HTML + JavaScript, 20 + 105 = 125 bajtów
Opóźnienie między wprowadzeniem
k
a przekształceniem litery*
wynosi jedną sekundę.JavaScript
oninput
, sformatowanyTest Snippet
Dodano nawias kończący (
>
) dla lepszej kompatybilności.źródło
Python 3 ,
186224 bajtówDziała tylko w systemie Windows.
Starsza wersja (186 bajtów): sen był obowiązkowy bez względu na szybkość naciskania klawisza.
źródło
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.
Mówiąc to, nie mogę tego przetestować, ponieważ nie uruchamiam systemu Windows, więc daj mi znać! To pokrewne wyzwanie może okazać się pomocne jako odniesieniePython 2 , 133 bajty
Na podstawie odpowiedzi @officialaimm .
źródło
\r
in the print