Python文本冒险-如何在每个提示中创建提示和保存
所以,我终于要结束LPTHW了,我正在创建我自己的文本冒险类型的游戏 我想在游戏中加入一个保存功能(可能通过使用文件写入)。此外,游戏还可以根据您在游戏中的位置为您提供提示。我基本上需要的是: 在while循环中会有大量提示用户输入(原始输入)。我希望能够随时键入保存或提示来触发函数。我如何做到这一点,使我不必每次都创建相同的条件?(例如Python文本冒险-如何在每个提示中创建提示和保存,python,python-2.7,global,command-prompt,Python,Python 2.7,Global,Command Prompt,所以,我终于要结束LPTHW了,我正在创建我自己的文本冒险类型的游戏 我想在游戏中加入一个保存功能(可能通过使用文件写入)。此外,游戏还可以根据您在游戏中的位置为您提供提示。我基本上需要的是: 在while循环中会有大量提示用户输入(原始输入)。我希望能够随时键入保存或提示来触发函数。我如何做到这一点,使我不必每次都创建相同的条件?(例如elif action==“HINT”:打印“…”) 有没有办法创建一些全局表达式,以便每次在提示符中键入它们时,我都可以对它们进行操作?我将创建一个带有字典的
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
如果这不起作用,那么很抱歉,我是新来的。为什么不创建一个函数来测试用户是否提供了保存或提示,然后采取相应的行动?干杯亚历克西喜欢这样。它既简单又聪明。非常感谢。