文本游戏:如何在类中存储命令

2024-05-15 18:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个文字游戏(各种小的文字游戏,直到我完全舒服为止),而且会有很多命令。例如:

如果玩家在“学分”屏幕上。如果有一个中央命令,例如“帮助”。如何让命令“help”列出所有可用的命令?在

我要问的是,如何将所有自定义命令存储在一个类中,然后调用它们?或者有可能吗?在


Tags: 命令屏幕玩家help学分中央文字游戏
3条回答

最好的第一件事可能是函数是python中的一类对象。在

因此,您可以学习如何使用dict将字符串(帮助主题)映射到函数(它可能以某种方式显示您想要的内容)。在

available_commands = {"Credits": [ helpcmd1, helpcmd2, ...],
                      # ... other screens and their command help functions
                     } 
if current_screen in available_commands.keys (): 
  for command in available_commands [current_screen]:
    command ()
else:
  displayNoHelpFor (current_screen)

module cmd经常被忽略,但听起来正是您可能需要的。正如他们所说的,batteries are included。在

首先,请使用搜索功能,或至少谷歌。如果你没有证明你已经做了你应该做的研究,不要指望帮助。在

也就是说,这里有一个例子可以让你开始。您可以编写一个函数来接受来自键盘的输入,并使用条件语句输出正确的信息:

class MyClass():

    def menu(self):
        strcmd = raw_input('Enter your input:')
        if strcmd == "help":
            self.help_func()
        elif strcmd == "exit":
            sys.exit(0);
        else:
            print("Unknown command")

    def help_func(self):
        print("Type 'help' for help.")
        print("Type 'exit' to quit the application.")

    # ...

如果您想变得花哨,可以将函数指针存储在字典中,完全避免使用条件语句:

^{pr2}$

对于那些对Python有基本了解的人来说,基于文本的菜单是无需考虑的。您必须自己找出如何正确地实现输入和控制流。这是谷歌最热门的结果之一:

http://www.cyberciti.biz/faq/python-raw_input-examples/

相关问题 更多 >