Сделайте фальшивый загрузчик просто так:
Параметры:
- Выведите
loading
(пробел) один из них циклически-\|/
(пробел) (процентный счетчик от 0 до 100), затем a%
. - Предполагается, что процентный счетчик увеличивается на 1 при каждом изменении дисплея.
- Время, необходимое счетчику для перехода к следующей итерации, является случайным. Любой случайный тип будет работать до тех пор, пока функция / метод способна генерировать все случайные целые числа с вероятностью> 0 в диапазоне
1<= ms <=750
здесь,ms
являющемся временем в миллисекундах. - Начало в
loading - 0 %
. - Конец в
loading - 100 %
. - НЕТ ВХОДА не требуется.
- представить полную программу или функцию или что-то подобное.
Код, который я использовал:
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");
}
}
победитель
- код с наименьшим количеством байтов выигрывает.
code-golf
ascii-art
kolmogorov-complexity
Мукул Кумар
источник
источник
\|/-
) одинаковы, ответ, по-видимому, отличается тем, что он не бесконечен и включает генерацию случайных чисел, а не статический вывод. Поэтому я скажу, хотя я изначально чувствовал себя скопированным, для меня это не похоже на обман.-\|/
в некоторых играх. И меня вдохновили программы установки консоли.Ответы:
MATL , 45 байт
Пример запуска в автономном компиляторе:
Или попробуйте в MATL Online!
объяснение
источник
Powershell,
716865 байтАналогично /codegolf//a/101357/59735
Сэкономил 3 байта, не будучи идиотом (оставил ... при загрузке)
-3 благодаря VisualMelon
изменил 750 -> 751, чтобы убедиться, что 750 включен.
Объяснение:
Обновленный GIF
источник
-m
, и потерять круглые скобки$_%4
(кажется, работает на моей коробке по крайней мере).()
от другого вызова, с которого я прямо скопировал свой код.Python 2,
119113112 байтЯ изначально ушел со случайным количеством
random()/.75
, однако конечная точка не будет включена. Нет большой разницы между этим и другим вопросом для бесконечного времени загрузки, за исключением случайности и того факта, что она действительно заканчивается.спасибо Джонатану Аллану за сохранение 6 байтов и DJMcMayhem за сохранение байта!
источник
import time,random as r
иr.randint
.for i in range(101):print'\rLoading','-\|/'[i%4],i,'%',;time.sleep(r.randint(1,750)/1e3)
range(1,101)
почему-то тестировал его ...i=0;for c in'-\|/'*25:print'\rLoading',c,i,'%',;time.sleep(r.randint(1,750)/1e3);i+=1
Пакет, 185 байт
К сожалению, время довольно плохое, но у Batch нет ничего лучше, чем использовать
ping
.источник
Loading % Invalid switch. - /aw
(я хотел бы попробовать это в MS DOS, если я все еще могу найти свою копию).*> <> (Морская звезда),
8682 байтаПопробуй это здесь!
Это может быть в состоянии играть в гольф больше, но я не вижу ничего супер очевидного. Он спит 100 мс, 400 мс или 700 мс, если это не достаточно случайно, дайте мне знать!Спасибо @TealPelican за то, что сэкономили мне 4 байта и сделали его намного более случайным!
Самыми большими проблемами, которые я обнаружил (хотя все еще пытался сохранить их малыми), была случайность и фактически вывод «загрузка - 100%» в конце, а не просто выход при моем ближайшем удобстве: с.
источник
Perl 6 , 67 байт
Expanded:
источник
Javascript (ES6),
128118116115112110109 байтКажется, это работает отлично, даже с этим отрывочным источником «случайных» чисел.
Альтернатива 1 , Javascript + HTML, 16 + 84 байта
Этот использует уже существующий элемент для отображения оставшегося содержимого:
Альтернатива 2 , 95 байт
Если я могу предположить, что вкладка открыта и вы вставляете это в консоль:
Вместо отображения HTML название документа изменится.
Спасибо @ user2428118 за сохранение 2 байта!
источник
()
после,Date
чтобы сохранить два байта.F #, 118 байт
Чтобы запустить этот фрагмент, передайте его в
Async.Start
илиAsync.RunSynchronously
.источник
PHP,
9083807877байт77:
Закрытие
;
не нужно.78:
При поиске другого обходного пути для получения 0 изначально без инициализации переменной я придумал следующее:
Изменено обратно на echo, чтобы выиграть несколько байтов, так как я использовал printf только для принудительного форматирования как int. Увеличивая $ i с 0, я получаю правильное целое число. Используя одинарные кавычки в качестве разделителя строк, не нужно экранировать обратную косую черту, что приводит к освобождению другого байта
80:
Перемещение приращения $ i из последней секции for к prinf дало мне еще 3 скидки. (См. Комментарии ниже)
83:
Убрал инициализацию переменной с загрузчиками.
90:
Я попытался удалить инициал $ i, чтобы получить несколько байтов, так как мне пришлось добавить немало, чтобы включить анимацию загрузчика. printf добавляет 2 в отличие от echo, но форматирование NULL в виде целого числа приводит к 0.
источник
printf
, сэкономив вам один байт:for(;$i<101;usleep(rand(1,750)*1e3))printf("\rloading %s %d%%",'-\|/'[$i%4],$i++);
(82 байта)rand(0,750)*1e3
возвращает значение между 0 (недействительным) и 750, которое умножается на 1000.rand(1,75e4)
возвращает значение между 1 (недействительным) и 750000. Задержка должна бытьrand(1,750)*1e3
, поскольку вы используетеusleep()
. Он работает с микросекундами , которые в 1000 раз меньше миллисекунды.echo
на 3 байта корочеprintf
. Вы можете поставить самую последнюю версию на вершину и использовать#title
вместо**title**
. И пропущен пробел между числом и%
.Groovy,
11387 байт-36 байт благодаря lealand
источник
p=-1;101.times{println"Loading ${"-\\|/"[p++%4]} $p%";sleep Math.random()*750as int}
println"Loading…
→print"\rLoading…
. И удалите эту переменную p, вместо этого используйте ее неявную.Баш,
162104 байтаМодификация ответа Захария по смежному вопросу с огромными улучшениями от manatwork:
Я должен был посмотреть, как сделать случайные числа в Bash.
Ungolfed / объяснил
источник
s='-\|/';for x in {0..100};{ printf "\rloading ${s:x%4:1} $x %%";sleep `printf .%03d $[RANDOM%750+1]`; }
поговорить с BTW, у нашего коллеги по сайту Unix & Linux также есть вопрос о том, как выполнять целочисленные вычисления и вычисления с плавающей запятой в bash или других языках / фреймворках? ,$[math]
, чтобы использовать{ }
вместоdo done
или использовать обратные галочки вместо$()
. Да, имеет смысл использовать $ x для доступа к графическому массиву загрузчика. Кроме того, хлопать.
перед числом, чтобы получить десятичное число для сна, довольно мило!C #,
170149135 байтUngolfed:
Я не буду гарантировать, что каждый символ в этом прав, пожалуйста, исправьте меня, если есть ошибки компиляции. Я должен был напечатать все это на своем телефоне, чтобы я мог случайно включить некоторые ошибки ... ¯_ (ツ) _ / ¯ Я надеюсь, что вы, ребята, простите меня, чтоПротестировал его на моем ПК, работает как брелок, и я даже сэкономил целых 20 байтов благодаря pmbanka :)
источник
\r
(возврат каретки) вместоConsole.Clear()
. Вы также можете встроить переменную s, чтобы сохранить несколько байтов.i<=100
fori<101
for (int i = 0; i <= 100; i++)
можно переписать какfor (int i = 0; i++ <= 100;)
Тогда вы можете поместить Thread.Sleep в то место, где был i ++, и сохранить обе фигурные скобки. Резка всего 3 байтаstatic void l()
на()=>
C
112103 байтаСохранено 9 байт благодаря @G. Sliepen. Не очень захватывающе, просто гольф вашего C ++ ответа в принципе. Также не очень захватывающая случайная функция. Я думал о
Sleep(c[i%4])
, или,Sleep(i)
но они вовсе не случайны!Ungolfed:
источник
rand ()%750
генерирует числа от 0-749, которые вам нужно будет добавить 1.rand()%750
кrand()%751
не даст желаемого результата. Будет сгенерировано случайное значение от 0 до 750. В этом вопросе задержка должна составлять от 1 до 750 (включительно). Согласно tutorialspoint.com/c_standard_library/c_function_rand.htm ,rand()
функция генерирует числа от 0 до (как минимум) 32767. Если вы это сделаете0 % 750
, вы получите 0 с тех пор0 / <anything> == 0
.char*c="-\\|/";
и использовав буквальную строку вместо переменнойc
:printf(...,"-\\|/"[i%4],...)
Mathematica, 133 байта
Это будет выполнено один раз, при условии, что x не определен.
Clear@x
перезапустит его.55 символов, связанных в многословии: /
источник
UpdateInterval:>RandomReal@.75
неоднократно звонитRandomReal
, ноUpdateInterval->RandomReal@.75
позвонил бы только один раз.R - 94 байта
Это действительно приятно
sample(750,1) == sample(1:750,1)
.источник
HTML + JS (ES6), 16 + 87 = 103 байта
источник
PHP,
6679 байтК сожалению, я должен был назначить $ i, чтобы заставить его напечатать '0'.
Используйте как:
Редактирование: благодаря Титу, подтверждающему в точности то, что разрешено с Мукулом Кумаром, мы можем сохранить 3 байта с меньшим ограниченным диапазоном, но не все 9 байтов с неограниченным диапазоном. Спасибо также за то, что указал на то, что я забыл про велосипедного персонажа и предоставил простое решение для этого
источник
rand(1,75e4)
экономит 3 байта;1e6
может сохранить еще один; и никакие параметры вообще не сохраняют 9 байтов в целом; и я не вижу, чтобы это нарушало какое-либо правило. Но вы забыли зациклить персонажа: +16","-\\|/"[$i%4],"
вместо-
.usleep(rand(1,75e4))
генерирует ли случайный интервал от 1 микросекунды до 750 миллисекунд ? Также, согласно вопросу, интервал должен быть от 1 до 750 включительно.1 to 75e4
это приемлемо.Noodel , неконкурентный 40 байт
Просто возвращаясь к старым испытаниям (как в испытаниях, которые были сделаны до Noodel ) и конкурируя с Noodel, чтобы найти, где он слаб.
Если окончательный вывод не имеет значения, то можно сохранить 2 байта.
Noodel выдвигает верхнюю часть стека на экран в конце программы, поэтому, добавив,
€Ḃ
он предотвращает это.Попытайся:)
Как это работает
источник
¤
с?¤
используется :)noodle
, а затем переведет егоcode
в Javascript?noodel
котораяcode
правильно обрабатывает . Он переводитcode
в токены, которые являются объектами JavaScript, которые объединяются и затем выполняются.ppcg.min.js
Создает соответствующие HTML - объекты и переводит вывод о том , что разбирается в HTML - объектов для создания дисплея. Каждый токен выполняется, проходя через них, вызывая событие шага, которое регистрируется для обновления экрана :) Это помогает?C
126121 байтБезголовая версия:
@Carcigenicate @ Мукул Кумар Не читал между строк, спасибо! :)
источник
MATLAB, 108 байт
источник
Октава,
122120119108 байтовЯ неправильно понял задачу и создал бесконечный загрузчик, который перезапустился с 0 после того, как прошел 100. Превратив его в одноразовый загрузчик:
Циркулирующие
a
,a=a([2:4,1])
была идея flawr в здесь . Кроме того, сэкономили 2 байта, пропустив скобки послеrand
благодарности MattWH.источник
.749*rand()+.001
? Это может подождать 751 мс. Также вы можете оставить()
офф-ранд и сохранить 2 байта.ForceLang, 250 байт
Неконкурентный, требует языковых особенностей, которые ставят вопрос
Возможно, мне следует исправить некоторые ошибки, связанные с синтаксическим анализом строкового литерала в ближайшее время
источник
Ракетка 110 байтов
Ungolfed:
Тестирование:
Выход:
(Этот GIF-файл отображается медленнее, чем на самом деле)
источник
10775 рубин-32 благодаря манатворке
Обычный
Golfed
источник
system'clear'
здесь перебор. Также использование отдельной переменной i. Да, и по возможности пересчитайте:0.750-0.01
→0.749
(также обратите внимание, что вам не хватает одного десятичного знака в 0,01 - должно быть 0,001). Полученный101.times{|c|$><<"\rloading #{'-\|/'[c%4]} #{c} %";sleep rand*0.749+0.001}
становится очень похож на Конора О'Брайен «s Руби ответ в Loading ... навсегда , но так это вызов.Python 3, 149 байт
Похоже на Загрузка ... Навсегда, но мне пришлось много отредактировать свой ответ.
источник
TI-Basic, 80 байтов
Случайность происходит из
For(
цикла (E - научный E-токен), и, поскольку TI-Basic интерпретируется, автоматически возникают некоторые издержки. Помните, что в TI-Basic строчные буквы и некоторые менее распространенные символы ASCII занимают по два байта каждый (поэтому специально для этой программыl o a d i n g sub( \ | %
это двухбайтовые токеныисточник
Clojure, 109 байт
Перебирает список из диапазона чисел от 0 до 100, заархивированный бесконечным списком
"\|/-"
повторяющихся навсегда.источник
tcl, 116
Воспроизводится в http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMOXoybnVSOVJEU00
источник
Java 8, 130 байт
Объяснение:
Выходной GIF:
источник
Visual Basic, 371 байт
Expanded:
источник