【发布时间】:2022-01-02 01:28:56
【问题描述】:
我正在学习如何从头开始编写 C# 代码。现在,我正在学习如何在命令行上构建场景并根据需要进行更新。
我想做的一部分是“在生成时滚动文本”。
场景是一个方形命令行(大小为 100 x 40),并由一个“#”字符框勾勒。这是展示一切的画布。
当用户通过简单的输入进行交互时,程序将提供文本反馈,就像基于文本的游戏一样。
但是,与普通的基于文本的游戏不同,我不能让命令行的自然流动来移动画布。换句话说,如果我允许命令行自然地运行,那么画布会慢慢向上移动,直到它不再可见。
我需要一种方法来读取屏幕上已经显示的内容并将其存储在内存中。然后,我可以删除屏幕的一部分并将之前复制的信息向上粘贴,为新信息腾出空间。
这是我想做的模型:
我的问题是:有没有办法只“读取”命令空间的特定部分并存储到内存中?
我知道您可以存储打印时正在打印的任何内容,或者我可以跟踪一定数量的先前显示的信息并再次打印,但我想“复制,然后粘贴移动”一部分屏幕。
PS:这是我试图避免的 Image 2: Undesirable outcome
【问题讨论】:
-
您无需知道屏幕上的内容。只需清除并写入即可。您可以跟踪已编写的内容以及需要更新的内容。
标签: c# command-line command-line-interface