Более классные счетчики ASCII? [закрытый]

В консольном приложении может использоваться счетчик ASCII, как GUI ожидают курсор, чтобы указать, что работа делается. Общий счетчик циклы через эти 4 символа: '|', '/', '-'', \'

Что некоторые другие циклические последовательности анимации должны приправить консольное приложение?

236
задан wim 11 February 2013 в 20:01
поделиться

13 ответов

Воздушные шары ...

. o O @ *
77
ответ дан 23 November 2019 в 03:26
поделиться

Создает симпатичный эффект "дождя":

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();
        }
    }
}
5
ответ дан 23 November 2019 в 03:26
поделиться

Предоставлено моим коллегой, вот отличная реализация на 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. Но это довольно дьявольски умен.

4
ответ дан 23 November 2019 в 03:26
поделиться

Раньше был компоновщик DOS с именем blinker от Blink Inc. Он отображал анимацию, подобную этой, пока работал:

(o)(o)

(-)(-)

(_)(_)

первый кадр отображается примерно секунду, а два других кратко анимируются раз в секунду или две, заставляя командную строку моргать глазами. На самом деле, эффект был довольно крутым.

У компоновщика даже была возможность моргнуть одним глазом, и вы могли выбрать, какой глаз будет моргать.

27
ответ дан 23 November 2019 в 03:26
поделиться

Если у вас есть пространство для нескольких символов, вы можете использовать анимированное изображение ASCII. Например, вы можете сделать индикатор выполнения, например:

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

, или индикатор прогресса «прыгающий мяч» (который движется вперед и назад), например:

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

Что-то более продвинутое, например , эта анимация загрузки также может работать .

Редактировать: Есть еще "настольная игрушка для руководителей"

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

И, конечно, есть лучший пример анимированного ASCII-арта , если у вас было время что-то реализовать аналогично (это потребовало бы "пикантности консольного приложения" до крайности).

Изменить: Если ваша консоль поддерживает цвет, вы также можете оживить скучный стандартный счетчик, циклически меняя цвета во время вращения. Начните с красной линии, а затем медленно переходите от радуги к фиолетовой по мере вращения. Это может выглядеть особенно круто с индикатором «прыгающий мяч» выше, если у вас есть мяч, «раскрашивающий» полоску в другой цвет при каждом проходе.

73
ответ дан 23 November 2019 в 03:26
поделиться

Я написал тот, который циклически прошел через стандарт \ | / - но оставил _ и перешел на следующую позицию. Он должен был выглядеть так, как если бы была серия прядильщиков, каждая из которых упала на пол перед запуском следующей. Необходимость в этом заключалась в том, что моя программа неоднократно что-то пробовала и ждала определенного результата. Я хотел представить каждый раз, когда он пытался, а также сколько раз он пытался, не занимая много места на экране (или подсчитывая).

После того, как я написал его, он выглядел намного менее круто, чем я думал, но он выполнил свою задачу.

3
ответ дан 23 November 2019 в 03:26
поделиться

Я видел

 echo -e "\033[41;1m$1 \033[0m"

В bash постоянно строить индикатор выполнения на основе символа блока.

3
ответ дан 23 November 2019 в 03:26
поделиться

Множество вариантов Unicode, включая ⌚ и ⌛!

  • ← ↖ ↑ ↗ → ↘ ↓ ↙

  • ▃ ▄ ▅ ▆ ▇ █ ▇ ▆ ▅ ▃

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

  • ▖ ▘ ▝ ▗

  • ┤ ┘ ┴ └ ├ ┌ ┬ ┐

  • ◢ ◣ ◤ ◥

  • ◰ ◳ ◲ ◱

  • ◴ ◷ ◶ ◵

  • ◐ ◓ ◑ ◒

  • ◡◡ ⊙⊙ ◠◠

  • ⣾⣽⣻⢿⡿⣟⣯⣷ ⠁⠂⠄⡀⢀⠠⠐⠈ Весь блок Брайля, даже в случайном порядке http://www.fileformat.info/info/unicode/block/braille_patterns /images.htm

165
ответ дан 23 November 2019 в 03:26
поделиться

Я использовал цикл

Working. 
Working..
Working...

Inspirational I know

19
ответ дан 23 November 2019 в 03:26
поделиться

В одном приложении я видел 1,2,3,4,5,6,7,8,9,0.

4
ответ дан 23 November 2019 в 03:26
поделиться

Определенно LOLLERSKATES!

    /\O    |    _O    |      O
     /\/   |   //|_   |     /_
    /\     |    |     |     |\
   /  \    |   /|     |    / |
 LOL  LOL  |   LLOL   |  LOLLOL
-----------+----------+-----------
  Frame 0  | Frame 1  |  Frame 2   
60
ответ дан 23 November 2019 в 03:26
поделиться

Попробуйте эти

  • '+', 'x'
  • 'v', '<', '^', '>'
11
ответ дан 23 November 2019 в 03:26
поделиться

fish - это модуль Python, который оживляет ASCII-рыбу, бегающую вперед и назад, и кому не нравится редкая консольная рыба?

>))'>
    >))'>
        >))'>
    <'((<
<'((<
15
ответ дан 23 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: