Reputation: 821
hand = ['A','Q']
points = 0
player_cards1 = ['2']
value1 = 2
player_cards2 = ['3']
value2 = 3
player_cards3 = ['4']
value3 = 4
player_cards4 = ['5']
value4 = 5
player_cards5 = ['6']
value5 = 6
player_cards6 = ['7']
value6 = 7
player_cards7 = ['8']
value7 = 8
player_cards8 = ['9']
value8 = 9
player_cards9 = ['T']
value9 = 10
player_cards10 = ['Q']
value10 = 10
player_cards11 = ['K']
value11 = 10
player_cards12 = ['J']
value12 = 10
ACE11 = ['A']
value13 = 11
for hand in player_cards1:
flag = True
if flag == True:
points = points + value1
for hand in ACE11:
flag = True
if flag == True:
points = points + value13
for hand in player_cards2:
flag = True
if flag == True:
points = points + value2
for hand in player_cards3:
flag = True
if flag == True:
points = points + value3
for hand in player_cards4:
flag = True
if flag == True:
points = points + value4
for hand in player_cards5:
flag = True
if flag == True:
points = points + value5
for hand in player_cards6:
flag = True
if flag == True:
points = points + value6
for hand in player_cards7:
flag = True
if flag == True:
points = points + value7
for hand in player_cards8:
flag = True
if flag == True:
points = points + value8
for hand in player_cards9:
flag = True
if flag == True:
points = points + value9
for hand in player_cards10:
flag = True
if flag == True:
points = points + value10
for hand in player_cards11:
flag = True
if flag == True:
points = points + value11
for hand in player_cards12:
flag = True
if flag == True:
points = points + value12
print points
It ran fine in the first five blocks and then it just gives me to total value of the whole deck (95). How do I fix this? It's supposed to give me the value of the cards in the Hand only. What did I do wrong in here?
Upvotes: 0
Views: 174
Reputation: 838056
Edited to make the answer more didactical.
Use a dict
to store the scores for each card.
card_points = { 'A': 11, '2': 2, ... }
Then you can iterate over each card
in hard
, look up its value in the dictionary, and sum the scores to give the total.
You might want to look at the sum
function which could be useful here.
Upvotes: 2
Reputation: 6356
Your line:
for hand in player_cards1:
Probably is not doing what you expect it to do. It looks like you think it's going to compare hand and player_cards1; instead what it does is create an iterator on player_cards1 that you access via the variable hand (meaning that hand is getting re-assigned, and will no longer be ['A', 'Q']). Here's a simpler example:
a = [1,2,3]
for item in a: //creates an iterator around a, with the variable item to refer to each list member
print item
That three line program would output:
1
2
3
Instead, you probably want to iterate over the cards in the hand, e.g.:
for card in hand:
//code here to look up the value of the card and add it to a running total
I'd also suggest rethinking the way you're tracking card values, as it's going to be very cumbersome . . . hint: there's only a few special cases where you can't use the card's face value.
Upvotes: 5