Buat loader palsu seperti ini:
Parameter:
- Peragakan
loading
(spasi) salah satunya secara siklikal-\|/
(spasi) (penghitung persentase dari 0-100) lalu a%
. - Penghitung persentase seharusnya bertambah 1 setiap kali tampilan berubah.
- Waktu yang diambil oleh counter untuk melompat ke iterasi berikutnya adalah acak. Segala jenis acak akan dilakukan selama fungsi / metode ini mampu menghasilkan semua bilangan bulat acak yang memiliki probabilitas> 0 dalam kisaran di
1<= ms <=750
sinims
adalah waktu dalam milidetik. - Mulai di
loading - 0 %
. - Berakhir pada
loading - 100 %
. - TIDAK diperlukan INPUT.
- menyerahkan penuh program atau fungsi atau apa pun yang serupa.
Kode yang saya gunakan:
C ++
#include<stdio.h>
#include<time.h>
#include<windows.h>
int main()
{
srand(time(NULL));
char a[15],b[]="-\\|/";
int i=0,j=0,ms;
while(j<101)
{
(i<3)?i++:i=0;
wsprintf(a,"loading %c %d ",b[i],j++);
printf(a);puts("%");
//This part is to make the output look cool
switch(rand()%9)
{
case 0:ms=1;break;
case 1:ms=2;break;
case 2:ms=5;break;
case 3:ms=10;break;
case 4:ms=15;break;
case 5:ms=20;break;
case 6:ms=25;break;
case 7:ms=50;break;
case 8:ms=500;
}
Sleep(ms); //Otherwise this is supposed to be random
if(j<101) //like this Sleep(rand()%750+1);
system("cls");
}
}
Pemenang
- kode dengan paling tidak byte menang.
code-golf
ascii-art
kolmogorov-complexity
Mukul Kumar
sumber
sumber
\|/-
) adalah sama, jawabannya tampaknya berbeda karena tidak terbatas dan melibatkan generasi bilangan acak, bukan keluaran statis. Karena itu saya akan mengatakan, meskipun pada awalnya saya merasa disalin, ini tidak terlihat seperti penipuan bagi saya.-\|/
di beberapa game. Dan saya terinspirasi dari program instalasi konsol.Jawaban:
MATL , 45 byte
Contoh dijalankan di kompiler offline:
Atau coba di MATL Online!
Penjelasan
sumber
Powershell,
716865 BytesMirip dengan https://codegolf.stackexchange.com/a/101357/59735
Disimpan 3 byte dengan tidak menjadi idiot (meninggalkan ... saat memuat)
-3 Terima kasih kepada VisualMelon
berubah 750 -> 751 untuk memastikan 750 disertakan.
Penjelasan:
Diperbarui gif
sumber
-m
, dan kehilangan tanda kurung di sekitar$_%4
(tampaknya bekerja di kotak saya setidaknya).()
yang tersisa dari tantangan lain saya langsung menyalin kode saya dari.Python 2,
119113112 BytesSaya awalnya pergi dengan jumlah acak
random()/.75
, namun titik akhir tidak akan disertakan. Tidak ada banyak perbedaan dari ini dengan pertanyaan lain untuk waktu buka tanpa batas kecuali untuk keacakan dan fakta bahwa itu benar-benar berakhir.terima kasih kepada Jonathan Allan untuk menghemat 6 byte, dan DJMcMayhem karena telah menghemat satu byte!
sumber
import time,random as r
danr.randint
.for i in range(101):print'\rLoading','-\|/'[i%4],i,'%',;time.sleep(r.randint(1,750)/1e3)
range(1,101)
beberapa alasan ..i=0;for c in'-\|/'*25:print'\rLoading',c,i,'%',;time.sleep(r.randint(1,750)/1e3);i+=1
Batch, 185 byte
Sayangnya, pengaturan waktunya cukup buruk, tetapi Batch tidak memiliki yang lebih baik untuk digunakan daripada
ping
.sumber
Loading % Invalid switch. - /aw
(Saya ingin mencobanya di MS DOS jika saya masih dapat menemukan salinan saya).*> <> (Bintang laut),
8682 byteCoba di sini!
Ini mungkin bisa golf lebih banyak, tapi saya tidak melihat sesuatu yang sangat jelas. Ini tidur 100ms, 400ms, atau 700ms, jika ini tidak cukup acak, beri tahu saya!Terima kasih kepada @TealPelican karena telah menyelamatkan saya 4 byte dan membuatnya lebih acak!
Tantangan terbesar yang saya temukan (walaupun masih berusaha tetap kecil) adalah keacakan, dan sebenarnya menghasilkan "memuat - 100%" pada akhirnya, alih-alih hanya keluar pada kenyamanan terdekat saya: hal.
sumber
Perl 6 , 67 byte
Diperluas:
sumber
Javascript (ES6),
128118116115112110109 byteIni tampaknya bekerja dengan baik, bahkan dengan sumber angka "acak" yang samar ini.
Alternatif 1 , Javascript + HTML, 16 + 84 byte
Yang ini menggunakan elemen yang sudah ada untuk menampilkan konten yang tersisa:
Alternatif 2 , 95 byte
Jika saya dapat menganggap tab dibuka dan Anda menempelkan ini ke konsol:
Alih-alih menampilkan HTML, judul dokumen akan berubah.
Terima kasih kepada @ user2428118 karena telah menghemat 2 byte!
sumber
()
setelahDate
untuk menyimpan dua byte.F #, 118 byte
Untuk menjalankan cuplikan ini, berikan ke
Async.Start
atauAsync.RunSynchronously
.sumber
PHP,
9083807877Bytes77:
Penutupan
;
tidak diperlukan.78:
Sambil mencari solusi lain untuk mendapatkan 0 awalnya tanpa menginisialisasi variabel saya datang dengan ini:
Diubah kembali ke echo untuk memenangkan beberapa byte karena saya hanya menggunakan printf untuk memaksa-format sebagai int. Dengan menambah $ i yang bertambah dengan 0, saya mendapatkan bilangan bulat yang valid. Dengan menggunakan tanda kutip tunggal sebagai pembatas string, garis miring terbalik tidak perlu diloloskan, sehingga byte lainnya dibebaskan
80:
Memindahkan selisih $ i dari untuk-bagian terakhir ke PRIN memberi saya 3 lagi. (Lihat komentar di bawah)
83:
Init yang dihapus dari variabel dengan loaderstate.
90:
Saya mencoba menghapus init dari $ i untuk mendapatkan beberapa byte, karena saya harus menambahkan beberapa untuk mengaktifkan animasi loader. printf menambahkan 2 sebagai lawan gema, tetapi memformat NULL sebagai bilangan bulat menghasilkan 0.
sumber
printf
, menghemat satu byte:for(;$i<101;usleep(rand(1,750)*1e3))printf("\rloading %s %d%%",'-\|/'[$i%4],$i++);
(82 byte)rand(0,750)*1e3
mengembalikan nilai antara 0 (tidak valid) dan 750, yang dikalikan dengan 1000.rand(1,75e4)
mengembalikan nilai antara 1 (tidak valid) dan 750000. Penundaan harusrand(1,750)*1e3
, karena Anda gunakanusleep()
. Ini bekerja dengan mikrodetik , yang 1000x lebih kecil dari milidetik.echo
lebih pendek 3 byte dariprintf
. Anda mungkin ingin meletakkan versi terbaru ke atas dan menggunakannya#title
sebagai gantinya**title**
. Dan ada ruang yang hilang antara angka dan%
.Groovy,
11387 byte-36 byte berkat lealand
sumber
p=-1;101.times{println"Loading ${"-\\|/"[p++%4]} $p%";sleep Math.random()*750as int}
println"Loading…
→print"\rLoading…
. Dan hapus p variabel itu, gunakan yang implisit.Bash,
162104 byteModifikasi jawaban Zachary pada pertanyaan terkait, dengan peningkatan besar-besaran oleh manatwork:
Saya harus mencari cara melakukan angka acak di bash.
Tidak Dijelaskan / Dijelaskan
sumber
s='-\|/';for x in {0..100};{ printf "\rloading ${s:x%4:1} $x %%";sleep `printf .%03d $[RANDOM%750+1]`; }
BTW, rekan situs kami Unix & Linux juga memiliki pertanyaan tentang Bagaimana melakukan perhitungan integer & float, dalam bash atau bahasa / kerangka kerja lainnya? .$[math]
, menggunakan{ }
bukando done
, atau menggunakan kembali kutu$()
. Ya, menggunakan kembali $ x untuk mengakses array grafik loader masuk akal. Juga, menampar.
di depan nomor untuk mendapatkan desimal untuk tidur cukup manis!C #,
170149135 BytesTidak Terkumpul:
Saya tidak akan menjamin bahwa setiap karakter dalam hal ini benar, perbaiki saya jika ada kesalahan kompilasi. Saya harus mengetik semuanya di ponsel saya jadi saya mungkin tidak sengaja memasukkan beberapa kesalahan ... ¯_ (ツ) _ / ¯ Saya harap kalian memaafkan saya bahwaMengujinya di PC saya, berfungsi seperti pesona dan saya bahkan menyimpan 20 byte penuh berkat pmbanka :)
sumber
\r
(carriage return) sebagai gantiConsole.Clear()
. Anda juga dapat memasukkan variabel inline untuk menyimpan beberapa byte.i<=100
fori<101
for (int i = 0; i <= 100; i++)
dapat ditulis ulang sebagaifor (int i = 0; i++ <= 100;)
Lalu Anda dapat menempatkan Thread. Tidur di tempat di mana i ++ berada dan menyimpan kedua kurung keriting. Memotong total 3 bytestatic void l()
dengan()=>
C
112103 byteDisimpan 9 byte berkat @G. Sliepen. Tidak terlalu menarik, pada dasarnya hanya golf dari C ++ yang Anda jawab. Juga bukan fungsi acak yang sangat menarik. Saya berpikir tentang
Sleep(c[i%4])
, atauSleep(i)
tetapi mereka tidak acak sama sekali!Tidak Terkumpul:
sumber
rand ()%750
menghasilkan angka dari 0-749 Anda perlu menambahkan 1.rand()%750
kerand()%751
tidak akan memberikan hasil yang Anda inginkan. Ini akan menghasilkan nilai acak antara 0 dan 750. Dalam pertanyaan, penundaan harus antara 1 dan 750 (inklusif). Menurut tutorialspoint.com/c_standard_library/c_function_rand.htm ,rand()
fungsi menghasilkan angka antara 0 dan (setidaknya) 32767. Jika ya0 % 750
, Anda mendapatkan 0 sejak0 / <anything> == 0
.char*c="-\\|/";
dan menggunakan string literal secara langsung, bukan variabelc
:printf(...,"-\\|/"[i%4],...)
Mathematica, 133 Bytes
Ini akan berjalan sekali, dengan anggapan x tidak terdefinisi.
Clear@x
akan memulai kembali.55 karakter terikat dalam verbositas: /
sumber
UpdateInterval:>[email protected]
panggilan berulang kaliRandomReal
, tetapiUpdateInterval->[email protected]
akan menyebutnya hanya sekali.R - 94 byte
Sangat bagus
sample(750,1) == sample(1:750,1)
.sumber
HTML + JS (ES6), 16 + 87 = 103 byte
sumber
PHP,
6679 byteSayangnya saya harus menetapkan $ i untuk mendapatkannya untuk mencetak '0'.
Gunakan seperti:
Suntingan: terima kasih kepada Titus yang mengonfirmasi dengan tepat apa yang diizinkan dengan Mukul Kumar kita dapat menyimpan 3 byte dengan rentang yang kurang terbatas, tetapi tidak semua 9 byte dengan rentang yang tidak dibatasi. Terima kasih juga untuk menunjukkan bahwa saya lupa karakter bersepeda dan memberikan solusi sederhana untuk melakukannya.
sumber
rand(1,75e4)
menghemat 3 byte;1e6
dapat menyimpan yang lain; dan tidak ada parameter sama sekali yang menyimpan 9 byte sama sekali; dan saya tidak melihat itu melanggar aturan apa pun. Tetapi Anda lupa untuk menggilir karakter: +16 sebagai","-\\|/"[$i%4],"
ganti-
.usleep(rand(1,75e4))
menghasilkan interval acak antara 1 mikrodetik dan 750 milidetik ? Juga, menurut pertanyaan, interval harus antara 1 dan 750, inklusif.1 to 75e4
dapat diterima.Noodel , 40 byte tidak bersaing
Kembali ke tantangan lama (seperti tantangan yang dibuat sebelum Noodel ) dan bersaing dengan Noodel untuk menemukan di mana kelemahannya.
Jika hasil akhir tidak masalah, maka dapat menghemat 2 byte.
Noodel mendorong bagian atas tumpukan ke layar di akhir program dengan menambahkan
€Ḃ
mencegah hal itu terjadi.Cobalah:)
Bagaimana itu bekerja
sumber
¤
?¤
digunakan :)noodle
, lalu menerjemahkannyacode
ke Javascript?noodel
yang menangani dengancode
benar. Ini menerjemahkancode
token menjadi objek JavaScript yang dirantai bersama kemudian dieksekusi. Theppcg.min.js
menciptakan objek HTML yang tepat dan menerjemahkan output dari apa yang diuraikan ke dalam objek HTML untuk membuat tampilan. Setiap token dieksekusi dengan melangkah melalui mereka memicu acara langkah yang terdaftar untuk memperbarui layar :) Apakah itu membantu?C
126121 byteVersi tidak disatukan:
@Carcigenicate @ Mukul Kumar Tidak membaca yang tersirat di sana, Terima kasih! :)
sumber
MATLAB, 108 byte
sumber
Oktaf,
122120119108 byteSaya salah membaca tantangan dan membuat loader tanpa batas yang dimulai kembali pada 0 setelah lulus 100. Membuatnya menjadi satu-satunya loader saja:
Beredar
a
,a=a([2:4,1])
adalah ide cacat di sini . Juga, menyimpan 2 byte dengan melewatkan tanda kurung setelahrand
terima kasih kepada MattWH.sumber
.749*rand()+.001
? Ini bisa menunggu 751ms. Anda juga dapat meninggalkan()
rand off dan menyimpan 2 byte.ForceLang, 250 byte
Noncompeting, membutuhkan fitur bahasa yang mengunggah pertanyaan
Saya mungkin harus memperbaiki beberapa bug yang terkait dengan string literar parsing segera.
sumber
Racket 110 byte
Tidak Terkumpul:
Pengujian:
Keluaran:
(File gif ini menampilkan tampilan lebih lambat dari yang sebenarnya)
sumber
10775 RubyTerima kasih atas manatwork
Normal
Golf
sumber
system'clear'
itu berlebihan di sini. Juga penggunaan variabel terpisah i. Oh, dan hitung ulang jika memungkinkan:0.750-0.01
→0.749
(perhatikan juga bahwa Anda kekurangan satu tempat desimal 0,01 - seharusnya 0,001). Hasilnya101.times{|c|$><<"\rloading #{'-\|/'[c%4]} #{c} %";sleep rand*0.749+0.001}
menjadi sangat mirip dengan Conor O'Brien 's Ruby jawabannya di Loading ... Selamanya tapi jadi tantangan.Python 3, 149 byte
Mirip dengan Memuat ... Selamanya, tetapi saya memang harus mengedit jawaban saya dari sana.
sumber
TI-Basic, 80 byte
Keacakan berasal dari
For(
loop (E adalah token E ilmiah) dan karena TI-Basic ditafsirkan ada juga secara otomatis beberapa overhead. Ingat bahwa dalam TI-Basic, huruf kecil dan beberapa simbol ASCII yang kurang umum masing-masing adalah dua byte (jadi khusus untuk program ini,l o a d i n g sub( \ | %
adalah token dua-bytesumber
Clojure, 109 byte
Ulangi daftar rentang angka dari 0 hingga 100, ritsleting dengan daftar
"\|/-"
berulang berulang selamanya.sumber
tcl, 116
Dapat diputar di http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMOXoybnVSOVJEU00
sumber
Java 8, 130 byte
Penjelasan:
Output gif:
sumber
Visual Basic, 371 Bytes
Diperluas:
sumber