pengantar
hackertyper.net adalah situs web yang mensimulasikan "peretasan" (sebagaimana media menggambarkannya) dengan mengeluarkan kode rumit dari bagian crypto dari kernel Linux ke layar saat Anda mengetik dengan laju 3 karakter per satu yang dimasukkan.
Tantangan
Program / fungsi Anda harus menerima file sebagai argumen command-line, memiliki path file yang dikodekan, atau menerima teks [yang akan ada di file] sebagai argumen command-line atau fungsi, dan meniru hackertyper.net dengan mengeluarkan 3 karakter ke layar (STDOUT atau setara) dari file untuk masing-masing yang diterima melalui STDIN atau setara.
Setelah EOF tercapai, program harus mulai mengeluarkan karakter dari awal file (bungkus).
Spesifikasi
Untuk tujuan kesederhanaan, Anda dapat mengasumsikan bahwa STDIN telah diatur ke tidak ada buffer dan tidak ada mode gema, yang tidak menunggu sampai pengguna menekan masuk sebelum mengirimkan input ke program Anda dan tidak menampilkan karakter yang Anda ketik.
File dapat berisi baris baru, sedangkan input tidak akan mengandung baris baru .
Untuk contoh kecil yang ditulis dalam C (bukan golf) yang menunjukkan cara kerjanya, lihat ini .
Teks hijau dan latar belakang hitam tidak diperlukan.
Contoh input dan output
Berkas:
#include <stdio.h>
int main() { }
Memasukkan:
hello world
Keluaran:
#include <stdio.h>
int main() { }
Berkas:
hello
Memasukkan:
hello world
Keluaran:
hellohellohellohellohellohellohel
Jawaban:
Jelly , 4 byte
Cobalah online!
Bagaimana itu bekerja
sumber
J , 7 byte
Membawa dua argumen, teks yang akan diulang dan teks input pengguna.
Pemakaian
Teks input diformat di mana
,
berarti bergabung danLF
merupakan karakter baris baru.Cobalah online. (tryj.tk)
sumber
Jelly, 9 byte
Cobalah online!
sumber
Pyth, 10 byte
Cobalah online!
sumber
JavaScript (ES6), 40 byte
Di mana
s
string data dant
string pengguna. Diasumsikans
tidak kosong dan diulangl
berkali - kali untuk memastikan bahwa panjangnya setidaknyal
agar dapat mengembalikanl
karakter pertama , di manal
panjangnya tiga kali lipatt
.sumber
Haskell, 25 byte
Argumen pertama adalah apa yang "diketik", yang kedua sumber untuk ditampilkan
Atau non-pointfree, untuk (mungkin) keterbacaan yang lebih baik:
sumber
cycle
?cycle
mengambil daftar dan mengulanginya tanpa batas. Misalnyacycle "hi" == "hihihihi..
$
?Python 3.5,
776563 byte:Cukup sederhana. Fungsi anonim yang mengambil dua argumen, yang pertama adalah "file" (
g
), dan yang kedua adalah karakter yang diketik oleh pengguna (f
). Kemudian ini menciptakan generator yang berisi setiap tiga karakter dig
, yang ditemukan dengan pengindeksan untuk setiapi
dan kemudiani+3
karakter dig
, di manai
berada dalam kisaran0=>(length of f)*3
. Akhirnya, mengembalikan setiap objek dalam generator bergabung menjadi satu string besar. Anda memanggil fungsi ini dengan menetapkan variabel ke dalamnya, dan kemudian memanggil variabel yang dibungkus di dalamprint()
ekspresi. Jadi jika nama fungsi ituq
, itu akan dieksekusi sepertiprint(q(<byte array here>))
.Cobalah online! (repl.it)
sumber
05AB1E , 7 byte
Kode:
Penjelasan:
Cobalah online! .
sumber
Jolf, 10 byte
Coba di sini!
Penjelasan
sumber
Ruby, 39 byte
Di Ruby,
$<
membaca dari file yang disediakan dalam argumen baris perintah alih-alih$stdin
jika diberikan. (Jika Anda lupa untuk memasok file, Anda mendapatkan output kosong karena membaca semuanya dari$stdin
dalam$<.read
dan dengan demikianSTDIN.read.size
akan menjadi 0.)sumber