Bool在Python中的功能,用于基于文本的冒险

时间:2013-06-18 05:42:24

标签: python text path boolean adventure

好的,所以我试图设置一个bool,这样如果一个项目被采用它变为True,下次如果它是True然后它需要一个不同的路径,这是我第一次用Python写一些东西,所以请原谅不好的代码约定。无论如何,我需要将bool设为False,直到笔记被取出,并且当它是我希望它变为True时。我将来可能会遇到的一个问题是,在一个部分中,玩家会回到这个房间,我怎么能在他们这样做的时候保持真实?

def first_room(Note):
    choice1_1 = raw_input('The house looks much larger than it did from the outside. You appear in a room, to your left is a closet, to your right is a pile of junk, in front of you is a door, and behind you is the exit.')
    choice1_1 = choice1_1.lower()
    if choice1_1 == 'left' or choice1_1 == 'l' or choice1_1 == 'closet':
        if note == False:
            choice1_c = raw_input('You open the closet and check inside, there is a note. Do you take the note? (Y/N)')
            choice1_c = choice1_c.lower()
            if choice1_c == 'y':
                print 'You took the note.'
                first_room(True)
            if choice1_c == 'n':
                print 'You leave the note alone.'
                first_room(False)
        else:
            print 'The closet is empty.'
            first_room(True)
first_room(False)

2 个答案:

答案 0 :(得分:2)

这里有几个问题:

首先,假设整个世界都熟悉你正在工作的环境,你就制定了你的问题。嗯,我们不是。 :-)不知何故,你似乎希望函数记住note的值,但我不确定。

更多问题:

def first_room(Note):

在Python中, class 名称以大写字母开头,变量名称应以小写字母开头。

if note == False:

从不,永远这样做!您可以直接测试布尔值,例如:

if not note:

您还可以交换if的两个手臂,使​​其听起来不那么愚蠢:

if note:
    # ... do something ...
else:
    # ... do something else ...

无论如何,我建议你参加基础编程课程......

答案 1 :(得分:0)

您需要某种数据结构来存储房间的状态。 dict可能是一个不错的选择

例如:

rooms = {}
rooms['first_room'] = {'note': False}

然后你可以像这样检查笔记的状态

if rooms['first_room']['note']:
    ...

并像这样更新

rooms['first_room']['note'] = True

在学习的这个阶段,不要害怕让rooms成为全局变量