@WTFAYD

Как реализуется консольная real-time графика?

Здравствуйте! Мой вопрос может звучать достаточно размыто, но я все же постараюсь объяснить.
Вот, допустим, я написал рабочую часть (алгоритмическую) для крестиков-ноликов, то есть все работает, выигрыш-поражение-ничья определяется, и тому подобное. И теперь мне нужно правильно оформить графическую часть игры в консоли. Я, конечно, пока писал алгоритм, сделал что-то подобное, но это выглядит странно - то есть, каждый раз, когда игрок делает ход, я заново печатал игровую сетку чуть ниже предыдущего вывода сетки.
Как в консольных играх делается графика?
К примеру, мне кажется неправильным очищать консольное окно и заново рисовать сетку после каждого хода. Или, например, если я захочу влепить куда нить часики в игровое окно, неужели мне придется обновлять таким образом экран каждую секунду?
То есть, каким образом отслеживаются и делаются изменения (цвет, расположение, и т.д.) в выводе консоли в режиме реального времени или в зависимости от действий пользователя?
Заранее спасибо.

P.S. Язык, на котором пишу - Java, но интересует более общая концепция, как это все происходит и что для этого обычно используется.
  • Вопрос задан
  • 489 просмотров
Решения вопроса 1
qork
@qork
{ background: #F00B42 }
Например, bash:
#!/bin/bash

echo -ne '#####                     (33%)\r'
sleep 1
echo -ne '#############             (66%)\r'
sleep 1
echo -e '#######################   (100%)\r'

Флаги:
n - не переводить на новую строку после вывода
e - включение интерпретации экранированных символов (\r)

\r в строке означает возврат каретки (в крайнее левое положение).
Дальше, после слипа, поверх строки пишем новую.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы