Редактировать : Ответ здесь показывает, как вы можете манипулировать консолью намного мощнее, чем я знал. То, что я написал изначально, по-прежнему применимо и может быть полезно, если у вас нет этих возможностей, возможно, на другом языке.
Сохраните логотип и первоначально сгенерированное состояние массива, а затем, когда вы очистите консоль, снова запишите сохраненные значения, вместо того, чтобы использовать ту же процедуру генерации.
Как уже говорили другие, консоль не предназначена для такого рода операций, поэтому вам придется обходить ее.
Другим вариантом может быть запись в строку или построитель строк, а не непосредственно в консоль, а затем всякий раз, когда консоль нуждается в обновлении, очищайте ее вывод и записывайте свою «выходную» строку / поток в консоль. Это позволит вам выполнять строковые операции / регулярные выражения и т. Д. Для выходного текста, чтобы удалить / оставить определенные элементы на месте.
Однако это потребует значительных накладных расходов на консоль, поскольку в конечном итоге вы перепечатываете весь вывод при каждом обновлении.
Решением этого может быть сохранение параллельного строкового / потокового представления того, что вы записываете на консоль, затем, когда вам нужно очистить, вы можете очистить строковое представление, очистить консоль, а затем записать строку в консоль снова. Таким образом, вы добавите только дополнительную операцию записи в вашу обычную запись, и основная дополнительная работа произойдет, только когда вы очистите консоль.
Что бы вы ни делали, запись в консоль никогда не бывает быстрой операцией, и если вы выполняете много операций, когда в консоль записываются данные, это может существенно снизить производительность вашего приложения.