0
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

最初の 5 ブロックでは問題なく動作し、その後はデッキ全体の合計値 (95) になりました。これを修正するにはどうすればよいですか? ハンドにあるカードの価値だけを教えてくれるはずです。ここで私は何を間違えましたか?

4

2 に答える 2

5

あなたのライン:

for hand in player_cards1:

おそらくあなたが期待することをしていないのでしょう。handとplayer_cards1を比較すると思われるようです。代わりに、変数handを介してアクセスするplayer_cards1にイテレーターを作成します(つまり、ハンドが再割り当てされ、['A'、'Q']ではなくなります)。より簡単な例を次に示します。

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

その3行のプログラムは次のように出力します。

1
2
3

代わりに、あなたはおそらく手札のカードを繰り返したいでしょう、例えば:

for card in hand:
  //code here to look up the value of the card and add it to a running total

また、カードの値を追跡する方法を再考することをお勧めします。これは非常に面倒な作業になるためです。。。ヒント:カードの額面価格を使用できない特殊なケースはごくわずかです。

于 2012-07-31T23:24:11.813 に答える
2

答えをより教訓的にするために編集されました。

a を使用しdictて、各カードのスコアを保存します。

card_points = { 'A': 11, '2': 2, ... }

card次に、各inを反復処理しhard、その値を辞書で調べて、スコアを合計して合計を求めることができます。

sumここで役立つ可能性のある関数を見たいと思うかもしれません。

于 2012-07-31T23:15:45.080 に答える