Создайте панель загрузки в стиле Windows, следуя инструкциям.
(обратите внимание, что это отличается от загрузки ... навсегда )
Ваш вывод должен начинаться с [.... ]
.
Каждый тик, вы должны подождать 100 мс, а затем переместить каждую точку на один символ вправо. если точка находится на десятом символе, переместите его на первый. Обратите внимание, что вы должны очистить экран перед повторным выводом. Вывод упорядочен следующим образом:
[.... ]
[ .... ]
[ .... ]
[ .... ]
[ .... ]
[ .... ]
[ ....]
[. ...]
[.. ..]
[... .]
.. Затем он зацикливается навсегда.
правила
- Это код-гольф , поэтому самый короткий ответ выигрывает,
я сомневаюсь, что я бы даже принял выигрышный ответ, хотя - Пожалуйста, предоставьте GIF-файл панели загрузки в действии, если это возможно.
\r
Разрешено ли использование вместо буквальной очистки экрана?Ответы:
V,
171615 байтов<esc>
есть0x1b
.И hexdump:
объяснение
источник
i.... <esc>qq:sl 100m<CR>$X|P@qq@q
должен работать (<esc>
это, очевидно, клавиша escape и<CR>
перевод строки) (после 4 точек есть 6 пробелов)gó
полезную функцию. Хороший ответ BTW :)CSS / HTML,
202190186 + 45 =247235231 байтИзменить: Сохранено
1214 байт благодаря @Luke.источник
b
?ch
в конце;0
не нужен блок.<x>
на<span>
(и в CSS также:x
становитсяspan
иx>x
становитсяspan>*
)? Это экономитdisplay:inline-block;
, но стоит всего 15 байт. Таким образом, в общей сложности 6B сохранены.position:absolute;
.PowerShell,
6766 байт-1 с помощью сокращенного конструктора благодаря Beatcracker
заменяет строку копией строки, в которой последний символ помещается перед остальными символами, очищает экран, печатает его, а затем спит в течение 100 мс.
сэкономил много байтов, используя конструктор цикла for, а не заключал логику в строку.
источник
for
трюк с петлей и заставляющий меня перечитать about_Join .$s='.'*4+' '*6
.[.... ]
. Вы можете исправить это без штрафа:for($s='.'*4+' '*6){cls;"[$s]";$s=-join($s[,9+0..8]);sleep -m 100}
Python 3 ,
99938583 + 2 ( -u flag ) байтов-12 байт благодаря овсу
-2 байта благодаря полностью человеческому
Попробуйте онлайн!
источник
flush=True
? Это работает без меняprint(end='\r[%s]'%s,flush=1)
-u
флаг командной строки. Связанный SO вопросs[9]+s[:9]
.Пакет Windows,
201181 байтОказывается, использование метода старой школы на самом деле экономит байты!
Заметка:
Пожалуйста, обратите внимание, что мой GIF-рекордер пропустил несколько кадров, делая скачок полосы загрузки
:(
источник
@echo off
и замена dodo @(echo %%~p&timeout/t 0 >nul&cls)
также будет работать и должно сохранить 11 символов (200 байт на моем компьютере)Mathematica,
6777 байт+10 байт, как я забыл квадратные скобки.
источник
Animate
? : |C (gcc) ,
126125124123122121119118117114115 байтовЭтот использует битовую маску, чтобы отслеживать, где находятся точки.
Мне пришлось добавить еще один байт, так как раньше я выводил только 5 пробелов.
Попробуйте онлайн!
источник
Javascript (ES6), 86 байт
источник
with
. Всегда +1 заwith
!JavaScript (ES6) + HTML,
1048583 байтаinput
вместоpre
.Попытайся
Требует закрытия
>
наinput
теге, чтобы функционировать в сниппет.источник
[]
s?<input>
вместо,<pre>
а затемvalue
вместоinnerText
?s='.... ';setInterval(f=>{o.value='[${s=s[9]+s.slice(0,9)}]'},100);<input id=o
может быть, кто-то сможет его улучшить (замените кавычку на `)Noodel ,
16151413 байт[CỤ'Ṁ ~ ððÐ] ʠḷẸḍt] ʠ [Ð. × 4¤ × 6⁺ḷẸḍt] ʠ⁶¤⁴.ȧ [ėÐḷẸḍtПопытайся:)
Как это работает
Обновить
Попытайся:)
Не знаю, почему это заняло у меня некоторое время, чтобы подумать. Так или иначе, это помещает это в 13 байтов .
источник
PHP, 67 байт
без комментариев
источник
C #,
162157 байтили как целая программа на 177 байт
источник
for(string o="[.... ]";;)
можно в гольфvar o="[.... ]";for(;;)
. Или вы можете воспользоваться портом моего ответа Java 7 для игры в гольф:()=>{var o=".... "for(;;){o=(o+o).Substring(9,10);System.Console.Write("["+o+"]\n");System.Threading.Thread.Sleep(100);System.Console.Clear();}};
$"[{o}]\n"
System.Console.Write(o)
сSystem.Console.Write(o+"\r")
вами можно удалитьSystem.Console.Clear();
Чистая Баш, 68
источник
MATL , 24 байта
Попробуйте это в MATL Online! Или посмотрите GIF из автономного компилятора:
объяснение
источник
Желе ,
2827 байтКак?
источник
C (gcc),
202198196189969988867977757473 байтаСохранено
78 байт благодаря Digital Trauma .Или, если ваша система
stdout
не нуждается в сбросе после каждой записи без перевода строки:C (gcc), 70 байт
Как это работает
usleep(
спит для следующего возвращаемого значения в микросекундах.dprintf(2,
печатает в дескриптор файла 2, илиstderr
. Это необходимо, поскольку whilestdout
буферизуется строкой (то есть вывод не будет отображаться до тех пор, пока не будет напечатана новая строка),stderr
буферизуется символами (весь вывод отображается немедленно)."\r
печатает возврат каретки (очищает текущую строку).[%-10.10s]"
являетсяprintf
спецификатором формата для строки с точной длиной 10 (независимо от того, какая строка при условии, что на выходе всегда будет строка длиной 10), дополненная пробелами справа, если необходимо. Это будет заключено в скобки.".... ...."
это панель загрузки.+i%10
смещает полосу загрузки на текущий индекс по модулю 10. Например, еслиi == 3
,i % 10
равно 3. Взаимозачет планки загрузки на 3 делает его , равным". ...."
.printf
спецификатор формата, она ограничивается длиной 10, если необходимо, и добавляет пробелы в конец, если необходимо. Поэтому полоса загрузки всегда будет между[.... ]
и[. ...]
.источник
i;f(){for(;;i=++i%10)usleep(7500*dprintf(2,"\r[%-10.10s]",".... ...."-i+10));}
должно сработать.f(i){usleep(dprintf(2,"\r[%-10.10s]",".... ...."+i%10)<<13);f(i+9);}
Java 7,
139124 байта\r
спасибо @Phoenix .Возврат каретки
\r
сбрасывает курсор в начало строки, которая затем может быть перезаписана. К сожалению, онлайн-компиляторы и Eclipse IDE не поддерживают это, поэтому я добавил gif в конце этого ответа, чтобы показать его из командной строки Windows.Попробуй это здесь.(Немного изменено, поэтому вам не придется ждать тайм-аут перед просмотром результата. Кроме того, TIO не поддерживает возврат каретки, поэтому каждая строка печатается без перезаписи предыдущей строки.)
Объяснение:
Выходной GIF:
источник
println
сprint
и выводом возврата каретки. Может не работать в терминале вашей IDE, но будет работать в любом другом нормальном.\r\n
? КакSystem.out.print(someString+"\r\n);
очистить консоль .. Это то же самое, что и использованиеSystem.out.println(someString);
.. Она просто переходит к следующей строке, но не удаляет предыдущую напечатанную строку ..: S\r
, без\n
. Это сбрасывает «курсор» в начало строки, поэтому при печати чего-либо эта строка будет перезаписана.Python 2 ,
8178 байт-1 байт (замечая, что я пропустил использование,
%s
когда Род представил почти идентичную версию Python 3 одновременно!)-2 байта (используя идею полностью человека - заменить
s[-1]+s[:-1]
наs[9]+s[:9]
)источник
\r
перезаписывает строку и,
заставляет ее печатать кортеж, а не строку - я это где-то видел некоторое время назад и раньше тоже использовал.sys.stdout.flush()
)Go ,
150145132129124 байта-5 байт благодаря sudee.
Я чувствую, что не вижу достаточно. Иди сюда ... Но мой ответ превосходит С, так что ... пожалуйста, помогите в гольф?
Попробуйте онлайн!
источник
100000000
в,10^8
чтобы сэкономить 5 байтов.10**8
который также дает ошибку.1e8
.VBA 32-битный,
159157143141134 байтаVBA не имеет встроенной функции, которая позволяет ожидать периоды времени менее одной секунды, поэтому мы должны объявить функцию из
kernel32.dll
32-битное объявление объявления (41 байт)
Заявление 64-битного объявления (49 байт)
Кроме того, мы должны включить
DoEvents
флаг, чтобы из-за бесконечного цикла Excel не отображался как неотвечающий. Последняя функция - это подпрограмма, которая не принимает никаких входных данных и выводит их в непосредственное окно VBE.Функция непосредственного окна, 93 байта
Функция анонимного непосредственного окна VBE, которая не принимает никаких входных и выходных данных в диапазоне
A1
ActiveSheetСтарая версия, 109 байт
Функция непосредственного окна, которая не принимает никаких входных данных и выводит их в непосредственное окно VBE.
Неутолщенный и отформатированный
-2 байта для удаления пробелов
-30 байт для правильного подсчета
-14 байт для преобразования в непосредственную оконную функцию
Выход
GIF ниже использует полную версию подпрограммы, потому что мне было лень перезаписать это с помощью функции непосредственного окна.
источник
a
в верхней части вывода?a
как указано выше; это функционально эквивалентно более многословномуcall a()
.05AB1E , 23 байта
Попробуйте онлайн!
объяснение
источник
Пакетный,
9998 байтСохранено 1 байт благодаря SteveFest!
(Я мог бы удалить
\r
из кода, но в духе пакетной игры в гольф, я не буду.)Есть четыре пробела после первой строки.
Основная логика - изменение строки.
%s:~-1%
это последний символ%s%
и%s:~0,-1%
является только последним символом%s%
. Таким образом, мы перемещаем последний символ в начало строки, которая вращает строку.источник
0
переменная подстрока может быть удаленаcmder
. Хорошая работа.Руби,
5756 байтСильно под влиянием других ответов здесь.
Сохраненный байт благодаря @manatwork. Также, по-видимому, у меня проблемы с подсчетом символов - я использую ST3, и, очевидно, он будет включать в себя новые строки в количестве символов в строке, если вы не будете внимательны.
источник
s
?s
в начале программы, как 4.
с и несколько пробеловs[0..8]
→s.chop
Perl, 69 байт
-3 байта благодаря @Dom Hastings .
Это
select undef,undef,undef,.1
самый короткий способ спать менее 1 секунды в Perl, и он занимает много байтов ...Чуть дольше (79 байт) есть:
источник
!print
но вам нужны парены, чтобы они заканчивались одинаковой длиной: /Bash,
939096 байтпосмотреть здесь
не может быть вложенным {} для синтаксиса
источник
Groovy, 72 байта
Explaination
источник
\r
чтобы вернуть курсор в начало строки. Похоже, что по крайней мере несколько ответов делают это. Оттуда вы можете удалить * 20, сохранив 3 байта.Haskell (Windows), 159 байт
объяснение
Чистота Хаскелла делала создание шаблона с циклическими точками несколько сложным. Я закончил тем, что создал понимание вложенного списка, которое генерировало бесконечный список строк в порядке их вывода, затем вернулся и добавил соответствующие операции ввода-вывода.
источник
Рубин, 61 байт
Если бы спецификация была для точек, чтобы прокрутить влево, а не вправо, это бы сэкономило 1 байт, потому что
rotate!
без аргументов массив сдвигал один раз влево.источник
GNU sed (с расширением exec), 64
Оценка включает +1 для
-r
флага.источник
с, 100
источник
stderr
использовать,dprintf
а не просто использоватьprintf
?stderr
буферизация символов, тогда какstdout
буферизация строки. Так как я не хочу ничего печатать\n
, тоprintf()
мне придется явно,fflush(stdout)
а также#include <stdio.h>
#include <stdio.h>
сбрасывать STDOUT.fflush(0)
сбрасывает все буферы.main
вf
, что имеет значение.