有时限/倒计时输入

2024-05-19 01:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还很陌生,我想为我的学生编写一个(不是计算机)语言培训器。就像计时器在后台运行,学生必须快速输入单词来减慢/恢复倒计时-否则倒计时将达到零并显示一些“游戏结束”消息。(就像当一个特别探员不得不在计时器快到零的时候拆除炸弹一样。)

当然,有很多关于线程的解释听起来是正确的方法,但是到目前为止,我还没有发现任何一个计时器与(时间限制)raw_input结合在一起的东西。你们中有谁能给我一个我忽略的教程/讨论的指针吗?在


Tags: 方法语言游戏消息计算机时间单词线程
2条回答
import threading
import time
import os

def ask():
    """
    Simple function where you ask him his name, if he answers
    you print message and exit
    """
    name = raw_input("Tell me your name, you have 5 seconds: ")
    exit_message = "Wohoho you did it..Your name is %s" % name
    exit(exit_message)

def exit(msg):
    """
    Exit function, prints something and then exits using OS
    Please note you cannot use sys.exit when threading..
    You need to use os._exit instead
    """
    print(msg)
    os._exit(1)

def close_if_time_pass(seconds):
    """
    Threading function, after N seconds print something and exit program
    """
    time.sleep(seconds)
    exit("Time passed, I still don't know your name..")

def main():
    # define close_if_time_pass as a threading function, 5 as an argument
    t = threading.Thread(target=close_if_time_pass,args=(5,))
    # start threading
    t.start()
    # ask him his name
    ask()

if __name__ == "__main__":
    main()

你不必通过线程来完成,你可以在一个线程中以特定的频率运行你的“逻辑”,每次迭代都通过时间增量方法重新计算倒计时。这是多少电子游戏生产。在

假设您以60hz的频率运行此伪代码方法:

delta = timenow-timelast;
countdown -= delta;
if(input)
    processInputHere;

您应该能够将伪代码转换为python代码以使其正常工作

相关问题 更多 >

    热门问题