0

我正在制作一个文本 rpg,我需要一些帮助,我不完全确定如何解释。

我需要这样做,以便用户可以输入诸如“检查键”之类的内容,并且它将打印“它是键”。

我正在使用 2 个文件。

main.py 引擎.py

main.py 需要能够将对象附加到文件 engine.py 中的字典中

如果 engine.py 有

objects = {

}

并且 main.py 有

key = {'it's a key', 'key taken'}

engine.objects.append(key)

我的主循环应该能够像

if choice[0] == 'examine':
    if choice[1] == anything in objects:
        print whatever object[0]

如果这有任何意义,你能指出我正确的方向吗?

编辑:我不能附加到字典。

    Traceback (most recent call last):
  File "...\main.py", line 5, in <module>
    engine.objects.append(key)
AttributeError: 'dict' object has no attribute 'append'

EDIT2:很抱歉在这方面是个菜鸟。每当我输入“检查”时,没有第二个参数它会出错并关闭。我知道为什么,但我不知道如何解决它。

4

2 回答 2

0

引擎对象应该是一个列表,所以你可以在那里附加键,现在我不明白为什么你需要创建 2 个不同的文件,但我会做一个小例子,也许它可以更好地指导你:

choices = {'what's your name': 'I am jorge beans', 'left': 'there is a door',
              'punch': 'ouch!'}

if user_choice in keys:  
    # this way you examine the key values in the choices dictionary so you
    # don't need the objects list
    print choices[user_choice]

如果您再详细说明您的问题,我肯定会更具体地回答我的问题。祝你好运!

于 2012-08-02T22:44:01.263 回答
0

类中没有.append()方法dict

要将键/值对插入字典d

d[key] = value

检查是否d包含键并获取对应的值:

command, obj = "examine box".split()
if command == 'examine':
   if obj in d:
      print d[obj]

尽量避免可变的全局变量,例如engine.objects. 您可以将对它的访问封装在一个类中。

例如,您可以基于cmdstdlib 中的模块来构建您的程序。

于 2012-08-02T22:44:41.770 回答