introduction
hackertyper.net est un site Web qui simule le "piratage" (tel que les médias le dépeignent) en sortant à l'écran du code compliqué de la section crypto du noyau Linux lorsque vous tapez à un taux de 3 caractères par entrée.
Défi
Votre programme / fonction doit soit accepter un fichier comme argument de ligne de commande, soit coder en dur le chemin du fichier, soit accepter le texte [qui serait dans le fichier] comme argument de ligne de commande ou de fonction, et imiter hackertyper.net en affichant 3 caractères sur l'écran (STDOUT ou équivalent) à partir du fichier pour chacun reçu via STDIN ou équivalent.
Une fois EOF atteint, le programme devrait recommencer la sortie des caractères depuis le début du fichier (retour à la ligne).
Spécifications
Pour des raisons de simplicité, vous pouvez supposer que STDIN a déjà été défini sur aucun tampon et aucun mode d'écho, ce qui n'attend pas que l'utilisateur appuie sur Entrée avant de passer l'entrée à votre programme et de ne pas afficher les caractères que vous tapez.
Le fichier peut contenir des retours à la ligne, tandis que l'entrée ne contiendra pas de retours à la ligne .
Pour un petit exemple écrit en C (non joué) qui montre comment cela fonctionne, voir ceci .
Un texte vert et un fond noir ne sont pas requis.
Exemple d'entrée et de sortie
Le fichier:
#include <stdio.h>
int main() { }
Contribution:
hello world
Production:
#include <stdio.h>
int main() { }
Le fichier:
hello
Contribution:
hello world
Production:
hellohellohellohellohellohellohel
Réponses:
Gelée , 4 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
J , 7 octets
Prend deux arguments, le texte à répéter et le texte d'entrée de l'utilisateur.
Usage
Le texte d'entrée est formaté à l'endroit où
,
se joindre etLF
correspond au caractère de nouvelle ligne.Essayez-le en ligne. (tryj.tk)
la source
Gelée, 9 octets
Essayez-le en ligne!
la source
Pyth, 10 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 40 octets
Où
s
est la chaîne de données ett
la chaîne utilisateur. Suppose qu'ils
n'est pas vide et le répète plusieursl
fois pour s'assurer que sa longueur est au moinsl
afin qu'il puisse renvoyer les premiersl
caractères,l
soit trois fois la longueur det
.la source
Haskell, 25 octets
Le premier argument est ce qui est "tapé", le second la source à afficher
Ou sans point, pour (éventuellement) une meilleure lisibilité:
la source
cycle
?cycle
prend une liste et la répète à l'infini. Par exemplecycle "hi" == "hihihihi..
$
?Python 3.5,
776563 octets:Assez simple. Une fonction anonyme qui accepte deux arguments, le premier étant le "fichier" (
g
), et le second les caractères saisis par l'utilisateur (f
). Ensuite, cela crée un générateur contenant tous les trois caractères dansg
, qui sont trouvés en indexant pour chaquei
, puis lesi+3
caractères dansg
, oùi
est dans la plage de0=>(length of f)*3
. Enfin, il renvoie chaque objet du générateur joint en une seule grande chaîne. Vous appelez cette fonction en lui affectant une variable, puis en appelant la variable enveloppée dans uneprint()
expression. Donc, si le nom de la fonction étaitq
, elle serait exécutée commeprint(q(<byte array here>))
.Essayez-le en ligne! (repl.it)
la source
05AB1E , 7 octets
Code:
Explication:
Essayez-le en ligne! .
la source
Jolf, 10 octets
Essayez-le ici!
Explication
la source
Rubis, 39 octets
Dans Ruby,
$<
lit à partir du fichier fourni dans les arguments de ligne de commande au lieu de$stdin
si un est donné. (Si vous oubliez de fournir un fichier, vous obtenez une sortie vide car il lit tout$stdin
dans$<.read
etSTDIN.read.size
sera donc 0.)la source