I am trying to program a simple text based game. In order to do this, I am having the user go to three separate rooms to complete a task and receive a piece. In order to do this, I have a value set as `False` then, upon completion of the room, I have a `return` statement used to change the Boolean value to `True`. When all three room functions return a `True`, then I set that to open a function that progresses the game. As of know, however, the return does not take place, and thus the Boolean values remain unchanged.
Here is an example of one door function:

```
def door1(incomp1):
    if incomp1 == False:
        print 'You enter door 1 and find a hideous internet troll.'
        print "The troll says, 'LOOK AT THIS LOSER'"
        options = ["YOU'RE THE LOSER", "I don't care." , "YOUR MOM IS FAT"]
        options2 = [1,2,3]
        for x in options:
            print "\t :> %s" % x
        choice1 = raw_input("What is your response? :>")
        if ('loser' in choice1) or ('fat' in choice1):
            print "You are sucked into the troll's behaviour and are driven insane"
            print "After three days of insanity, you starve to death"
            dead()
        elif 'care' in choice1:
            print 'The troll cannot feed off of your anger.'
            print 'The troll starves and you recover one piece of the lever from his stomach.'
            change()
            entrywayopen()
            return incomp1 == True
        else:
            unknown()
            change()
            door1(incomp1)
    elif incomp1 == True:
        print 'You already recovered the piece from room 1.'
        entrywayopen()

```

So, I have `incomp1` already at a value of `False` when the function is called. The user must get the correct answer, in this case the `elif` statement. At the end, I have it to `return incomp1 == True`. Yet, the value remains unchanged. My endgame in this room strategy is to return a value of `True` for the statement `if door1(incomp1) and door2(incomp2) and door3(incomp3):`. What is causing the Boolean change in value to not be returned?