Tantangan Anda adalah menulis sebuah program atau fungsi yang menghambat sebuah string. Ini harus mengambil string sebagai input (melalui metode standar apa pun), kemudian ikuti langkah-langkah ini:
- Menghasilkan bilangan bulat acak (tidak harus seragam) n antara 1 dan 10, inklusif.
- Tunggu n detik.
- Cetak n karakter awal / berikutnya dari input, atau sisanya dari input jika ada kurang dari n karakter.
- Jika ada input yang tersisa untuk dicetak, kembali ke langkah 1.
Aturan
- Input akan selalu berupa string yang tidak kosong yang hanya berisi karakter ASCII (32-126).
- Waktu tunggu tidak harus tepat n detik, tetapi harus dalam waktu 10% dari n .
- Anda dapat mencetak baris tambahan setiap kali bagian teks dicetak.
Contoh
Ruang di sini mewakili 1 detik. Jika inputnya adalah Hiccupinator!
, output mungkin:
Hic cupin a tor!
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek dalam byte menang .
Jawaban:
Gores, 16 blok + 6 byte
Asumsikan input sudah didefinisikan sebagai daftar karakter (
["H","e","l","l","o"," ","W","o","r","l","d"]
)sumber
Pushy ,
201716 atau 13 byteTergantung pada apa yang diizinkan, ada dua solusi.
16 byte:
Berikan argumen pada baris perintah:
$ pushy hiccup.pshy 'hiccupinator'
. Ini mencetak dengan mengikuti baris baru setelah setiap 'cegukan'. Berikut rinciannya:13 byte:
Sambil mengkode jawaban di atas, saya menemukan solusi yang jauh lebih singkat:
Meskipun melakukan hal yang serupa, ia mencetak langsung dari string daripada membangun string baru, untuk lebih sedikit byte. Ini membutuhkan
N
di awal program untuk mencegah tertinggal baris baru, atau karakter masing-masing akan berada di baris baru.Namun, sementara pengujian ini saya melihat bug -
stdout
buffer-line, sehingga program akan menunggu panjang penuh, dan kemudian menampilkan string cegukan.Saya telah memperbaiki ini di komit terbaru dengan menambahkan sederhana
.flush()
- ini secara teknis tidak menambahkan fitur baru ke bahasa, hanya memperbaiki bug, tapi saya mengerti jika Anda tidak memperhitungkan jawaban ini :)Rinciannya seperti ini:
sumber
Javascript (ES6)
9189 Bytesdisimpan 2 byte berkat @zeppelin
Menyalahgunakan toleransi 10% untuk waktu tunggu dengan menunggu
n<<10 === 1024*n
milidetik.Karena Anda mengatakan bahwa waktu tunggu harus dalam 10% dari n , saya memutuskan untuk menghemat satu byte dan menunggu 999 milidetik daripada 1 detik.Saya tidak perlu lagi konyol 999 milidetik berkat @ETHProductions
sumber
1e3
;-)Python 2,
9392 byte-1 byte terima kasih kepada Flp.Tkc
Saya yakin ada cara untuk mempersingkat
random.randint
dantime.sleep
, tetapifrom random,time import*
tidak berhasil ...sumber
from random,time import*
tidak berfungsi karena Python tidak tahu dari modul mana Anda ingin mengimpor perpustakaan.while v1:n=ri(1,10);_i("time").sleep(n);p(v1[:n]);v1=v1[n:];
(Mengambil input dari args baris perintah)import random,time
def F(s):
if s:n=random.randint(1,10);time.sleep(n);print s[:n];F(s[n:])
Perl 6 , 62 byte
Diperluas
sumber
Batch, 131 byte
Menggunakan
set/pn=<nul
akan memberikan efek yang lebih baik kecuali itu memangkas ruang.sumber
Pyth, 16 byte
Kamu bisa mencobanya secara online , tetapi tidak berfungsi dengan baik karena penerjemah online hanya menampilkan output setelah program selesai.
Penjelasan
sumber
MATL , 19 byte
Bagaimana itu bekerja
Cobalah online! Compiler online memang secara bertahap menghasilkan output dengan jeda.
sumber
BaCon , 93 byte
Sebuah solusi dalam BASIC. Fungsi RANDOM () menghasilkan angka antara 0 dan n-1, oleh karena itu kita harus menggunakan RANDOM (11) untuk mendapatkan angka antara 0 dan 10 inklusif.
Sesi sampel, baris pertama adalah input, kedua output:
sumber
n=RANDOM(10)+1
, baris kode Anda akan menghasilkan angka dari 0-10 inklusif, bukan 1-10Perl, 42 byte
41 byte kode +1 untuk
-n
.Saya harus memaksa Perl untuk menyiram output karena tidak menunjukkan apa pun sampai akhir pada awalnya, maka pengaturan
$|
. Kami menggunakan$-
untuk melacak jumlah karakterprint
karena ini tidak boleh negatif (jadi saya bisa menggunakan--$-
dan itu akan menjadi palsu ketika kosong) dan jugafloor
, meskipun karena saya menggunakan kembalinyasleep
untuk ini sekarang, itu tidak tidak masalah.Pemakaian
sumber
Ruby, 56 byte
Lambda rekursif. Sebut seperti
f["Hello, World!"]
.sumber
> <> (Ikan)
10388 BytesPenerjemah online ditemukan di sini!
Upaya pertama pada masalah ini (bukan golf).
Ia menunggu sejumlah loop (n) karena ikan tidak memiliki timer yang dapat diakses (Eksekusi dalam kutu).
Sunting 1: Memindahkan baris terakhir ke atas (2 karakter terakhir dan menggunakan kembali nilai awal. (Penghematan 15 byte).
sumber
Bash, 78 byte
Karena belum ada yang memposting solusi Bash, ini dia. Mudah, namun cukup kecil.
Golf
Uji
sumber
PHP, 81 byte
gunakan seperti:
sumber
C ++ 14, 202 byte
Membutuhkan input untuk menjadi
std::string
Tidak digabungkan dan digunakan:
sumber
using namespace std;
harus menyimpan 5 byte dari semuastd::
itustd::
hanya ada dalam kode penggunaan, di yang golf hanya ada 4C #, 205 byte
Saya yakin ini bisa dihancurkan, saya belum benar-benar mengoptimalkannya sama sekali.
Tidak golf:
sumber
PHP, 74 byte
Jalankan dengan
php -r 'code' "string"
.sumber
C, 149 byte, tidak diuji
untuk menjalankan, tambahkan
kemudian kompilasi dan jalankan
sumber
Python 3, 99 karakter
sumber