Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 596
1

Ускорить вывод в консоли

02.08.2020, 11:23. Просмотров 876. Ответов 11
Метки нет (Все метки)

Здравствуйте. Есть у меня массив символов 30х120. Хочу его выводить в консоли постоянно, будто в реальном времени данные в нем меняются. Для этого сделал таймер и каждый раз, когда он выбегает я очищаю консоль и вывожу в неё весь массив. Так вот, у меня даже за 100 мс не успевает нарисовать массив консоль. Почему так? Ну есть ведь игры, которые в консоли идут, типо, дварф фортрес и там не только успевает все отрисоваться, но ещё и мерцания не заметно, то есть консоль перерисовывается мс за 30,если не меньше, как же так?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2020, 11:23
Ответы с готовыми решениями:

Ускорить вывод в консоли
Я написал Понг в консоли, но она слишком медленно выводит графику, из-за чего картинка дерганая, а...

Игра из текста в консоли: как ускорить прорисовку?
Здравствуйте, я решил реализовать игру, используя консоль. (именно консоль, т.к. хочу сделать закос...

Ускорить вывод в текстовый файл
Сделал вывод в текстовый файл значений полей объекта. Полей восемь. Типы полей разные (int,...

Необходимо ускорить вывод данных
Есть двумерный массив из которого необходимо вывести данные в textbox2 с проверкой. Проверка и...

11
755 / 452 / 235
Регистрация: 26.11.2015
Сообщений: 1,449
Записей в блоге: 2
02.08.2020, 11:28 2
Во-первых, покажите код, тогда станет ясно, в чем именно проблема
Во-вторых, в таких играх никогда не будут перерисовывать всю консоль. Можно рисовать только то, что изменилось
1
3987 / 2862 / 1249
Регистрация: 09.05.2015
Сообщений: 7,003
02.08.2020, 11:40 3
Скорее всего нужно напрямую с буфером консоли работать.
1
191 / 139 / 52
Регистрация: 06.03.2017
Сообщений: 589
02.08.2020, 11:43 4
Chizel, Можно попробовать пачками элементы в строку писать, и выводить эту строку на консоль, так будет быстрее чем по одному элементу рисовать
1
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 596
02.08.2020, 12:06  [ТС] 5
Toros1992, я с телефона, но там кода то, просто таймер, который при выбеге дёргает метод, в котором console.clear() и в двух циклах for console.write(),ну и concole.writeln() когда внутренний цикл заканчивается, чтобы на новую строку перейти.
Someone007, а как это?
Pilarentes, попробую, спасибо.
а что, можно как то изменять символы уже введённые в консоли разве? Как это сделать?
0
1394 / 873 / 406
Регистрация: 14.10.2018
Сообщений: 2,467
02.08.2020, 12:20 6
Лучший ответ Сообщение было отмечено Chizel как решение

Решение

Цитата Сообщение от Chizel Посмотреть сообщение
а как это?
Console.MoveBufferArea
Цитата Сообщение от Chizel Посмотреть сообщение
а что, можно как то изменять символы уже введённые в консоли разве? Как это сделать?
изменять - не совсем правильно сказано, Console.SetCursorPosition(Int32, Int32) - установка курсора в нужную точку и как бы "записать новое значение поверх", если включить логику - пишем знак пробела в нужном месте - и визуально как бы очистка консоли происходит в нужном месте
1
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 596
02.08.2020, 12:42  [ТС] 7
Enifan, не знал, спасибо, ушёл разбираться

Добавлено через 15 минут
Enifan, копирует заданную область буфера экрана в заданную область назначения, что это вообще значит?
0
755 / 452 / 235
Регистрация: 26.11.2015
Сообщений: 1,449
Записей в блоге: 2
02.08.2020, 12:50 8
это значит ctrl+C ctrl+V

Добавлено через 15 секунд
только с символами в консоли
0
1394 / 873 / 406
Регистрация: 14.10.2018
Сообщений: 2,467
02.08.2020, 13:05 9
Цитата Сообщение от Chizel Посмотреть сообщение
что это вообще значит?
лучше один раз в коде запустить да увидеть, чем обьяснить
C#
1
2
3
        Console.WriteLine("Какой_то_текст");
        Console.WriteLine("2-ая_строка");
        Console.MoveBufferArea(5, 0, 3, 2, 10, 10);
Добавлено через 10 минут
Цитата Сообщение от Chizel Посмотреть сообщение
что это вообще значит?
для более лучшего понимания: висит картина на стене - мы ножом вырезаем часть и этот вырезанный кусок вставляем в другое место.
1
755 / 452 / 235
Регистрация: 26.11.2015
Сообщений: 1,449
Записей в блоге: 2
02.08.2020, 13:09 10
Цитата Сообщение от Enifan Посмотреть сообщение
ножом вырезаем часть
Ну это уже ctrl+X ))
0
1394 / 873 / 406
Регистрация: 14.10.2018
Сообщений: 2,467
02.08.2020, 14:14 11
Цитата Сообщение от Toros1992 Посмотреть сообщение
Ну это уже ctrl+X ))
имеем что имеем, не я разрабатывал этот метод )) Хотя по сути он так и работает, ведь бывшая часть консоли остается пустой. Вот если бы в консоли были бы слои, возможно это работало бы по другому...
0
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 596
02.08.2020, 14:45  [ТС] 12
Enifan, вот теперь все ясно стало, спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2020, 14:45

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

Ускорить вывод в RichEdit
Я генерирую миллион значений Все значения вывожу в поток: osftream p("text.txt"); for(i=0; i <...

Как ускорить вывод изображения?
Здравствуйте уважаемые программисты! Вот я пишу игровой 2D движок на C++ directx9 и то, что у меня...

Ускорить вывод изображения в JLabel
Подскажите, пожалуйста, можно ли каким-то образом ускорить вывод изображения в JLabel. Использую...

Ускорить вывод большой строковой переменной в консоль
Друзья, помогите, кто чем сможет, пожалуйста. Необходимо вывести 10 млн записей(Имя, адрес,...

Решето Эратосфена, кто может ускорить вывод чисел с 2 до 1000000 до 0,5 сек?
a,n = map(int,input().split()) c = d ='' for i in range(0,n+1): c.append(0) for i in...

Построение иерарх. дерева на основе существующей БД. Как ускорить вывод данных.
Есть БД в которой заложен вывод данных в иерархическом виде (1С) т.е. там есть ID и ParentID...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.