Язык программирования C ++ 12.7, вопрос 2 - PullRequest
3 голосов
/ 29 июля 2011

Я выполняю упражнение из языка программирования C ++ (стр. 325, упражнение 12.7, вопрос 2).

Там написано:

Реализация простой графической системы с использованием любых графических средств доступны в вашей системе (если у вас нет хорошей графической системы или не имеют опыта работы с одним, вы могли бы рассмотреть простой ASCII реализация ", где точка - это позиция персонажа, а вы напишите, поместив подходящий контейнер, например * в положение)

Теперь я понял, что если я не хочу использовать GDI + или Direct X, тогда я могу сделать это в консольном приложении, используя символы типа _, * или -.

Думаю ли я об этом правильно?

Если я так, то правильно ли я считаю, что мне нужно иметь возможность рисовать символы в любом месте консоли?

Если это так, как мне нарисовать char в любом месте на консоли?

Или я могу ошибаться, и вы можете сказать ему, что я могу попробовать (не GDI + / DirectX, если это возможно)

Ответы [ 3 ]

1 голос
/ 29 июля 2011

Раньше можно было использовать escape-последовательности ANSI, но, прочитав ваш вопрос и изучив здесь , кажется, что их больше не существует.

Лучше всего использовать интерфейсы консоли Windows, задокументированные здесь .

Выглядит довольно неплохим примером того, как вы могли бы действовать здесь .

Удачи с этим, звучит интересно!

1 голос
/ 29 июля 2011

Приятные воспоминания об этом в компьютерном классе, когда у нас были наборы персонажей с ar █. Графика с двойным разрешением;). Если бы вы хотели один в столбце 8, вы бы напечатали 7 пробелов перед ним. И если бы вы хотели это в строке 3, вы бы напечатали два \n впереди. Но да, вы должны были бы заранее рассмотреть, что вы собираетесь рисовать. Чтобы перерисовать одного персонажа, вам нужно перерисовать все.

1 голос
/ 29 июля 2011

Чтобы нарисовать символ в любом месте консоли, вам действительно нужно использовать библиотеку, специфичную для операционной системы, для доступа к консоли или кроссплатформенную библиотеку консоли.

Если бы вы делали это для Windows, вы бы использовали API консоли Windows (MSDN) , функция, которая может рисовать символ в определенном месте: FillConsoleOutputCharacter (MSDN) .

...