Editar: La respuesta here muestra cómo se puede manipular la consola mucho más poderosa de lo que era consciente. Lo que originalmente escribí aún se aplica, y podría ser útil si no tiene estos recursos disponibles, tal vez en un idioma diferente.
tienda el logotipo y el estado generado inicialmente de la matriz y luego cuando se desactiva la consola escribir los valores guardados de nuevo, en lugar de utilizar el mismo procedimiento de generación.
Como han dicho otros, la consola no está diseñada para este tipo de operación, por lo que debe evitarla.
Otra opción podría ser escribir en una cadena o en un generador de cadenas en lugar de en la consola directamente, luego cada vez que la consola necesite actualizarse, borre su salida y escriba la secuencia/flujo de salida en la consola. Esto le permitiría realizar operaciones de cadena/expresiones regulares, etc. en su texto de salida para eliminar/dejar cosas específicas en su lugar.
Sin embargo, esto implicaría una gran sobrecarga de la consola ya que terminaría reimprimiendo toda la salida en cada actualización.
Una solución para ESO podría ser mantener una representación de cadena/secuencia paralela de lo que escribe en la consola, luego, cuando necesite borrar, puede borrar la representación de cadena, borrar la consola, luego escribir la cadena en el consola de nuevo. De esta forma, solo agregaría una operación de escritura adicional a su escritura habitual, y el mayor trabajo adicional ocurriría solo cuando borre la consola.
Hagas lo que hagas, escribir en la consola nunca es una operación rápida, y si estás haciendo muchas operaciones donde se escriben cosas en la consola, puede ser un lastre significativo para el rendimiento de tu aplicación.
Esto es intrigante. Debo verificar esto. – LeppyR64
así que si uso Console.SetWindowSize (ancho, alto) ;, el ancho es 60, alto 40. ¿cómo hago para borrar la mitad inferior de la pantalla? – user47415
Borrar (0,20,60,20); – Diadistis