如何让 Python (2.7.x) 程序输出类似 nethack 的 ASCII 图形?

Posted

技术标签:

【中文标题】如何让 Python (2.7.x) 程序输出类似 nethack 的 ASCII 图形?【英文标题】:How to make a Python (2.7.x) program output nethack-like ASCII graphics? 【发布时间】:2014-08-26 13:56:32 【问题描述】:

我正在寻找一个控制台游戏,它需要不断地输出 ASCII 图形帧,但我想知道如何使这个功能更加流畅。虽然我不相信nethack-console 游戏不是用 Python 编写的,但我正在研究它如何能很好地显示似乎不会四处移动的“动画”帧,并且没有清楚地显示图形是“ reprinted”,从而使图形非常一致,并且发生的任何动画“似乎都是在单个打印输出上完成的”。如果描述不够清楚,让我举个例子:

000X

如果“x”将向左移动一个单位,我想在控制台上看到这个:

00X0

而不是:

000X 00X0

【问题讨论】:

How to create ASCII animation in a console application using Python 3.x?的可能重复 最终你可以尝试使用\r 代替\n - 你将不得不在print 中使用, - 比如print '\r000X', 然后print '\r00X0',。但是有更好的解决方案,比如curses 【参考方案1】:

查看curses 模块或urwid 库,非常适合开始使用控制台应用程序。 Curses(和 urwid)允许您在缓冲区中绘制帧,然后仅在需要的地方更新屏幕。

【讨论】:

根据我的经验,curses 通常是做这些事情的最佳选择。

以上是关于如何让 Python (2.7.x) 程序输出类似 nethack 的 ASCII 图形?的主要内容,如果未能解决你的问题,请参考以下文章

python 如何让一个函数的输出写入到一个文件中?

在CentOS 6.X 上面安装 Python 2.7.X

查找哪些包支持 Python 3.x 和 2.7.x

Python 2.7.x 和 3.x 版本的重要区别

Python 2.7.x 和 3.x 版本的重要区别小结

如何让 Perl 和 Python 打印正在执行的程序的每一行?