-3

好的,所以我试图设置一个布尔值,这样如果一个项目被取走,它就会变成 True,下一次如果它是 True,那么它会采用不同的路径,这是我第一次用 Python 编写东西,所以请原谅糟糕的代码约定。无论如何,在记笔记之前,我需要布尔为 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)
4

2 回答 2

2

这里有几个问题:

首先,假设全世界都熟悉你工作的环境,你就可以提出你的问题。好吧,我们不熟悉。:-) 不知何故,您似乎希望函数记住 的值note,但我不确定。

更多问题:

def first_room(Note):

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

if note == False:

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

if not note:

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

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

无论如何,我建议您参加基本的编程课程...

于 2013-06-18T05:53:18.690 回答
0

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

例如:

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

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

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

并像这样更新它

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

在你学习的这个阶段,不要害怕做rooms一个全局变量

于 2013-06-18T05:57:40.710 回答