Archivo .COM de MS-DOS, 56 bytes
Aquí el contenido del archivo en hexadecimal:
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
El código del ensamblador correspondiente se ve así:
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
fuente
fuente
mov al, 0xfe / out 0x21,al
Respuestas:
NASM x86_64 -
349283bytesEsto debería ejecutarse en sistemas Linux de 64 bits
construido usando:
nasm loading_golfed.asm -felf64 && ld loading_golfed.o
animación:
ahorró 65 bytes - gracias user254948
fuente
R,
8589 bytesEditar: se corrigió la respuesta de modo que
T
no se desborde restableciendo el contador si es mayor que4
.El único aspecto interesante de esta respuesta es el uso de R's
TRUTHY
incorporadoT
. Es efectivamente un conjunto de variables predefinido, lo1/TRUE
que significa que no tenemos que inicializar el contador, pero podemos comenzar a incrementarloT
.fuente
T
eventualmente desbordar?1e+308
en cuyo casoNA
se devuelve, así que supongo que esta respuesta no es válida en ese momento (no lo noté en las reglas). Se actualizará prontoT
:i=1;repeat{cat("\rLoading...",c("\\","|","/","-")[i]);Sys.sleep(.25);i=`if`(i>3,1,i+1)}
es 87 bytes.T
un vector? FuncionaT=(T+1)%%4
? Ahorraría otros 5 bytes.T=T%%4+1
: incluso 2 bytes más cortos.Haskell (GHC),
10391 bytes¡Gracias @nimi por guardar 12 bytes!
fuente
mapM((threadDelay 250000>>).putStr)$("\rLoading... "++).pure<$>cycle"|/-\\"
.250000
y el espacio anterior(4^9)
.C (en sistemas tipo UNIX) 88 bytes
Comienza con el personaje equivocado, pero creo que se ve mejor. Puede cambiar fácilmente el orden de los caracteres modificando "\ - / |" cuerda.
fuente
for
, por ejemploain(_){for(;printf("\rLoading... %c","\\-/|"[_%4]);usleep(250000))_++,fflush(0);}
, luego podría jugar golf más aún asumiendo un envoltorio para el desbordamiento de enteros:main(_){for(;printf("\rLoading... %c","\\-/|"[_++%4]);usleep(250000))fflush(0);}
fprintf(stderr,...
lugar, podría usarlo , ya que esa no es una línea de búfer comostdout
. Laf...stderr,
toma de ocho caracteres, mientras que lafflush(0);
toma de diez, así que es una ganancia neta de dos caracteres.Perl,
716361 bytesVersión previa:
Gracias a @primo por 10 bytes.
fuente
select
tiempo de espera en lugar deTime::HiRes
. Puede guardar algunos bytes utilizando... while$|=print
y moviendo los guiones en la transliteración al frente y al final.s//\r Loading... |/
También guarda un byte sobre la asignación.y'-\|/'\|/-'
.\r
.y'-|\/'\/|-'/4
en lugar de.25
por 2 más.