Вступление
hackertyper.net - это веб-сайт, который имитирует «взлом» (как его изображает медиа), выводя сложный код из крипто-раздела ядра Linux на экран, когда вы печатаете со скоростью 3 символа на каждый введенный.
Вызов
Ваша программа / функция должна либо принять файл в качестве аргумента командной строки, либо жестко закодировать путь к файлу, либо принять текст [который будет в файле] в качестве аргумента командной строки или функции, и имитировать hackertyper.net выводя 3 символа на экран (STDOUT или эквивалент) из файла для каждого из них, полученных через STDIN или эквивалент.
Как только EOF достигнут, программа должна снова начать вывод символов из начала файла (перенос).
Спекуляции
Для простоты вы можете предположить, что STDIN уже был установлен без буфера и без режима эха, то есть он не ждет, пока пользователь нажмет ввод, перед передачей ввода в вашу программу и без отображения введенных вами символов.
Файл может содержать символы новой строки, в то время как ввод не будет содержать строки .
Для небольшого примера, написанного на C (не игра в гольф), который демонстрирует, как это работает, посмотрите это .
Зеленый текст и черный фон не требуются.
Пример ввода и вывода
Файл:
#include <stdio.h>
int main() { }
Входные данные:
hello world
Выход:
#include <stdio.h>
int main() { }
Файл:
hello
Входные данные:
hello world
Выход:
hellohellohellohellohellohellohel
Ответы:
Желе , 4 байта
Попробуйте онлайн!
Как это работает
источник
J 7 байт
Принимает два аргумента: текст для повторения и вводимый пользователем текст.
использование
Вводимый текст форматируется там, где
,
означает присоединение, иLF
является символом новой строки.Попробуйте онлайн. (Tryj.tk)
источник
Желе, 9 байт
Попробуйте онлайн!
источник
Pyth, 10 байт
Попробуйте онлайн!
источник
JavaScript (ES6), 40 байт
Где
s
строка данных и строкаt
пользователя. Предполагается, чтоs
он непустой и повторяет этоl
время, чтобы гарантировать, что его длина хотя быl
так, чтобы он мог вернуть первыеl
символы, гдеl
в три раза больше длиныt
.источник
Haskell, 25 байт
Первый аргумент - это то, что «напечатано», второй - источник для отображения
Или неточечное, для (возможно) лучшей читабельности:
источник
cycle
?cycle
берет список и повторяет его бесконечно. Напримерcycle "hi" == "hihihihi..
$
?Python 3.5,
776563 байта:Достаточно просто. Анонимная функция, которая принимает два аргумента: первый - «file» (
g
), а второй - символы, введенные пользователем (f
). Затем это создает генератор, содержащий каждые три символа ing
, которые найдены путем индексации для каждогоi
и затемi+3
символов ing
, гдеi
находится диапазон0=>(length of f)*3
. Наконец, он возвращает каждый объект в генераторе, объединенный в одну большую строку. Вы вызываете эту функцию, присваивая ей переменную, а затем вызывая переменную, заключенную вprint()
выражение. Так что, если имя функции былоq
, она будет выполнена какprint(q(<byte array here>))
.Попробуйте онлайн! (Repl.it)
источник
05AB1E , 7 байтов
Код:
Объяснение:
Попробуйте онлайн! ,
источник
Джольф, 10 байт
Попробуй это здесь!
объяснение
источник
Рубин, 39 байт
В Ruby
$<
считывает из предоставленного файла аргументы командной строки, а не$stdin
если он задан. (Если вы забыли поставить файл, вы получите чистый выход , потому что он читает все из$stdin
в$<.read
и , таким образом ,STDIN.read.size
будет 0.)источник