Arquivo .com do MS-DOS, 56 bytes
Aqui o conteúdo do arquivo em 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
O código do assembler correspondente é assim:
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
fonte
fonte
mov al, 0xfe / out 0x21,al
Respostas:
NASM x86_64 -
349283 bytesIsso deve ser executado em sistemas Linux de 64 bits
construído usando:
nasm loading_golfed.asm -felf64 && ld loading_golfed.o
animação:
salvou 65 bytes - obrigado user254948
fonte
R,
8589 bytesEditar: Corrigida a resposta de forma que
T
não transbordasse, redefinindo o contador se maior que4
.O único aspecto interessante sobre essa resposta é o uso do R
TRUTHY
embutidoT
. É efetivamente um conjunto de variáveis predefinido, o1/TRUE
que significa que não precisamos inicializar o contador, mas podemos começar a incrementarT
.fonte
T
transbordando?1e+308
caso em queNA
é retornado, então acho que essa resposta é inválida (não a note nas regras). Será atualizado em breveT
:i=1;repeat{cat("\rLoading...",c("\\","|","/","-")[i]);Sys.sleep(.25);i=`if`(i>3,1,i+1)}
é 87 bytes.T
um vetor? FuncionaT=(T+1)%%4
? Isso salvaria outros 5 bytes.T=T%%4+1
: até 2 bytes mais curtos.Haskell (GHC),
10391 bytesObrigado @nimi por salvar 12 bytes!
fonte
mapM((threadDelay 250000>>).putStr)$("\rLoading... "++).pure<$>cycle"|/-\\"
.250000
e o espaço antes dele(4^9)
.C (em sistemas UNIX) 88 bytes
Começa com o personagem errado, mas acho que parece melhor. Você pode alterar facilmente a ordem dos caracteres modificando o "\ - / |" corda.
fonte
for
, por exemploain(_){for(;printf("\rLoading... %c","\\-/|"[_%4]);usleep(250000))_++,fflush(0);}
main(_){for(;printf("\rLoading... %c","\\-/|"[_++%4]);usleep(250000))fflush(0);}
fprintf(stderr,...
vez disso, uma vez que isso não é buffer de linha comostdout
. O jogof...stderr,
leva oito caracteres, enquanto o jogofflush(0);
leva dez, por isso é uma vitória líquida de dois personagens.Perl,
716361 bytesVersão anterior:
Thanx para @primo por 10 bytes.
fonte
select
tempo limite em vez deTime::HiRes
. Você pode salvar alguns bytes usando... while$|=print
e movendo os hífens na transliteração para a frente e o final.s//\r Loading... |/
também salva um byte sobre a atribuição.y'-\|/'\|/-'
.\r
.y'-|\/'\/|-'/4
no lugar de.25
por mais 2.