更酷的ASCII Spinners?

在控制台应用程序中,可以使用ascii微调控制器(如GUI等待光标)来指示正在完成工作。 一个普通的微调器遍历这4个字符:'|','/',' – ','\'

什么是一些其他的循环animation序列来debugging一个控制台应用程序?

气球…

. o O @ * 

Unicode有很多select,包括⌚和⌛!

  • ← ↖ ↑ ↗ → ↘ ↓ ↙

  • ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▇ ▆ ▅ ▄ ▃ ▁

  • ▉▊▋▌▍▎▏▎▍▌▋▊▉

  • ▖ ▘ ▝ ▗

  • ┤ ┘ ┴ └ ├ ┌ ┬ ┐

  • ◢ ◣ ◤ ◥

  • ◰ ◳ ◲ ◱

  • ◴ ◷ ◶ ◵

  • ◐ ◓ ◑ ◒

  • ◡◡ ⊙⊙ ◠◠

  • ⣾⣽⣻⢿⡿⣟⣯⣷ ⠁⠂⠄⡀⢀⠠⠐⠈整个盲文块,即使是随机顺序http://www.fileformat.info/info/unicode/block/braille_patterns/images.htm

如果你有不止一个字符的空间,你可以使用animationASCII艺术。 例如,你可以做一个进度条,如:

 [ ] [== ] [===== ] [======== ] 

或“弹跳球”进度指示器(来回移动),如:

 (-*--------) // moving --> (-----*----) // moving --> (---------*) // moving --> (--------*-) // moving <-- (---*------) // moving <-- (*---------) // moving <-- 

像这个加载animation更先进的东西也可以工作。

编辑:还有“行政桌面玩具”

 ╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗ ╔════╤╤╤╤════╗ ║ │││ \ ║ ║ ││││ ║ ║ / │││ ║ ║ ││││ ║ ║ │││ O ║ -> ║ ││││ ║ -> ║ O │││ ║ -> ║ ││││ ║ ║ OOO ║ ║ OOOO ║ ║ OOO ║ ║ OOOO ║ 

当然,如果你有时间去实现类似的东西,那么animation的ASCII艺术就是最好的例子 (这将会使“控制台应用程序”变得极端)。

编辑:如果你的控制台支持颜色,你也可以在旋转时通过循环颜色来调动一个无聊的标准微调器。 用红线开始,然后慢慢地从彩虹中消失,直到紫罗兰旋转。 如果您的球在每一次传球中都将球“涂”成不同的颜色,则上面的“弹跳球”指示器可以看起来特别酷。

肯定LOLLERSKATES!

  /\O | _O | O /\/ | //|_ | /_ /\ | | | |\ / \ | /| | / | LOL LOL | LLOL | LOLLOL -----------+----------+----------- Frame 0 | Frame 1 | Frame 2 

在这里观察他们的行动:

 var spinners = [ "←↖↑↗→↘↓↙", "▁▃▄▅▆▇█▇▆▅▄▃", "▉▊▋▌▍▎▏▎▍▌▋▊▉", "▖▘▝▗", "▌▀▐▄", "┤┘┴└├┌┬┐", "◢◣◤◥", "◰◳◲◱", "◴◷◶◵", "◐◓◑◒", "|/-\\", ".oO@*", ["◡◡", "⊙⊙", "◠◠"], ["◜ ", " ◝", " ◞", "◟ "], "◇◈◆", "⣾⣽⣻⢿⡿⣟⣯⣷", "⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿", "⠁⠂⠄⡀⢀⠠⠐⠈", [">))'>", " >))'>", " >))'>", " >))'>", " >))'>", " <'((<", " <'((<", " <'((<"], [" /\\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; } 

曾经有一个叫做blinker的DOS链接器,由Blink公司生产。它在工作时会显示一个类似于这个的animation:

 (o)(o) (-)(-) (_)(_) 

第一帧显示约一秒钟,另外两帧短暂地animation一秒或两秒,使命令行看起来眨眼睛。 实际上效果非常好。

连接器甚至可以select眨眼一下,你可以select哪一只眼睛会眨眼。

我用了一个循环

 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^/ 

哇!弓箭手!

  /\ /__\_{) |--<<)__\ \ / ( \/ ) /| \ \ ~ ~ /| \ /_|_{)/ ---<< | | ) \ | ( \| ) /| \ \ ~ ~ \ /|{)/ ---<< +-|-) \| ( ) /| \ \ ~ ~ /\ /__\_{) |--<<)__\ \ / ( \/ __) \ |__ ~ ~ /| \ /_|_{)/ ---<< | | ) \ | ( \|__) \ |__ ~ ~ \ /|{)/ ---<< +-|-) \| ( __) \ |__ ~ ~ 

超级骑单车

  ---------- __o -------- _ \<,_ ------- (*)/ (*) 

Wheeeee!

放风筝

  /\ '\/ ' + ' + ' + ' + ' + ' + ' ' ' ' ' ' ' ' __ ' \o . ' \\/ /\ / / 

这个钓鱼也是相当可怕的

http://asciimator.net/kangaroo/fishing.html

试试这些

  • '+','x'
  • 'v','<','^','>'

在Javascript中使用一个jQueryselect器:

 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); } 

根据我的分析,它只适用于至less有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中不断build立一个基于块字符的进度条。

我写了一个循环的标准\ | / – 但是左边一个_移到下一个位置。 它的目的是看起来好像有一系列的纺纱厂,每一个在下一个开始之前下降到地板。 对此的需求是我的程序一再尝试,等待一定的结果。 我想表示每次尝试,也尝试了多less次,而没有占用大量的屏幕空间(或数量)。

写完之后,它看起来比我想象的要凉快得多,但是它达到了它的目的。