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

时间:2014-03-15 21:33:45

标签: python python-2.7 global command-prompt

所以,最后我到了LPTHW的终点,我正在创建自己的文字冒险游戏类型。

我想将保存功能合并到游戏中(通过使用文件写入来增加)。此外,游戏可以提供相对于游戏中的位置的提示。我基本上需要的是...在while循环中会有很多用户输入(raw_input)的提示。

我希望能够随时键入SAVE或HINT来触发功能。我该如何做,所以我不必每次都创建相同的条件? (例如elif action == "HINT": print "..."

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

3 个答案:

答案 0 :(得分:1)

如果您将输入分成一个功能,您可以轻松传递hint并轻松访问保存:

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

您还可以在此处添加检查,即用户保持在特定choices内(另一个参数),处理任何错误并且只有return有效输入。

答案 1 :(得分:0)

你应该使用字典

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})

答案 2 :(得分:0)

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

If raw_input == hint:
    print "whatever you want here"

或者,如果您需要提示根据您的位置而有所不同,您可以拥有一个变量,用于该房间的提示,并在每次进入新房间时更新,然后:

if raw_input == "hint":
    print hintvariable

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