Ответ 1
Воздушные шары...
. o O @ *
В консольном приложении можно использовать счетчик ascii, такой как указатель ожидания GUI, чтобы указать, что работа выполняется. Обычный спиннер циклически проходит через эти 4 символа: '|', '/', '-', '\'
Каковы некоторые другие циклические последовательности анимации, чтобы оживить консольное приложение?
Воздушные шары...
. o O @ *
Множество вариантов с Unicode, включая ⌚ и ⌛!
← ↖ ↑ ↗ → ↘ ↓ ↙
▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▇ ▆ ▅ ▄ ▃ ▁
▉▊▋▌▍▎▏▎▍▌▋▊▉
▖ ▘ ▝ ▗
┤ ┘ ┴ └ ├ ┌ ┬ ┐
◢ ◣ ◤ ◥
◰ ◳ ◲ ◱
◴ ◷ ◶ ◵
◐ ◓ ◑ ◒
◡◡ ⊙⊙ ◠◠
⣾⣽⣻⢿⡿⣟⣯⣷ ⠁⠂⠄⡀⢀⠠⠐⠈
Весь блок Брайля, даже в случайном порядке http://www.fileformat.info/info/unicode/block/braille_patterns/images.htm
Если у вас больше места на одном знаке, вы можете использовать анимированное искусство ASCII. Например, вы можете сделать индикатор выполнения, например:
[ ]
[== ]
[===== ]
[======== ]
или индикатор хода "прыгающего шара" (который перемещается вперед и назад), например:
(-*--------) // moving -->
(-----*----) // moving -->
(---------*) // moving -->
(--------*-) // moving <--
(---*------) // moving <--
(*---------) // moving <--
Возможно, что-то более продвинутое, например эта загрузочная анимация.
Edit: Там также "игрушка для рабочего стола"
╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗
║ │││ \ ║ ║ ││││ ║ ║ / │││ ║ ║ ││││ ║
║ │││ O ║ -> ║ ││││ ║ -> ║ O │││ ║ -> ║ ││││ ║
║ OOO ║ ║ OOOO ║ ║ OOO ║ ║ OOOO ║
И, конечно же, отличный пример анимированного искусства ASCII, если у вас было время реализовать что-то подобное (это потребует "подпряжения" консольное приложение "до крайности).
Изменить:. Если ваша консоль поддерживает цвет, вы также можете придать лишнему сверкающему стандарту прядильщик, перемещаясь по цветам во время вращения. Начните с красной линии, затем медленно пройдите сквозь радугу до фиолетового, когда вы вращаетесь. Это может выглядеть особенно круто с индикатором "прыгающего шара" выше, если у вас есть мяч "краска" на баре другого цвета на каждом проходе.
Определенно LOLLERSKATES!
/\O | _O | O
/\/ | //|_ | /_
/\ | | | |\
/ \ | /| | / |
LOL LOL | LLOL | LOLLOL
-----------+----------+-----------
Frame 0 | Frame 1 | Frame 2
Наблюдайте за ними в действии:
var spinners = [
"←↖↑↗→↘↓↙",
"▁▃▄▅▆▇█▇▆▅▄▃",
"▉▊▋▌▍▎▏▎▍▌▋▊▉",
"▖▘▝▗",
"▌▀▐▄",
"┤┘┴└├┌┬┐",
"◢◣◤◥",
"◰◳◲◱",
"◴◷◶◵",
"◐◓◑◒",
"|/-\\",
"[email protected]*", ["◡◡", "⊙⊙", "◠◠"],
["◜ ", " ◝", " ◞", "◟ "],
"◇◈◆",
"⣾⣽⣻⢿⡿⣟⣯⣷",
"⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿",
"⠁⠂⠄⡀⢀⠠⠐⠈", [">))'>", " >))'>", " >))'>", " >))'>", " >))'>", " <'((<", " <'((<", " <'((<"],
[" /\\O\n /\\/\n /\\\n / \\\n LOL LOL", " _O\n //|_\n |\n /|\n LLOL", " O\n /_\n |\\\n / |\n LOLLOL"],
[
"╔════╤╤╤╤════╗\n║ │││ \\ ║\n║ │││ O ║\n║ OOO ║",
"╔════╤╤╤╤════╗\n║ ││││ ║\n║ ││││ ║\n║ OOOO ║",
"╔════╤╤╤╤════╗\n║ / │││ ║\n║ O │││ ║\n║ OOO ║",
"╔════╤╤╤╤════╗\n║ ││││ ║\n║ ││││ ║\n║ OOOO ║"
],
];
for (var s = 0; s < spinners.length; ++s) {
var spinner = spinners[s];
var div = document.createElement('div');
var el = document.createElement('pre');
div.appendChild(el);
document.body.appendChild(div);
(function(spinner, el) {
var i = 0;
setInterval(function() {
el.innerHTML = spinner[i];
i = (i + 1) % spinner.length;
}, 300);
})(spinner, el);
}
pre {
font-family: monospace;
font-size: 1.5em;
font-weight: bold;
border: 1px solid #eee;
display: inline-block;
margin: .25em;
}
Раньше был линкер DOS с именем blinker от Blink Inc. Он отображал анимацию, подобную этой, пока он работал:
(o)(o)
(-)(-)
(_)(_)
При отображении первого кадра примерно в течение секунды, а два других анимации кратко один раз в секунду или два, что приводит к тому, что командная строка начинает мигать глазами. Фактически эффект был довольно прохладным.
У компоновщика даже были варианты, чтобы мигать одним глазом, и вы могли выбрать, какой глаз будет мигать.
Я использовал цикл
Working.
Working..
Working...
Вдохновенный я знаю
fish
- это модуль Python, который оживляет ASCII-рыбу, идущую туда-сюда, и кому не нравится редкая консольная рыба?
>))'>
>))'>
>))'>
<'((<
<'((<
Если вы знаете, насколько далеко вы проходите процесс, мне нравится процентная панель. Он выглядит красиво, чувствует себя интуитивно понятным и легко реализуется:
| 0%
||||| 5%
|||||||||||||||||||||| 26%
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 100%
(Примеры выше не точны)
Все взято из:
http://llizard.cwahi.net/animals.html
Летучие мыши летают!
/^v^\
/^v^\ /^v^\
/^v^\
/^v^\
Откидная створка!
\^v^/
\^v^/ \^v^/
\^v^/
\^v^/
Wow wow the Archer!
/\
/__\_{)
|--<<)__\
\ / (
\/ )
/|
\ \
~ ~
/| \
/_|_{)/
---<< | | )
\ | (
\| )
/|
\ \
~ ~
\
/|{)/
---<< +-|-)
\| (
)
/|
\ \
~ ~
/\
/__\_{)
|--<<)__\
\ / (
\/ __)
\ |__
~ ~
/| \
/_|_{)/
---<< | | )
\ | (
\|__)
\ |__
~ ~
\
/|{)/
---<< +-|-)
\| (
__)
\ |__
~ ~
Супер-велосипедист
---------- __o
-------- _ \<,_
------- (*)/ (*)
Wheeeee!
Летающий кайт
/\
'\/
' +
' +
' +
' +
' +
' +
'
'
'
'
'
'
'
'
__ '
\o . '
\\/
/\
/ /
Эта рыбалка довольно хороша, а также
Попробуйте эти
В Javascript используется один селектор jQuery:
var spins = [
"←↖↑↗→↘↓↙",
"▁▃▄▅▆▇█▇▆▅▄▃",
"▉▊▋▌▍▎▏▎▍▌▋▊▉",
"▖▘▝▗",
"┤┘┴└├┌┬┐",
"◢◣◤◥",
"◰ ◳ ◲ ◱",
"◴◷◶◵",
"◐◓◑◒",
"|/-\\"];
var spin = spins[0],
title$ = $('title'),
i=0;
setInterval(function() {
i = i==spin.length-1 ? 0 : ++i;
title$.text('('+ spin[i] +') Loading...');
},300);
Я рад, что я не единственный, достаточно сумасшедший, чтобы тратить время на это!
Вот мои фавориты (некоторые используют коды dos ascii):
classic: "/-\\|";
bouncing ball: ".oOo";
better bouncing ball: [46, 111, 79, 248, 79, 111]; // (.oO°Oo.)
[180, 217, 193, 192, 195, 218, 194, 191]; // ┤ ┘ ┴ └ ├ ┌ ┬ ┐
[185, 188, 202, 200, 204, 201, 203, 187]; // double piped version of that
[219, 220, 223]; // block colours
Предоставлено моим сотрудником, здесь отличная реализация в C:
#define COW 2172
char* moo = "MO ";
void wrap() {
int i,j;
for(i=0;doSomething(i);i++)
j=COW-moo[i&3],fputs(&j,stderr);
}
Из моего анализа он работает только на машине с маленькими концами с не менее 32-битными словами и набором символов ASCII. Но это довольно дьявольски умно.
Делает приятный эффект "дождя":
using System;
using System.Text;
using System.Threading;
namespace CSharpSandbox
{
class Program
{
static Random rnd = new Random();
static char[,] Step(char[,] matrix)
{
int width = matrix.GetUpperBound(0) + 1;
int height = matrix.GetUpperBound(1) + 1;
char[,] res = new char[width, height];
for (int h = 0; h < height; h++)
{
for (int w = 0; w < width; w++)
{
char c;
if (h == 0)
c = rnd.Next(2) == 0 ? ' ' : '*';
else
c = matrix[w, h - 1];
res[w, h] = c;
}
}
return res;
}
static string ToString(char[,] matrix)
{
int width = matrix.GetUpperBound(0) + 1;
int height = matrix.GetUpperBound(1) + 1;
StringBuilder sb = new StringBuilder();
for (int h = 0; h < height; h++)
{
for (int w = 0; w < width; w++)
{
sb.Append(matrix[w, h]);
}
sb.AppendLine();
}
return sb.ToString();
}
static Timer timer;
static void Spinner()
{
char[,] matrix = new char[10, 5];
timer = new Timer(_ =>
{
string s = ToString(matrix);
Console.SetCursorPosition(0, 0);
Console.Write(s);
matrix = Step(matrix);
},
null,
0,
200);
}
static void Main(string[] args)
{
Spinner();
Console.ReadLine();
}
}
}
В одном приложении я увидел 1,2,3,4,5,6,7,8,9,0.
Я видел
echo -e "\033[41;1m$1 \033[0m"
В bash для непрерывной сборки индикатор выполнения на основе символа блока.
Я написал один, который циклически прошел через стандартный \|/- но слева a _ и переместился на следующую позицию. Предполагалось выглядеть так, как если бы была серия прядильщиков, каждая из которых падала на пол перед следующим. Потребность в этом заключалась в том, что моя программа неоднократно пыталась что-то и ожидала определенного результата. Я хотел представлять каждый раз, когда он пытался, а также сколько раз он пытался, не занимая много места на экране (или считая).
После того, как я написал его, это выглядело намного менее круто, чем я думал, но это послужило своей цели.