MS-DOS-COM-Datei, 56 Byte
Hier der Dateiinhalt in hexadezimaler Schreibweise:
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
Der übereinstimmende Assembler-Code sieht folgendermaßen aus:
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
quelle
quelle
mov al, 0xfe / out 0x21,al
Antworten:
NASM x86_64 -
349283 ByteDies sollte 64-Bit-Linux-Systeme ausgeführt werden
gebaut mit:
nasm loading_golfed.asm -felf64 && ld loading_golfed.o
Animation:
65 Bytes gespart - danke user254948
quelle
R
8589 BytesBearbeiten: Die Antwort wurde so
T
korrigiert, dass sie nicht überläuft, wenn der Zähler zurückgesetzt wird4
.Der einzig interessante Aspekt bei dieser Antwort ist die Verwendung von
TRUTHY
Rs eingebautem CodeT
. Es ist praktisch ein vordefinierter Variablensatz,1/TRUE
dh wir müssen den Zähler nicht initialisieren, sondern können mit dem Inkrementieren beginnenT
.quelle
T
irgendwann überlaufen?1e+308
In diesem FallNA
wird es zurückgegeben. Ich denke, diese Antwort ist dann ungültig (habe es in den Regeln nicht bemerkt). Wird bald aktualisiertT
:i=1;repeat{cat("\rLoading...",c("\\","|","/","-")[i]);Sys.sleep(.25);i=`if`(i>3,1,i+1)}
ist 87 Bytes.T
ein Vektor? HatT=(T+1)%%4
zu arbeiten? Es würden weitere 5 Bytes eingespart.T=T%%4+1
: noch 2 Bytes kürzer.Haskell (GHC),
103-91BytesVielen Dank an @nimi für das Speichern von 12 Bytes!
quelle
mapM((threadDelay 250000>>).putStr)$("\rLoading... "++).pure<$>cycle"|/-\\"
.250000
und des Leerzeichens davor mit gespart werden(4^9)
.C (auf UNIX-ähnlichen Systemen) 88 Byte
Es beginnt mit dem falschen Charakter, aber ich denke, es sieht schöner aus. Sie können die Zeichenreihenfolge ganz einfach ändern, indem Sie "\ - / |" Zeichenfolge.
quelle
for
z. B .:ain(_){for(;printf("\rLoading... %c","\\-/|"[_%4]);usleep(250000))_++,fflush(0);}
weiter golfen werden, könnte dann unter der Annahme eines Umlaufs für einen Ganzzahlüberlauf weiter golfen werden:main(_){for(;printf("\rLoading... %c","\\-/|"[_++%4]);usleep(250000))fflush(0);}
fprintf(stderr,...
stattdessen verwenden, da das nicht zeilengepuffert ist wiestdout
. Derf...stderr,
dauert acht Zeichen, während derfflush(0);
dauert zehn, so ist es ein Nettogewinn von zwei Zeichen.Perl,
716361 BytesVorherige Version:
Vielen Dank an @primo für 10 Bytes.
quelle
select
Auszeit zu verwenden, anstattTime::HiRes
. Sie können einige Bytes einsparen... while$|=print
, indem Sie die Bindestriche in der Transliteration nach vorne und nach hinten verschieben.s//\r Loading... |/
Speichert auch ein Byte über Zuweisung.y'-\|/'\|/-'
.\r
.y'-|\/'\/|-'/4
anstelle von.25
für 2 weitere.