Faites un faux chargeur comme ceci:
Paramètres :
- Affichez
loading
(espace) l'un de ces éléments cycliquement-\|/
(espace) (compteur de pourcentage de 0 à 100) puis a%
. - Le compteur de pourcentage est censé augmenter de 1 chaque fois que l'affichage change.
- Le temps mis par le compteur pour passer à l'itération suivante est aléatoire. N'importe quel type d'aléatoire fera l'affaire tant que la fonction / méthode est capable de générer tous les entiers aléatoires ayant une probabilité> 0 dans la plage
1<= ms <=750
icims
étant le temps en millisecondes. - Commencez à
loading - 0 %
. - Fin à
loading - 100 %
. - AUCUNE ENTRÉE n'est requise.
- soumettre un programme ou une fonction complète ou quelque chose de similaire.
Le code que j'ai utilisé:
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");
}
}
Gagnant
- le code avec le moins d'octets gagne.
code-golf
ascii-art
kolmogorov-complexity
Mukul Kumar
la source
la source
\|/-
) soient les mêmes, la réponse semble être différente en ce qu'elle n'est pas infinie et implique la génération de nombres aléatoires, plutôt qu'une sortie statique. Par conséquent, je dirai que, bien que je me sois d'abord senti copié, cela ne me semble pas dupe.-\|/
dans certains jeux. Et je me suis inspiré des programmes d'installation de la console.Réponses:
MATL , 45 octets
Exemple exécuté dans le compilateur hors ligne:
Ou essayez-le sur MATL Online!
Explication
la source
Powershell,
716865 octetsSimilaire à /codegolf//a/101357/59735
Sauvegardé 3 octets en n'étant pas idiot (laissé le ... au chargement)
-3 grâce à VisualMelon
changé 750 -> 751 pour vous assurer que 750 est inclus.
Explication:
Gif mis à jour
la source
-m
, et perdre les parenthèses autour$_%4
(semble fonctionner au moins sur ma boîte).()
restes de l'autre défi dont j'ai directement copié mon code.Python 2,
119113112 OctetsJ'étais à l'origine allé avec le montant aléatoire étant
random()/.75
, cependant le point final ne serait pas inclus. Il n'y a pas beaucoup de différence entre cette question et l'autre question pour le temps de chargement infini, sauf pour le caractère aléatoire et le fait qu'il se termine réellement.merci à Jonathan Allan pour avoir sauvé 6 octets, et DJMcMayhem pour avoir sauvé un octet!
la source
import time,random as r
etr.randint
.for i in range(101):print'\rLoading','-\|/'[i%4],i,'%',;time.sleep(r.randint(1,750)/1e3)
range(1,101)
pour une raison quelconque.i=0;for c in'-\|/'*25:print'\rLoading',c,i,'%',;time.sleep(r.randint(1,750)/1e3);i+=1
Lot, 185 octets
Le timing est malheureusement assez médiocre, mais Batch n'a rien de mieux à utiliser que
ping
.la source
Loading % Invalid switch. - /aw
( j'adorerais l' essayer sous MS DOS si je peux toujours trouver ma copie).*> <> (Étoile de mer),
8682 octetsEssayez-le ici!
Cela peut peut-être être plus joué au golf, mais je ne vois rien de super évident. Il dort 100 ms, 400 ms ou 700 ms, si ce n'est pas assez aléatoire, faites le moi savoir!Merci à @TealPelican de m'avoir sauvé 4 octets et de le rendre beaucoup plus aléatoire!
Les plus grands défis que j'ai rencontrés (tout en essayant de le garder petit) étaient le caractère aléatoire et la sortie de "chargement - 100%" à la fin, au lieu de simplement sortir à ma convenance la plus proche: p.
la source
Perl 6 , 67 octets
Étendu:
la source
Javascript (ES6),
128118116115112110109 octetsCela semble fonctionner parfaitement bien, même avec cette source sommaire de nombres "aléatoires".
Alternative 1 , Javascript + HTML, 16 + 84 octets
Celui-ci utilise un élément déjà existant pour afficher le contenu restant:
Alternative 2 , 95 octets
Si je peux supposer qu'un onglet est ouvert et que vous le collez dans la console:
Au lieu d'afficher le HTML, le titre du document va changer.
Merci à @ user2428118 pour avoir économisé 2 octets!
la source
()
afterDate
pour enregistrer deux octets.F #, 118 octets
Pour exécuter cet extrait, passez-le dans
Async.Start
ouAsync.RunSynchronously
.la source
PHP,
9083807877octets77:
La fermeture
;
n'est pas nécessaire.78:
En cherchant une autre solution pour obtenir un 0 au départ sans initialiser la variable, j'ai trouvé ceci:
Changé en écho pour gagner quelques octets car je n'ai utilisé printf que pour forcer le formatage en int. En incrémentant le $ i incrémenté avec 0, j'obtiens un entier valide. En utilisant des guillemets simples comme délimiteur de chaîne, la barre oblique inverse n'a pas besoin d'être échappée, ce qui entraîne la libération d'un autre octet
80:
Déplacer l'incrément de $ i de la dernière section for vers l'imprimeur m'a donné encore 3 de plus. (Voir les commentaires ci-dessous)
83:
Suppression de l'initialisation d'une variable avec les états de charge.
90:
J'ai essayé de supprimer l'init de $ i pour gagner quelques octets, car j'ai dû en ajouter quelques-uns pour activer l'animation du chargeur. printf ajoute 2 par opposition à echo, mais le formatage NULL comme un entier donne 0.
la source
printf
, vous économisant un seul octet:for(;$i<101;usleep(rand(1,750)*1e3))printf("\rloading %s %d%%",'-\|/'[$i%4],$i++);
(82 octets)rand(0,750)*1e3
renvoie une valeur comprise entre 0 (non valide) et 750, qui est multipliée par 1000.rand(1,75e4)
renvoie une valeur comprise entre 1 (non valide) et 750000. Le délai doit êtrerand(1,750)*1e3
, puisque vous utilisezusleep()
. Il fonctionne avec des microsecondes , ce qui est 1000 fois plus petit qu'une milliseconde.echo
est 3 octets plus court queprintf
. Vous voudrez peut-être mettre la version la plus récente en haut et utiliser à la#title
place de**title**
. Et il manque un espace entre le nombre et le%
.Groovy,
11387 octets-36 octets grâce à lealand
la source
p=-1;101.times{println"Loading ${"-\\|/"[p++%4]} $p%";sleep Math.random()*750as int}
println"Loading…
→print"\rLoading…
. Et supprimez cette variable p, utilisez-la à la place.Bash,
162104 octetsModification de la réponse Zachary sur une question connexe, avec des améliorations massives par manatwork:
Je devais chercher comment faire des nombres aléatoires en bash.
Non golfé / expliqué
la source
s='-\|/';for x in {0..100};{ printf "\rloading ${s:x%4:1} $x %%";sleep `printf .%03d $[RANDOM%750+1]`; }
BTW, notre collègue Unix et Linux a également une question sur la façon de faire des calculs d'entiers et de flottants, en bash ou dans d'autres langages / frameworks? .$[math]
, utiliser à la{ }
place dedo done
, ou utiliser des tiques à la place de$()
. Oui, réutiliser $ x pour accéder au tableau graphique du chargeur est logique. De plus, gifler un.
devant le nombre pour obtenir la décimale pour le sommeil est assez doux!C #,
170149135 octetsNon golfé:
Je ne garantis pas que chaque personnage dans ce document est correct, veuillez me corriger s'il y a des erreurs de compilation. J'ai dû taper le tout sur mon téléphone, donc j'ai peut-être accidentellement inclus des erreurs ... ¯_ (ツ) _ / ¯ J'espère que vous me pardonnerezTesté sur mon PC, fonctionne comme un charme et j'ai même économisé 20 octets grâce à pmbanka :)
la source
\r
(retour chariot) au lieu deConsole.Clear()
. Vous pouvez également incorporer la variable s pour enregistrer certains octets.i<=100
fori<101
for (int i = 0; i <= 100; i++)
peut être réécrit commefor (int i = 0; i++ <= 100;)
Ensuite, vous pouvez mettre le Thread.Sleep à l'endroit où se trouvait i ++ et enregistrer les deux accolades. Couper 3 octets au totalstatic void l()
par()=>
C
112103 octets9 octets enregistrés grâce à @G. Sliepen. Pas très excitant, juste un golf de votre réponse C ++ en gros. Ce n'est pas non plus une fonction aléatoire très excitante. J'y ai pensé
Sleep(c[i%4])
, ouSleep(i)
mais ils ne sont pas du tout aléatoires!Non golfé:
la source
rand ()%750
génère des nombres de 0 à 749, vous devrez ajouter 1.rand()%750
pourrand()%751
ne donnera pas le résultat souhaité. Il va générer une valeur aléatoire entre 0 et 750. Dans la question, le retard doit être compris entre 1 et 750 (inclus). Selon tutorialspoint.com/c_standard_library/c_function_rand.htm , larand()
fonction génère des nombres compris entre 0 et (au moins) 32767. Si vous le faites0 % 750
, vous obtenez 0 depuis0 / <anything> == 0
.char*c="-\\|/";
et en utilisant la chaîne littérale directement au lieu de la variablec
:printf(...,"-\\|/"[i%4],...)
Mathematica, 133 octets
Cela s'exécutera une fois, en supposant que x n'est pas défini.
Clear@x
va le redémarrer.55 caractères attachés dans la verbosité: /
la source
UpdateInterval:>[email protected]
les appels répétésRandomReal
, maisUpdateInterval->[email protected]
ne l'appelleraient qu'une seule fois.R - 94 octets
Vraiment sympa
sample(750,1) == sample(1:750,1)
.la source
HTML + JS (ES6), 16 + 87 = 103 octets
la source
PHP,
6679 octetsMalheureusement, j'ai dû assigner $ i pour qu'il puisse imprimer '0'.
Utilisez comme:
Modifications: grâce à Titus confirmant exactement ce qui est autorisé avec Mukul Kumar, nous pouvons économiser 3 octets avec une plage moins restreinte, mais pas les 9 octets avec une plage non restreinte. Merci également d'avoir souligné que j'avais oublié le caractère cycliste et d'avoir fourni une solution simple pour le faire.
la source
rand(1,75e4)
enregistre 3 octets;1e6
peut en sauver un autre; et aucun paramètre n'économise au total 9 octets; et je ne vois pas que violer une règle. Mais vous avez oublié de faire défiler le caractère: +16 pour","-\\|/"[$i%4],"
au lieu de-
.usleep(rand(1,75e4))
générera pas d' intervalle aléatoire entre 1 microseconde et 750 millisecondes ? De plus, selon la question, l'intervalle doit être compris entre 1 et 750 inclus.1 to 75e4
est acceptable.Noodel , non compressible 40 octets
Il suffit de revenir à travers d'anciens défis (comme dans les défis qui ont été faits avant Noodel ) et de rivaliser avec Noodel pour trouver où il est faible.
Si la sortie finale n'a pas d'importance, vous pouvez économiser 2 octets.
Noodel pousse le haut de la pile à l'écran à la fin du programme donc en ajoutant le
€Ḃ
cela empêche que cela se produise.Essayez-le :)
Comment ça marche
la source
¤
s?¤
est utilisé :)noodle
, puis traduit-ilcode
en Javascript?noodel
qui gèrecode
correctement. Il traduit lescode
tokens en objets JavaScript qui sont enchaînés puis exécutés. Leppcg.min.js
crée les objets HTML appropriés et traduit la sortie de ce qui est analysé dans les objets HTML pour créer l'affichage. Chaque jeton est exécuté en les parcourant, déclenchant un événement de pas enregistré pour mettre à jour l'écran :) Est-ce que cela aide?C
126121 octetsVersion non golfée:
@Carcigenicate @ Mukul Kumar N'a pas lu entre les lignes là-bas, merci! :)
la source
MATLAB, 108 octets
la source
Octave,
122120119108 octetsJ'ai mal lu le défi et créé un chargeur infini qui a redémarré à 0 une fois qu'il a passé 100. Ce qui en fait un chargeur unique:
Circulation
a
,a=a([2:4,1])
était l'idée de flawr ici . En outre, enregistré 2 octets en sautant les parenthèses aprèsrand
merci à MattWH.la source
.749*rand()+.001
? Cela peut attendre 751 ms. Vous pouvez également laisser le()
rand off et enregistrer 2 octets.ForceLang, 250 octets
Non compétitif, nécessite des fonctionnalités linguistiques postérieures à la question
Je devrais probablement corriger bientôt quelques bugs liés à l'analyse littérale des chaînes.
la source
Raquette 110 octets
Non golfé:
Essai:
Sortie:
(Ce fichier gif affiche un affichage plus lent que réel)
la source
10775 rubis-32 grâce au manatwork
Ordinaire
Golfé
la source
system'clear'
c'est exagéré ici. Aussi l'utilisation de la variable séparée i. Oh, et précalculez si possible:0.750-0.01
→0.749
(notez également qu'il vous manque une décimale dans 0,01 - devrait être 0,001). La résultante101.times{|c|$><<"\rloading #{'-\|/'[c%4]} #{c} %";sleep rand*0.749+0.001}
est très similaire à Conor O'Brien de Ruby réponse en cours de chargement ... Pour toujours , mais il en est le défi.Python 3, 149 octets
Similaire à Loading ... Forever, mais j'ai dû beaucoup modifier ma réponse à partir de là.
la source
TI-Basic, 80 octets
Le caractère aléatoire provient de la
For(
boucle (E est un jeton scientifique E) et puisque TI-Basic est interprété, il y a aussi automatiquement des frais généraux. Rappelez-vous que dans TI-Basic, les lettres minuscules et certains symboles ASCII moins courants sont deux octets chacun (donc spécifiquement pour ce programme,l o a d i n g sub( \ | %
sont les jetons à deux octetsla source
Clojure, 109 octets
Boucles sur une liste de la plage de nombres de 0 à 100, zippée avec une liste infinie de
"\|/-"
répétition pour toujours.la source
tcl, 116
Jouable sur http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMOXoybnVSOVJEU00
la source
Java 8, 130 octets
Explication:
Gif de sortie:
la source
Visual Basic, 371 octets
Étendu:
la source