如何在控制台中最佳绘制?

10 投票
6 回答
21741 浏览
提问于 2025-04-11 09:16

我正在尝试用Python写一个控制台的乒乓球游戏(就是那种终端,不是游戏机),但是我在重新绘制游戏画面时遇到了困难。

我想用一个二维数组来当作位图,更新这个数组来反映球和球拍的新位置,然后把每一行转换成字符串并打印出来。不过这样的话,之前的“画面”就会留在那儿,如果游戏的尺寸比控制台窗口小,旧的画面就会一直显示。

有没有办法从控制台删除字符?我听说'\b'这个方法不太可靠。

或者有没有更简单的方法可以在这种应用中输出到控制台呢?

6 个回答

4

其实有两个库可以解决这个问题,一个是比较老的curses,另一个是比较新的S-Lang。curses在画线条的时候容易出问题,尤其是在Windows系统和unicode控制台上(它对unicode的支持很差)。而S-Lang的屏幕管理功能要好得多。

虽然我在Python中没有使用过这两个库,而且看起来curses的支持更好,但在C语言中,我因为这些问题而决定把我的代码换成S-Lang,而且其实我一直都不太喜欢curses的接口。

6

看起来Python有一个叫做curses的库可以用。

你可以在这里找到相关的文档:https://docs.python.org/library/curses.html

7

可以试试urwid这个库。它里面有一个例子是动画柱状图的模拟器。这个柱状图可以很好地清除屏幕,不会留下之前“框架”的残影。

撰写回答