Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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文本冒险-如何在每个提示中创建提示和保存_Python_Python 2.7_Global_Command Prompt - Fatal编程技术网

Python文本冒险-如何在每个提示中创建提示和保存

Python文本冒险-如何在每个提示中创建提示和保存,python,python-2.7,global,command-prompt,Python,Python 2.7,Global,Command Prompt,所以,我终于要结束LPTHW了,我正在创建我自己的文本冒险类型的游戏 我想在游戏中加入一个保存功能(可能通过使用文件写入)。此外,游戏还可以根据您在游戏中的位置为您提供提示。我基本上需要的是: 在while循环中会有大量提示用户输入(原始输入)。我希望能够随时键入保存或提示来触发函数。我如何做到这一点,使我不必每次都创建相同的条件?(例如elif action==“HINT”:打印“…”) 有没有办法创建一些全局表达式,以便每次在提示符中键入它们时,我都可以对它们进行操作?我将创建一个带有字典的

所以,我终于要结束LPTHW了,我正在创建我自己的文本冒险类型的游戏

我想在游戏中加入一个保存功能(可能通过使用文件写入)。此外,游戏还可以根据您在游戏中的位置为您提供提示。我基本上需要的是:

在while循环中会有大量提示用户输入(原始输入)。我希望能够随时键入保存提示来触发函数。我如何做到这一点,使我不必每次都创建相同的条件?(例如
elif action==“HINT”:打印“…”


有没有办法创建一些全局表达式,以便每次在提示符中键入它们时,我都可以对它们进行操作?我将创建一个带有字典的模块,当玩家出现在某个位置时,字典将引用某个提示。我只是想避免把相同的条件放得到处都是。

如果您将输入分离到一个函数中,您可以传递一个
提示,并轻松访问save:

def user_input(prompt, hint):
    while True:
        ui = raw_input(prompt)
        if ui.lower() == "hint":
            print hint
        elif ui.lower() == "save":
            save()
        else:
            return ui

您还可以在此处添加检查,确保用户停留在特定的
选项中(一个附加参数),处理任何错误,并且只返回有效输入。

您可能应该使用字典

def do_save(*args,**kwargs):
    print "SAVE!"

def do_hint(*args,**kwargs):
    print "HINT!"

def do_quit(*args,**kwargs):
    print "OK EXIT!"

global_actions = {'SAVE':do_save,
           'HINT':do_hint,
           'QUIT':do_quit}

def go_north(*args,**kwargs):
   print "You Go North"

def go_east(*args,**kwargs):
   print "you go east"

def make_choice(prompt="ENTER COMMAND:",actions={},context_info={}):   
    choice = raw_input(prompt)
    fn = actions.get(choice.upper(),lambda *a,**kw:sys.stdout.write("UNKOWN CHOICE!"))
    return fn(some_context=context_info)


local_actions = {"NORTH":go_north,"EAST":go_east}
player_actions = dict(global_actions.items() + local_actions.items())
print "From Here You Can Go [North] or [East]"
result = make_choice(actions=player_actions,
                     context_info={"location":"narnia","player_level":5})

我不知道保存功能,但提示你可以有

If raw_input == hint:
    print "whatever you want here"
或者,如果您需要根据您的位置使提示有所不同,您可以为该房间的提示设置一个变量,并在每次进入新房间时进行更新,然后:

if raw_input == "hint":
    print hintvariable

如果这不起作用,那么很抱歉,我是新来的。

为什么不创建一个函数来测试用户是否提供了保存或提示,然后采取相应的行动?干杯亚历克西喜欢这样。它既简单又聪明。非常感谢。