File MS-DOS .COM, 56 byte
Di sini konten file dalam heksadesimal:
b4 09 ba 2c 01 cd 21 b2 2f e8 11 00 b2 2d e8 0c
00 b2 5c e8 07 00 b2 7c e8 02 00 eb ea b4 02 cd
21 b2 08 cd 21 b9 05 00 f4 e2 fd c3 4c 6f 61 64
69 6e 67 2e 2e 2e 20 24
Kode assembler yang cocok terlihat seperti ini:
mov ah, 9 ; Print "Loading... "
mov dx, text
int 21h
theloop:
mov dl, '/' ; Call "chrout" for "/", "-", "\" and "|"
call chrout
mov dl, '-'
call chrout
mov dl, '\'
call chrout
mov dl, '|'
call chrout
jmp theloop ; Endless loop
chrout: ; Sub-Function "chrout"
mov ah, 2 ; Output the character
int 21h
mov dl, 8 ; Output backspace
int 21h
mov cx,5 ; Call "HLT" 5 times
timeloop:
hlt ; Normally HLT will wait ~55 milliseconds
; (Assuming no keyboard key is pressed)
loop timeloop
ret ; End of the function
text:
ASCII "Loading... ",'$'
Martin Rosenau
sumber
sumber
mov al, 0xfe / out 0x21,al
Jawaban:
NASM x86_64 -
349283 byteIni harus menjalankan sistem linux 64 bit
dibangun menggunakan:
nasm loading_golfed.asm -felf64 && ld loading_golfed.o
animasi:
disimpan 65 byte - terima kasih user254948
sumber
R,
8589 byteSunting: Memperbaiki jawaban agar
T
tidak meluap dengan mengatur ulang penghitung jika lebih besar dari4
.Satu-satunya aspek yang menarik tentang jawaban ini adalah penggunaan R's
TRUTHY
builtinT
. Ini secara efektif merupakan set variabel yang telah ditentukan1/TRUE
yang artinya kita tidak harus menginisialisasi penghitung tetapi dapat mulai menambahT
.sumber
T
akhirnya akan meluap?1e+308
dalam kasusNA
yang dikembalikan jadi saya kira jawaban ini tidak valid (tidak memperhatikannya dalam aturan). Akan segera diperbaruiT
:i=1;repeat{cat("\rLoading...",c("\\","|","/","-")[i]);Sys.sleep(.25);i=`if`(i>3,1,i+1)}
adalah 87 byte.T
vektor? ApakahT=(T+1)%%4
bekerja? Ini akan menghemat 5 byte lagi.T=T%%4+1
: bahkan 2 byte lebih pendek.Haskell (GHC),
10391 byteTerima kasih @nimi karena telah menghemat 12 byte!
sumber
mapM((threadDelay 250000>>).putStr)$("\rLoading... "++).pure<$>cycle"|/-\\"
.250000
dan ruang sebelum dengan(4^9)
.C (pada sistem mirip UNIX) 88 byte
Ini dimulai dengan karakter yang salah, tetapi saya pikir itu terlihat lebih bagus. Anda dapat dengan mudah mengubah urutan karakter dengan memodifikasi "\ - / |" tali.
sumber
for
, misalnyaain(_){for(;printf("\rLoading... %c","\\-/|"[_%4]);usleep(250000))_++,fflush(0);}
main(_){for(;printf("\rLoading... %c","\\-/|"[_++%4]);usleep(250000))fflush(0);}
fprintf(stderr,...
sebagai gantinya, karena itu bukan seperti garis bufferedstdout
. Thef...stderr,
mengambil delapan karakter, sedangkanfflush(0);
dibutuhkan sepuluh, jadi menang bersih dua karakter.Perl,
716361 byteVersi sebelumnya:
Terima kasih kepada @primo selama 10 byte.
sumber
select
batas waktu alih-alihTime::HiRes
. Anda dapat menyimpan beberapa byte dengan menggunakan... while$|=print
, dan dengan memindahkan tanda hubung dalam transliterasi ke depan dan akhir.s//\r Loading... |/
juga menyimpan byte lebih dari penugasan.y'-\|/'\|/-'
.\r
.y'-|\/'\/|-'/4
sebagai pengganti.25
2 lagi.