Вывод цветного текста в консоль одной строкой - C#
Формулировка задачи:
Доброго времени суток !
Была поставлена одна интересная задача. Необходимо создать что-то похожее на обычный консольный "рогалик", только из ASCII - символов. (Кстати, получается похоже)
Вся физика и расчеты работают хорошо, но вот с выводом проблема - он работает очень медленно.
Допустим, есть у нас игровое поле размером 100 (ширина) на 40 (высота).
В самой первой версии изображение выводилось посимвольно, и это было очень медленно.
Тогда алгоритм был переделан, и все выводилось одной (!) строкой, то есть строкой из 100*40=4000 символом.
Вот попробуйте выполнить это :
Но одну строку нельзя вывести разными цветами.
Гуглил много, но никаких методов решения данной проблемы не нашел.
Решил задать вопрос тут.
Подскажите, пожалуйста, если кто-то знает !
Заранее благодарен !
Console.SetWindowSize(21,10); Console.SetBufferSize(21,10); Console.WriteLine(); for (int c = 0; c < 56; c++) str += " # "; Console.Write(str); Console.ReadKey();
Или, может быть, есть способ вывести сразу массив разноцветных символов ?
Что-то вроде WriteConsoleOutput в C++ ?
Решение задачи: «Вывод цветного текста в консоль одной строкой»
textual
Листинг программы
string s = "абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"; byte[] b1 = s.Select(ch => ConvertEncodings.UnicodeToASCII((short)ch)).ToArray(); string s2 = Encoding.GetEncoding(866).GetString(b1); byte[] b2 = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(866), Encoding.Unicode.GetBytes(s)); if (s == s2 && b1.SequenceEqual(b2)) Console.WriteLine("Всё в порядке, шеф!");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д