2013-10-13 43 views
1

我目前正在進行文本冒險,它應該有一個或多或少複雜的戰鬥系統。爲了創造這種效果,我決定生成一個16x16瓦片戰場,它將用ASCII字符表示。但是,由於戰鬥可能不止一次,我不想多次重印戰場,而是刪除「舊」戰場並將新情況打印到同一個地方。但我想,它不會與sys.stdout.write()sys.stdout.flush()工作,因爲必須刪除多行。所以我的問題是:我如何實現我的目標?目前,我打開一個新的控制檯窗口,在那裏所有的東西都重印,這是一個呃...不是很優雅。如何刪除python控制檯窗口中的多行?

另一個問題是跨平臺使用該程序。

回答

1
+0

啊,我知道我忘了一些東西:這個解決方案應該在Windows和Unix上工作,所以我猜想詛咒是行不通的。 – TheWormKill

+0

我相信有一個Windows兼容的curses模塊,雖然它不在標準庫中。 – rlms

+0

我自己並沒有試過這個,但是這裏是一個針對windows編譯的curses:http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses否則,你可以在Windows上使用colorama(https:// pypi.python.org/pypi/colorama)。我做了一個簡單的包裝,你可能會或可能找不到幫助:https://github.com/thebjorn/doscmd-screen – thebjorn