Mengocok setumpuk kartu adalah hal yang sulit bagi anak-anak, sehingga mereka harus mencari cara untuk mendapatkan setumpuk kartu yang dikocok dengan baik sesederhana mungkin.
Salah satu cara untuk melakukan ini yang memberikan hasil yang cukup baik adalah:
- Keluarkan kartu teratas dan masukkan secara acak ke dalam dek
- Keluarkan kartu terbawah dan masukkan secara acak di geladak
- Lanjutkan sampai Anda yakin itu cukup baik.
Perhatikan bahwa Anda tidak akan pernah memasukkan kartu di tempat atas atau bawah, itu harus ditempatkan di suatu tempat di geladak.
Alih-alih menyeret kartu, kami akan mengocok karakter alfanumerik: 0-9
, A-J
, a-j
, q-z
dan Q-Z
.
Mulailah dengan string yang ditunjukkan di bawah dan kocok karakter seperti yang dijelaskan di atas. Anda dapat memilih apakah Anda ingin terus mengocok tanpa batas atau mengocok kartu 100 putaran (100 kartu dari atas dan 100 kartu dari bawah).
0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ
Tantangannya adalah untuk menampilkan karakter yang dikocok. Setiap "acak" (mengeluarkan dan memasukkan kartu) akan memakan waktu antara 0,25 dan 0,35 detik.
Gif di bawah ini menunjukkan contoh output:
Ini adalah kode-golf sehingga kode terpendek dalam byte menang.
"Kenapa kau tidak memiliki a-t
bukan a-j
, q-z
?" Karena ini akan menggambarkan kartu yang sesuai, bukan hanya karakter. Dan ya, ada 5 setelan.
Catatan: Saya telah memutuskan untuk berhenti menggunakan tanda centang pada code-golf -challenges. Posting meta yang relevan di sini dan di sini .
0-9
,A-J
,a-j
,q-z
danQ-Z
, menurut pertanyaan itu.Jawaban:
JavaScript (ES6),
192188185 byteSunting: Disimpan 4 byte berkat @ L.Serné. Disimpan 3 byte berkat @Arnauld.
sumber
e^=1
di dalam tanda kurung kosongMath.random
panggilan. Anda juga dapat mengubah konten teks ke dalamHTML, karena Anda tidak melewati karakter khusus. Anda juga dapat mengature
ke 0 di dalamtoLowerCase
panggilan.e
. Anda bisa menggunakannyas
. (Karena('some_string'^1) === 1
)MATL,
625856 byte2 Bytes disimpan berkat @Luis
Versi ini akan berjalan tanpa batas. Coba demo online di MATL Online , juru bahasa online eksperimental yang mendukung output dinamis. Ini akan berjalan selama 30 detik (batas keras yang diberlakukan oleh versi online) jika tidak terbunuh terlebih dahulu.
Penjelasan
sumber
Perl, 117 byte
Untuk menjalankannya:
Penjelasan:
-
@F=(0..9,a..j,"q"..z,A..J,Q..Z)
membuat dek awal, dan menyimpannya di@F
.-
{...;redo}
dieksekusi...
selamanya.- Sebagai
splice@F,++$|+rand(@F-2),0,++$v%2?shift@F:pop@F
alternatif, hapus elemen pertama / terakhir dari geladak dan masukkan ke dalam posisi acak (sambil menambah$|
, sehingga cetakan tidak buffer),-
print"\r",@F
mencetak geladak,-
select$,,$,,$,,.3
tidur selama 0,3 detik (Perlsleep
tidak dapat tidur kurang dari 5 1 detik),sumber
0..9
tidak1..9
, dan dek awal Anda juga rusak :)Python 3,
199196192186 byteDisimpan 4 byte berkat TuukkaX, dan 6 byte berkat FlipTack!
Menggunakan
print
fungsi Python 3 untuk menekan baris baru, lebih pendek dari Python 2sys.stdout.write
.Menggunakan variabel flip-flop untuk beralih antara memindahkan kartu atas dan bawah.
Tidak Disatukan:
sumber
import random,time
lebih pendek?C,
290285 byteTidak Disatukan:
sumber
Swift, 288 byte
Golf di Swift selalu menjadi tantangan, karena salah satu nilai jualnya adalah ekspresif.
sumber
Ruby (
138119 Bytes)Tidak sesingkat @PaulPrestidge tetapi setidaknya saya memahaminya .. Juga bagus untuk mengetahui bahwa ruby seperti terowongan yang luar biasa!
sumber
Rubi,
111101 karakterLoop tak terhingga.
sumber
Noodel , 41 byte tidak bersaing
Cobalah:)
Bagaimana itu bekerja
sumber
bash, 170 byte
di sini '^' (pada baris pertama) mewakili
ctrl-m
: dimasukkan pada baris perintah sebagaictrl-v
enter
atau dalam editor sesuai dengan cara kerja editor Anda (dengan asumsi editor Anda bekerja)sumber