Здравствуйте! Мой вопрос может звучать достаточно размыто, но я все же постараюсь объяснить.
Вот, допустим, я написал рабочую часть (алгоритмическую) для крестиков-ноликов, то есть все работает, выигрыш-поражение-ничья определяется, и тому подобное. И теперь мне нужно правильно оформить графическую часть игры в консоли. Я, конечно, пока писал алгоритм, сделал что-то подобное, но это выглядит странно - то есть, каждый раз, когда игрок делает ход, я заново печатал игровую сетку чуть ниже предыдущего вывода сетки.
Как в консольных играх делается графика?
К примеру, мне кажется неправильным очищать консольное окно и заново рисовать сетку после каждого хода. Или, например, если я захочу влепить куда нить часики в игровое окно, неужели мне придется обновлять таким образом экран каждую секунду?
То есть, каким образом отслеживаются и делаются изменения (цвет, расположение, и т.д.) в выводе консоли в режиме реального времени или в зависимости от действий пользователя?
Заранее спасибо.
P.S. Язык, на котором пишу - Java, но интересует более общая концепция, как это все происходит и что для этого обычно используется.
display: block: Вы хотите на баше делать игру? В посте речь шла про яву.
Что бы что-то серьезное сделать с экраном консоли надо работать напрямую с экранным буфером.
Про баш не поручусь, но виндовый cmd такого делать не позволяет.
Собственно и баш и cmd это просто программы которые используют текстовую консоль, любая другая программа может ее использовать по своему.
Нужно использовать API ОС для доступа к экранному буферу (или какие-то библиотеки в качестве посредника, но суть от этого не меняется), на Java это можно сделать.
Для виндовой консоли можете начать отсюда: https://docs.microsoft.com/en-us/windows/console/c...
display: block: Для простых текстовых прогрессбаров я бы рекомендовал использовать символ backspace, а не \r, тогда можно не перерисовывать всю строку, а только нужные символы.