Stwórz fałszywy moduł ładujący w następujący sposób:
Parametry:
- Wyświetl
loading
(spację) jeden z nich cyklicznie-\|/
(spacja) (licznik procentowy od 0-100), a następnie a%
. - Licznik procentowy powinien zwiększać się o 1 przy każdej zmianie wyświetlacza.
- Czas potrzebny licznikowi na przejście do następnej iteracji jest losowy. Każdy rodzaj losu będzie działał, o ile funkcja / metoda jest w stanie wygenerować wszystkie losowe liczby całkowite o prawdopodobieństwie> 0 w zakresie
1<= ms <=750
,ms
czyli czas w milisekundach. - Zacznij od
loading - 0 %
. - Koniec o
loading - 100 %
. - NIE jest wymagane WEJŚCIE.
- prześlij pełny program lub funkcję lub coś podobnego.
Kod, którego użyłem:
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");
}
}
Zwycięzca
- kod z najmniej bajtami wygrywa.
code-golf
ascii-art
kolmogorov-complexity
Mukul Kumar
źródło
źródło
\|/-
) są takie same, odpowiedź wydaje się inna, ponieważ nie jest nieskończona i obejmuje generowanie liczb losowych, a nie statyczny wynik. Dlatego powiem, chociaż początkowo czułem się skopiowany, nie wygląda to na dupek.-\|/
w niektórych grach, i zainspirował mnie program instalacyjny konsoli.Odpowiedzi:
MATL , 45 bajtów
Przykład uruchomiony w kompilatorze offline:
Lub spróbuj w MATL Online!
Wyjaśnienie
źródło
PowerShell,
716865 bajtówPodobne do https://codegolf.stackexchange.com/a/101357/59735
Zapisano 3 bajty, nie będąc idiotą (opuściłem ... podczas ładowania)
-3 dzięki VisualMelon
zmieniono 750 -> 751, aby upewnić się, że 750 jest uwzględnione.
Wyjaśnienie:
Zaktualizowano gif
źródło
-m
i zgubić nawiasy wokół$_%4
(wydaje się, że przynajmniej działa na moim pudełku).()
zostały resztki z innego wyzwania, z którego po prostu skopiowałem swój kod.Python 2,
119113112 bajtówPierwotnie wybrałem losową kwotę
random()/.75
, jednak punkt końcowy nie zostałby uwzględniony. Nie ma dużej różnicy od tego do drugiego pytania dotyczącego nieskończonego czasu ładowania, z wyjątkiem losowości i faktu, że faktycznie się kończy.podziękowania dla Jonathana Allana za uratowanie 6 bajtów i DJMcMayhem za uratowanie bajtu!
źródło
import time,random as r
ir.randint
.for i in range(101):print'\rLoading','-\|/'[i%4],i,'%',;time.sleep(r.randint(1,750)/1e3)
range(1,101)
jakiegoś powodu testowałem to ...i=0;for c in'-\|/'*25:print'\rLoading',c,i,'%',;time.sleep(r.randint(1,750)/1e3);i+=1
Partia, 185 bajtów
Czas jest niestety dość słaby, ale Batch nie ma nic lepszego do użycia niż
ping
.źródło
Loading % Invalid switch. - /aw
(chciałbym spróbować w MS DOS, jeśli nadal mogę znaleźć swoją kopię).*> <> (Rozgwiazda),
8682 bajtówWypróbuj tutaj!
To może być więcej golfa, ale nie widzę nic super oczywistego. Śpi 100 ms, 400 ms lub 700 ms, jeśli nie jest to wystarczająco losowe, daj mi znać!Dzięki @TealPelican za uratowanie mnie 4 bajtów i uczynienie go bardziej losowym!
Największymi wyzwaniami, które znalazłem (wciąż starając się, aby były małe) były losowość i faktycznie generowanie „ładowania - 100%” na końcu, zamiast tylko wyjścia z mojej najbliższej wygody: str.
źródło
Perl 6 , 67 bajtów
Rozszerzony:
źródło
JavaScript (ES6),
128118116115112110109 bajtówWydaje się, że działa to doskonale, nawet w przypadku tego szkicowego źródła „losowych” liczb.
Alternatywnie 1 , JavaScript + HTML, 16 + 84 bajtów
Ten wykorzystuje już istniejący element do wyświetlenia pozostałej zawartości:
Alternatywnie 2 , 95 bajtów
Jeśli mogę założyć, że karta jest otwarta i wklejasz ją do konsoli:
Zamiast pokazywania HTML zmieni się tytuł dokumentu.
Dziękuję @ user2428118 za zapisanie 2 bajtów!
źródło
()
po,Date
aby zapisać dwa bajty.F #, 118 bajtów
Aby uruchomić ten fragment kodu, przekaż go do
Async.Start
lubAsync.RunSynchronously
.źródło
PHP,
9083807877bajtów77:
Zamknięcie
;
nie jest potrzebne.78:
Szukając innego obejścia, aby uzyskać początkowo 0 bez inicjowania zmiennej, wpadłem na to:
Wróciłem do echa, aby wygrać kilka bajtów, ponieważ użyłem tylko printf do wymuszenia formatowania jako int. Zwiększając wartość przyrostu $ i o 0, otrzymuję poprawną liczbę całkowitą. Używając pojedynczych cudzysłowów jako ogranicznika łańcucha, odwrotny ukośnik nie musi być poprzedzany, co powoduje zwolnienie kolejnego bajtu
80:
Przeniesienie przyrostu $ i z ostatniej sekcji do księcia dało mi kolejne 3. (Patrz komentarze poniżej)
83:
Usunięto init zmiennej ze stanami loader.
90:
Próbowałem usunąć init $ i, aby zyskać trochę bajtów, ponieważ musiałem dodać sporo, aby włączyć animację modułu ładującego. printf dodaje 2 w przeciwieństwie do echa, ale sformatowanie NULL jako liczby całkowitej powoduje 0.
źródło
printf
, oszczędzając ci jeden bajt:for(;$i<101;usleep(rand(1,750)*1e3))printf("\rloading %s %d%%",'-\|/'[$i%4],$i++);
(82 bajty)rand(0,750)*1e3
zwraca wartość od 0 (niepoprawna) do 750, która jest mnożona przez 1000.rand(1,75e4)
zwraca wartość od 1 (niepoprawna) do 750000. Opóźnienie musi byćrand(1,750)*1e3
, ponieważ używaszusleep()
. Działa z mikrosekundami , czyli 1000 razy mniejszymi niż milisekunda.echo
jest o 3 bajty krótszy niżprintf
. Możesz umieścić najnowszą wersję na górze i użyć#title
zamiast**title**
. Brakuje spacji między liczbą a symbolem%
.Groovy,
11387 bajtów-36 bajtów dzięki lealand
źródło
p=-1;101.times{println"Loading ${"-\\|/"[p++%4]} $p%";sleep Math.random()*750as int}
println"Loading…
→print"\rLoading…
. I usuń tę zmienną p, zamiast niej użyj domyślnej.Bash,
162104 bajtyModyfikacja odpowiedzi Zachary'ego na powiązane pytanie, z ogromnymi ulepszeniami przez manatwork:
Musiałem sprawdzić, jak wykonywać losowe liczby w bash.
Ungolfed / Explained
źródło
s='-\|/';for x in {0..100};{ printf "\rloading ${s:x%4:1} $x %%";sleep `printf .%03d $[RANDOM%750+1]`; }
BTW, nasz inny serwis Unix i Linux ma również pytanie, jak wykonywać obliczenia liczb całkowitych i zmiennoprzecinkowych, w bash lub innych językach / frameworkach? .$[math]
, używaniu{ }
zamiastdo done
lub używaniu tyknięć zamiast$()
. Tak, ponowne użycie $ x do uzyskania dostępu do tablicy graficznej modułu ładującego ma sens. Również uderzanie.
przed liczbą, aby uzyskać liczbę dziesiętną do spania, jest całkiem słodkie!C #,
170149135 bajtówNie golfowany:
Nie gwarantuję, że każda postać w tym pliku jest poprawna, proszę popraw mnie, jeśli wystąpią błędy kompilacji. Musiałem napisać całą rzecz na telefonie, więc mogłem przypadkowo dołączyć jakieś błędy ... ¯_ (ツ) _ / ¯ Mam nadzieję, że mi wybaczyliściePrzetestowałem to na moim komputerze, działa jak urok, a nawet zaoszczędziłem całe 20 bajtów dzięki pmbanka :)
źródło
\r
(powrót karetki) zamiastConsole.Clear()
. Możesz również wstawić zmienną s, aby zapisać niektóre bajty.i<=100
fori<101
for (int i = 0; i <= 100; i++)
można przepisać, ponieważfor (int i = 0; i++ <= 100;)
Następnie można umieścić Thread.Sleep w miejscu, w którym był i ++, i zapisać oba nawiasy klamrowe. Cięcie w sumie 3 bajtówstatic void l()
z()=>
C
112103 bajtyZaoszczędź 9 bajtów dzięki @G. Sliepen. Niezbyt ekscytujące, po prostu gra w golfa w Twojej odpowiedzi w C ++. Również niezbyt ekscytująca losowa funkcja. Myślałem o tym
Sleep(c[i%4])
,Sleep(i)
ale wcale nie są przypadkowe!Nie golfowany:
źródło
rand ()%750
generuje liczby od 0-749, które trzeba będzie dodać 1.rand()%750
narand()%751
nie da pożądanego rezultatu. Wygeneruje losową wartość od 0 do 750. W pytaniu opóźnienie musi wynosić od 1 do 750 (włącznie). Zgodnie z tutorialspoint.com/c_standard_library/c_function_rand.htm ,rand()
funkcja generuje liczby od 0 do (przynajmniej) 32767. Jeśli tak0 % 750
, otrzymasz 0 od tego czasu0 / <anything> == 0
.char*c="-\\|/";
i używając dosłownie łańcucha bezpośrednio zamiast zmiennejc
:printf(...,"-\\|/"[i%4],...)
Mathematica, 133 bajtów
Uruchomi się to raz, zakładając, że x jest niezdefiniowany.
Clear@x
uruchomi go ponownie.55 znaków związanych gadatliwie: /
źródło
UpdateInterval:>[email protected]
dzwoni wielokrotnieRandomReal
, ale dzwoniłbymUpdateInterval->[email protected]
tylko raz.R - 94 bajty
Naprawdę miło to
sample(750,1) == sample(1:750,1)
.źródło
HTML + JS (ES6), 16 + 87 = 103 bajty
źródło
PHP,
6679 bajtówNiestety musiałem przypisać $ i, aby wydrukować „0”.
Użyj jak:
Edycje: dzięki Titusowi potwierdzającemu dokładnie, co jest dozwolone w Mukul Kumar, możemy zapisać 3 bajty z mniej ograniczonym zakresem, ale nie wszystkie 9 bajtów z nieograniczonym zakresem. Dziękuję również za zwrócenie uwagi na to, że zapomniałem o kolarskim charakterze i zapewnienie prostego rozwiązania.
źródło
rand(1,75e4)
oszczędza 3 bajty;1e6
może uratować kolejny; i żadne parametry w ogóle nie oszczędzają 9 bajtów; i nie widzę, aby naruszało to jakąkolwiek zasadę. Ale zapomniałeś zmienić postać: +16","-\\|/"[$i%4],"
zamiast zamiast-
.usleep(rand(1,75e4))
wygeneruje losowego odstępu między 1 mikrosekundą a 750 milisekundami ? Ponadto, zgodnie z pytaniem, odstęp musi wynosić od 1 do 750 włącznie.1 to 75e4
jest dopuszczalne.Noodel , niekonkurencyjne 40 bajtów
Po prostu wracając do starych wyzwań (jak w przypadku wyzwań postawionych przed Noodelem ) i konkurując z Noodelem, aby znaleźć słabe punkty .
Jeśli wynik końcowy nie ma znaczenia, można zapisać 2 bajty.
Noodel przesuwa górną część stosu na ekran na końcu programu, więc dodanie
€Ḃ
go zapobiega temu.Spróbuj:)
Jak to działa
źródło
¤
?¤
używana jest :)noodle
, a następnie tłumaczy nacode
JavaScript?noodel
któracode
poprawnie obsługuje . Przekłada sięcode
na tokeny, które są obiektami JavaScript, które są łączone w łańcuch, a następnie wykonywane.ppcg.min.js
Tworzy odpowiednie HTML przedmioty i przekłada wyjście co jest analizowany do HTML obiektów stworzyć wyświetlacz. Każdy token jest wykonywany przez przejście przez niego, wyzwalając zdarzenie krokowe, które jest rejestrowane w celu aktualizacji ekranu :) Czy to pomaga?C
126121 bajtówWersja bez golfa:
@Carcigenicate @ Mukul Kumar Nie czytałem między wierszami, dzięki! :)
źródło
MATLAB, 108 bajtów
źródło
Oktawa,
122120119108 bajtówŹle odczytałem wyzwanie i stworzyłem nieskończony moduł ładujący, który ponownie uruchomił się po 0, gdy przekroczył 100. Zmieniając go w jednorazowy moduł ładujący:
Obiegowa
a
,a=a([2:4,1])
był pomysł flawr jest tutaj . Zapisano również 2 bajty, pomijając nawiasy porand
podziękowaniu dla MattWH.źródło
.749*rand()+.001
? Może to poczekać 751 ms. Możesz także zostawić()
off rand i zapisać 2 bajty.ForceLang, 250 bajtów
Niekonkurencyjny, wymaga funkcji językowych, które dodają datę do pytania
Prawdopodobnie powinienem wkrótce naprawić kilka błędów związanych z analizą literałów łańcuchowych.
źródło
Rakieta 110 bajtów
Nie golfowany:
Testowanie:
Wydajność:
(Ten plik gif wyświetla wolniej niż w rzeczywistości)
źródło
10775 Rubinowy-32 dzięki manatwork
Normalna
Grał w golfa
źródło
system'clear'
tutaj jest przesada. Również zastosowanie oddzielnej zmiennej i. Aha i dokonaj wstępnego obliczenia, jeśli to możliwe:0.750-0.01
→0.749
(zauważ również, że brakuje jednego miejsca po przecinku w 0,01 - powinno to być 0,001). Otrzymana101.times{|c|$><<"\rloading #{'-\|/'[c%4]} #{c} %";sleep rand*0.749+0.001}
staje się bardzo podobny do Conor O'Brien „s Ruby odpowiedź w Ładowanie ... Zawsze jednak tak jest wyzwaniem.Python 3, 149 bajtów
Podobne do Ładowanie ... Na zawsze, ale musiałem stamtąd edytować swoją odpowiedź.
źródło
TI-Basic, 80 bajtów
Losowość pochodzi z
For(
pętli (E to naukowy token E), a ponieważ interpretowany jest TI-Basic, automatycznie pojawia się również pewien narzut. Pamiętaj, że w TI-Basic małe litery i niektóre mniej popularne symbole ASCII mają po dwa bajty (tak więc specjalnie dla tego programul o a d i n g sub( \ | %
to dwubajtowe tokenyźródło
Clojure, 109 bajtów
Pętle nad listą zakresu liczb od 0 do 100, spakowane nieskończoną listą
"\|/-"
powtarzających się na zawsze.źródło
tcl, 116
Odtwarzane w http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMOXoybnVSOVJEU00
źródło
Java 8, 130 bajtów
Wyjaśnienie:
Dane wyjściowe gif:
źródło
Visual Basic, 371 bajtów
Rozszerzony:
źródło