我正在使用Python开发一个命令行游戏,我想实现一个为玩家提供时间限制的功能。基本上我想要做的是更新第一行(打印后)来自:
"5.."
"5 + 3 = ?"
到:
"5..4..3..2..1..Lost"
"5 + 3 = ?"
5秒后
print "5..3..2..1..Lost"
print "5 + 3 = ?"
答案 0 :(得分:2)
print(num, end='\r')
end=
关键字就是这样的原因,print()
以换行符\n
结尾,但这可以替换为任何字符串,例如以回车符结束行而不是返回光标到当前行的开头。您将需要from __future__ import print_function
使用python2.7
对于同时接收输入,您需要使用threading模块并在线程中打印更新计数器
import time
from _thread import *
def printcount(secs):
i=5
while i != 0:
print(i, end='\r')
i -= 1
time.sleep(secs)
start_new_thread(printcount, (1))
答案 1 :(得分:0)
如果您正在开发游戏,则需要完全控制控制台输出,而不仅仅是当前行。你需要类似Python的内置curses
模块。
看看我使用curses创建的this little game,它会在整个屏幕上修改控制台输出,这样可能会有所帮助。