Wprowadzenie
hackertyper.net to strona internetowa, która symuluje „hackowanie” (tak jak to pokazują media) poprzez wyświetlanie na ekranie skomplikowanego kodu z sekcji kryptograficznej jądra Linuxa podczas pisania z szybkością 3 znaków na jeden wprowadzony tekst.
Wyzwanie
Twój program / funkcja powinna albo zaakceptować plik jako argument wiersza polecenia, mieć zakodowaną ścieżkę pliku, albo zaakceptować tekst [, który byłby w pliku] jako argument wiersza polecenia lub funkcji i naśladować hackertyper.net poprzez wyprowadzenie 3 znaków na ekran (STDOUT lub równoważny) z pliku dla każdego odebranego przez STDIN lub równoważny.
Po osiągnięciu EOF program powinien ponownie zacząć wypisywać znaki od początku pliku (zawinąć).
Okular
Dla uproszczenia można założyć, że STDIN został już ustawiony na tryb bez bufora i bez echa, który nie czeka, aż użytkownik naciśnie klawisz Enter, zanim przekaże dane wejściowe do programu i nie wyświetli wpisanych znaków.
Plik może zawierać nowe linie, a dane wejściowe nie będą zawierać nowych linii .
Za niewielką przykład napisany w C (nie grałem), który pokazuje, jak to działa, zobacz to .
Zielony tekst i czarne tło nie są wymagane.
Przykładowe wejście i wyjście
Plik:
#include <stdio.h>
int main() { }
Wejście:
hello world
Wynik:
#include <stdio.h>
int main() { }
Plik:
hello
Wejście:
hello world
Wynik:
hellohellohellohellohellohellohel
Odpowiedzi:
Galaretka , 4 bajty
Wypróbuj online!
Jak to działa
źródło
J , 7 bajtów
Bierze dwa argumenty, tekst do powtórzenia i tekst wejściowy użytkownika.
Stosowanie
Tekst wejściowy jest sformatowany w miejscu, w którym
,
oznacza się połączyć, iLF
jest znakiem nowego wiersza.Wypróbuj online. (tryj.tk)
źródło
Galaretka, 9 bajtów
Wypróbuj online!
źródło
Pyth, 10 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 40 bajtów
Gdzie
s
jest ciąg danych it
ciąg użytkownika. Zakłada, żes
jest niepusty i powtarza gol
razy, aby upewnić się, że jego długość jest co najmniejl
taka, że może zwrócić pierwszel
znaki, gdziel
jest trzy razy większa niżt
.źródło
Haskell, 25 bajtów
Pierwszy argument to „wpisany”, drugi to źródło do wyświetlenia
Lub bez punktów, dla (ewentualnie) lepszej czytelności:
źródło
cycle
?cycle
bierze listę i powtarza ją w nieskończoność. Np.cycle "hi" == "hihihihi..
$
?Python 3.5,
776563 bajtów:Wystarczająco proste. Anonimowa funkcja, która przyjmuje dwa argumenty, pierwszy to „plik” (
g
), a drugi to znaki wpisane przez użytkownika (f
). Następnie tworzy generator zawierający co trzy znaki wg
, które można znaleźć poprzez indeksowanie dla każdego,i
a następniei+3
znaków wg
, gdziei
jest w zakresie0=>(length of f)*3
. Na koniec zwraca każdy obiekt w generatorze połączony w jeden duży ciąg. Wywołujesz tę funkcję, przypisując do niej zmienną, a następnie wywołując zmienną zawiniętą wprint()
wyrażenie. Więc jeśli nazwa funkcjiq
byłaby, byłaby wykonana jakprint(q(<byte array here>))
.Wypróbuj online! (repl.it)
źródło
05AB1E , 7 bajtów
Kod:
Wyjaśnienie:
Wypróbuj online! .
źródło
Jolf, 10 bajtów
Wypróbuj tutaj!
Wyjaśnienie
źródło
Rubin, 39 bajtów
W Ruby
$<
czyta z dostarczonego pliku w argumentach wiersza poleceń zamiast,$stdin
jeśli podano jeden. (Jeśli zapomnij dostarczyć plik, pojawi się pusta wyjście ponieważ czyta wszystko z$stdin
w$<.read
a zatemSTDIN.read.size
będzie 0.)źródło