[Tutor] Blackjack 2 - was Re: (no subject)
Alan Gauld
alan.gauld at btinternet.com
Sat Jul 2 10:33:39 CEST 2011
Please provide a meaningful subject!
"David Merrick" <merrickdav at gmail.com> wrote ># Blackjack
> class BJ_Game(object):
> """ A Blackjack Game. """
> def __init__(self, names):
> self.players = []
> for name in names:
> player = BJ_Player(name)
> self.players.append(player)
>
> self.dealer = BJ_Dealer("Dealer")
>
> self.deck = BJ_Deck()
> self.deck.populate()
> self.deck.shuffle()
>
> bet = 0
> bet = Bet()
> bet.betting(stash)
> def main():
> print("\t\tWelcome to Blackjack!\n")
> stash = 0
> names = []
> number = games.ask_number("How many players? (1 - 7): ", low = 1,
> high > .....
>
> game = BJ_Game(names)
> File "I:/Python/programs/blackjackBetting.py", line 224, in
> <module>
> main()
> File "I:/Python/programs/blackjackBetting.py", line 216, in main
> game = BJ_Game(names)
> File "I:/Python/programs/blackjackBetting.py", line 147, in
> __init__
> bet.betting(stash)
> NameError: global name 'stash' is not defined
It says stash is not defined. That means there is no
variable named stash visible to Python inside the
init method of BJ_Game.
The only stash defined is in the main function.
variables defined inside a function (including main()
are *only* visible within that function, nowhere else.
But you have lots of missing names all over.
I suggest you review yuour code before trying
to run it, otherwise you will be seeing a lot of
these error messages.
You will fund information about naming and scope
in the "Whats in a name?" topic of my tutorial.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list