Einführung
hackertyper.net ist eine Website, die "Hacking" simuliert (wie es die Medien darstellen), indem sie komplizierten Code aus dem Krypto-Bereich des Linux-Kernels auf dem Bildschirm ausgibt, während Sie mit einer Rate von 3 Zeichen pro eingegebenem Zeichen eingeben.
Herausforderung
Ihr Programm / Ihre Funktion sollte entweder eine Datei als Befehlszeilenargument akzeptieren, den Dateipfad fest codieren lassen oder den Text [der sich in der Datei befinden würde] als Befehlszeilen- oder Funktionsargument akzeptieren und hackertyper.net imitieren durch Ausgabe von 3 Zeichen auf dem Bildschirm (STDOUT oder gleichwertig) aus der Datei für jedes über STDIN oder gleichwertig empfangene Zeichen.
Sobald EOF erreicht ist, sollte das Programm wieder am Anfang der Datei Zeichen ausgeben (Wrap).
Technische Daten
Der Einfachheit halber können Sie davon ausgehen, dass STDIN bereits auf keinen Puffer und keinen Echomodus eingestellt ist. Dies wartet nicht darauf, dass der Benutzer die Eingabetaste drückt, bevor die Eingabe an Ihr Programm übergeben wird und die von Ihnen eingegebenen Zeichen nicht angezeigt werden.
Die Datei kann Zeilenumbrüche enthalten, während die Eingabe keine Zeilenumbrüche enthält .
Ein kleines Beispiel in C (nicht mit Golf), das zeigt, wie dies funktioniert, finden Sie hier .
Grüner Text und ein schwarzer Hintergrund sind nicht erforderlich.
Beispiel für Ein- und Ausgabe
Die Datei:
#include <stdio.h>
int main() { }
Eingang:
hello world
Ausgabe:
#include <stdio.h>
int main() { }
Die Datei:
hello
Eingang:
hello world
Ausgabe:
hellohellohellohellohellohellohel
Antworten:
Gelee , 4 Bytes
Probieren Sie es online aus!
Wie es funktioniert
quelle
J , 7 Bytes
Nimmt zwei Argumente an, den zu wiederholenden Text und den Eingabetext des Benutzers.
Verwendung
Der Eingabetext ist so formatiert,
,
dass er verbunden werden soll, undLF
ist das Zeilenumbruchzeichen.Probieren Sie es online aus. (tryj.tk)
quelle
Gelee, 9 Bytes
Probieren Sie es online aus!
quelle
Pyth, 10 Bytes
Probieren Sie es online aus!
quelle
JavaScript (ES6), 40 Byte
Wo
s
ist die Datenzeichenfolge undt
ist die Benutzerzeichenfolge. Angenommen, ess
ist nicht leer und wirdl
mehrmals wiederholt, um sicherzustellen, dass seine Länge mindestensl
so ist, dass die erstenl
Zeichen zurückgegeben werden können, wobeil
die dreifache Länge von istt
.quelle
Haskell, 25 Bytes
Das erste Argument ist, was "getippt" ist, das zweite die Quelle, die angezeigt werden soll
Oder nicht punktfrei, um (möglicherweise) besser lesbar zu sein:
quelle
cycle
?cycle
nimmt eine Liste und wiederholt sie unendlich. ZBcycle "hi" == "hihihihi..
$
?Python 3.5,
776563 Bytes:Einfach genug. Eine anonyme Funktion, die zwei Argumente akzeptiert, wobei das erste die "Datei" (
g
) und das zweite die vom Benutzer (f
) eingegebenen Zeichen sind . Dies erzeugt dann einen Generator, der alle drei Zeichen enthältg
, die durch Indizieren für jedesi
und danni+3
Zeichen in gefunden werdeng
, woi
im Bereich von liegt0=>(length of f)*3
. Schließlich wird jedes Objekt im Generator zurückgegeben, das zu einer großen Zeichenfolge verbunden ist. Sie rufen diese Funktion auf, indem Sie ihr eine Variable zuweisen und dann die in einenprint()
Ausdruck eingeschlossene Variable aufrufen . Wenn also der Name der Funktionq
wäre, würde sie wie folgt ausgeführtprint(q(<byte array here>))
.Probieren Sie es online aus! (repl.it)
quelle
05AB1E , 7 Bytes
Code:
Erläuterung:
Probieren Sie es online aus! .
quelle
Jolf, 10 Bytes
Probieren Sie es hier aus!
Erläuterung
quelle
Ruby, 39 Bytes
$<
Liest in Ruby aus der angegebenen Datei in den Befehlszeilenargumenten, anstatt$stdin
eines anzugeben. (Wenn Sie vergessen, eine Datei anzugeben, erhalten Sie eine leere Ausgabe, da sie alles aus$stdin
in liest$<.read
und somitSTDIN.read.size
0 ist.)quelle