On Apr 8, 8:01 pm, [EMAIL PROTECTED] wrote: > okay, I'm having this one problem with a text adventure game. It's > kind of hard to explain, but I'll do my best. > [code] > > def prompt_kitchen(): > global gold > gold_taken = False > while True: > prompt_kit = raw_input('>') > if prompt_kit == 'examine cabinet 1' and not gold_taken: > print '''This cabinet has a lot of cups in it with all > different > designs and shapes. Where are the people anyway? How come there's > nobody here? > In one of the cups you find 8 gold.''' > gold = gold+8 > gold_taken = True > pass4() > elif prompt_kit == 'examine cabinet 1' and gold_taken: > print \ > '''This cabinet has a lot of cups in it with all > different > designs and shapes. Where are the people anyway? How come there's > nobody here?''' > pass4() > > def pass4(): > global gold > print 'You have', gold, 'gold' > pass > [/code] > > Okay, now for my problem. > In the above function, there's the option to examine a cabinet and get > 8 gold. (everyone here knows that...but I'm just trying to state my > problem...) > Unfortunately, it kind of doesn't work. > After the first time I 'examine cabinet 1' in my game, I get 8 gold > and I can't get it again. > But, If I leave the room and come back to it, then it's as if I had > never gotten the gold the first time, and I can get it again.
That's because your function starts with "gold_taken = False". The easiest fix is to make gold_taken a global variable initialized outside the function, like you're already doing with gold. -- http://mail.python.org/mailman/listinfo/python-list