text adventure game problem
André
andre.roberge at gmail.com
Tue Apr 8 21:25:20 EDT 2008
On Apr 8, 10:01 pm, corvettecra... at gmail.com 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.
> How do I fix this?
quick guess: define gold_taken as a global variable and initialize it
outside of the function.
Warning: avoid global variables if at all possible.
;-)
André
More information about the Python-list
mailing list