我正在创建一个简单的两人棋盘游戏,每个玩家必须将棋子放在自己的棋盘上。我想做的是:
为两个玩家打开一个新的终端窗口(无论程序在哪个操作系统上运行),以便棋盘保存在变量中,但另一个玩家无法向上滚动以查看他们放置棋子的位置。
完全清除当前终端,以便两个玩家都无法滚动并看到另一个玩家的棋盘。我知道 unix 'clear' 命令,但它没有达到我想要的效果,并且不适用于所有操作系统(尽管这可能是我必须牺牲才能获得工作解决方案的东西)
我已尝试清除屏幕,但无法完全删除所有文本。我没有偏好;哪种方法更容易。另外,如果使用我没有想到的不同方法会更容易,那么欢迎所有其他建议。提前致谢!
编辑:其他解决方案看起来文本已被清除,但用户仍然可以向上滚动并查看已清除的文本。我想要一种方法来删除用户可以看到此文本的任何方式。
编辑2:请阅读其他答案和评论,因为它们提供了有关整个主题的大量信息。特别感谢@zondo。
最佳答案
考虑使用可移植终端处理库。它们抽象了常见任务的系统细节,例如删除“屏幕”(即终端),或将输出放置在“屏幕”上的特定位置(同样,意味着文本终端)。然而,为了有效地使用这样的库,您通常必须切换到在屏幕上生成输出的风格,而不是天真地打印
字符串。
curses
就是这样一个库(基于 C 库 ncurses )并包含在 Python 标准库中。要开始使用,请务必查看 curses
tutorial在 Python 官方文档中。
关于Python隐藏已经打印的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813667/