Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.4:在仍然能够运行def'的情况下检查某些输入短语;s_Python_Python 3.x_Input_Phrase - Fatal编程技术网

Python 3.4:在仍然能够运行def'的情况下检查某些输入短语;s

Python 3.4:在仍然能够运行def'的情况下检查某些输入短语;s,python,python-3.x,input,phrase,Python,Python 3.x,Input,Phrase,在我使用Python3.4.2制作的一个简单的基于文本的游戏中,我想添加一个选项菜单。为此,我希望用户能够在聊天中随时输入“选项”,并弹出选项菜单。我一直在阅读类似的问题,但一直无法找到任何适合我的游戏,那里的一切都发生在各种Def中,没有while语句 提前谢谢 编辑:很抱歉信息不足。以下是我的代码片段: import time SetTimes=0 #Scrolling Up def Entering(SetTimes): if SetTimes>=1: ti

在我使用Python3.4.2制作的一个简单的基于文本的游戏中,我想添加一个选项菜单。为此,我希望用户能够在聊天中随时输入“选项”,并弹出选项菜单。我一直在阅读类似的问题,但一直无法找到任何适合我的游戏,那里的一切都发生在各种Def中,没有while语句

提前谢谢

编辑:很抱歉信息不足。以下是我的代码片段:

import time
SetTimes=0

#Scrolling Up
def Entering(SetTimes):
    if SetTimes>=1:
        time.sleep(0.1)
        print("\n")
        SetTimes-=1
        Entering(SetTimes)
    else:
        return


#Intro Developers
def Intro(SetTimes):
    print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
    print("blah blah blah")
    time.sleep(0.1)
    print("blah blah blah")
    time.sleep(0.1)
    print("blah blah blah")
    SetTimes=12
    Entering(SetTimes)
    SetTimes=2
    time.sleep(2)
    print("\n")
    Entering(SetTimes)
    Intro2(SetTimes)
基本上,我试图完成的是一个图形游戏,但图形是使用Ascii完成的。Entering(SetTimes)def用于为开场场景制作滚动效果,类似于旧游戏。游戏将由玩家在指定时间输入命令进行。例如,它可以读为“似乎有一条通向左边和右边的路径”,用户可以输入“左边”或“右边”,但只能在指定的时刻输入


我想问的是,是否有可能让它不断检查您输入的“选项”,同时不冻结游戏。

当您需要用户输入时,您需要检查用户输入。这是没有办法的

1) 重新构造代码 您可能应该使用一些
while
语句。通常代码看起来像:

init_everything()
while running:
    handle_input()
    update_everything()
    draw_everything() # or print or whatever
    if game_over():
        running = False

# display score or something
2) 使用多线程 不要这样做。您可以使用两个线程—一个运行游戏,另一个检查输入。但不要这样做。看起来您对Python/游戏开发/编程还不熟悉,这将太复杂和困难

3) 使用一些图书馆 不要自己做每件事。不要重新发明轮子。对于一些非常简单的东西来说,这可能有些过分,但您确实可以从一些库中受益。他很出色

结论
1)是最简单的方法,在您的情况下可能是最简单的方法3)从长远来看是最好的。不要使用2)

这是一个太宽泛的问题;您需要包含更多的上下文。你试过什么?你有代码要显示吗?Cyphase说了什么。为了帮助你,我们真的需要看一个。是的,有可能让一个程序在不冻结游戏的同时不断检查终端输入,但所需的代码有点棘手(并且取决于操作系统)。我强烈建议在Python技能提高之前不要实现此功能。