所以,最后我到了LPTHW的终点,我正在创建自己的文字冒险游戏类型。
我想将保存功能合并到游戏中(通过使用文件写入来增加)。此外,游戏可以提供相对于游戏中的位置的提示。我基本上需要的是...在while循环中会有很多用户输入(raw_input)的提示。
我希望能够随时键入SAVE或HINT来触发功能。我该如何做,所以我不必每次都创建相同的条件? (例如elif action == "HINT": print "..."
)
有没有办法创建一些全局表达式,以便每次在提示符中键入时我都可以对它们进行操作?我将创建一个带有字典的模块,当玩家出现在某个位置时,该模块将引用某个提示。我只想避免在整个地方放置相同的条件。
答案 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
如果这不起作用,那么抱歉,我是新的。