Introdução
hackertyper.net é um site que simula "hackers" (como a mídia o retrata), exibindo códigos complicados da seção de criptografia do kernel Linux na tela enquanto você digita a uma taxa de 3 caracteres por um inserido.
Desafio
Seu programa / função deve aceitar um arquivo como argumento da linha de comando, ter o caminho do arquivo codificado ou aceitar o texto [que estaria no arquivo] como argumento da linha de comando ou função e imitar hackertyper.net produzindo 3 caracteres na tela (STDOUT ou equivalente) do arquivo para cada um recebido através de STDIN ou equivalente.
Uma vez alcançado o EOF, o programa deve começar a produzir caracteres do início do arquivo novamente (quebra automática).
Especificações
Por motivos de simplicidade, você pode assumir que o STDIN já foi definido como modo sem buffer e sem eco, que não estará aguardando até que o usuário pressione enter antes de passar a entrada para o seu programa e não exibir os caracteres digitados.
O arquivo pode conter novas linhas, enquanto a entrada não conterá novas linhas .
Para um pequeno exemplo escrito em C (sem golfe) que demonstra como isso funciona, consulte isso .
Texto verde e fundo preto não são necessários.
Exemplo de entrada e saída
O arquivo:
#include <stdio.h>
int main() { }
Entrada:
hello world
Resultado:
#include <stdio.h>
int main() { }
O arquivo:
hello
Entrada:
hello world
Resultado:
hellohellohellohellohellohellohel
Respostas:
Gelatina , 4 bytes
Experimente online!
Como funciona
fonte
J , 7 bytes
Leva dois argumentos, o texto a ser repetido e o texto de entrada do usuário.
Uso
O texto de entrada é formatado onde
,
significa ingressar eLF
é o caractere de nova linha.Experimente online. (tryj.tk)
fonte
Geléia, 9 bytes
Experimente online!
fonte
Pitão, 10 bytes
Experimente online!
fonte
JavaScript (ES6), 40 bytes
Onde
s
está a sequência de dados et
a sequência do usuário. Assume ques
não é vazio e o repete váriasl
vezes para garantir que seu comprimento seja pelo menos suficientel
para que ele possa retornar os primeirosl
caracteres, ondel
é três vezes o comprimento det
.fonte
Haskell, 25 bytes
O primeiro argumento é o que é "digitado", o segundo a fonte a ser exibida
Ou sem ponto, para (possivelmente) melhor legibilidade:
fonte
cycle
?cycle
pega uma lista e a repete infinitamente. Por exemplocycle "hi" == "hihihihi..
$
?Python 3.5,
776563 bytes:Simples o suficiente. Uma função anônima que recebe dois argumentos, o primeiro sendo o "arquivo" (
g
) e o segundo sendo os caracteres digitados pelo usuário (f
). Em seguida, isso cria um gerador contendo cada três caracteres emg
, que são encontrados pela indexação de cada caracterei
e, em seguidai+3
, emg
, ondei
está no intervalo de0=>(length of f)*3
. Finalmente, ele retorna cada objeto no gerador unido em uma grande string. Você chama essa função atribuindo uma variável a ela e, em seguida, chamando a variável agrupada dentro de umaprint()
expressão. Portanto, se o nome da função fosseq
, seria executado comoprint(q(<byte array here>))
.Experimente online! (repl.it)
fonte
05AB1E , 7 bytes
Código:
Explicação:
Experimente online! .
fonte
Jolf, 10 bytes
Experimente aqui!
Explicação
fonte
Ruby, 39 bytes
No Ruby,
$<
lê o arquivo fornecido nos argumentos da linha de comando, e não$stdin
se for fornecido um. (Se você se esqueça de fornecer um arquivo, você obter uma saída em branco porque ele lê tudo fora de$stdin
nos$<.read
e, assim,STDIN.read.size
será 0.)fonte