2017-12-05 10 views
3

私はPythonで次のコードを作った。どこでdeck = deck_of_cards()。私の質問は、2番目のカードを扱う前に、各プレイヤーに最初のカードを渡す必要があるように、2番目の機能を修正する方法です。今のところ、他のプレイヤーにカードを渡す前に、2枚のカードをプレイヤーに渡しているように見えますが、それを修正する方法はわかりません。あなたが最初の車のためのすべての選手を反復処理してループのためにあなたを交換する必要が2枚目のカードを扱う前に、各プレイヤーに1枚のカードを扱う - ブラックジャックゲーム

import random 
def deck_of_cards(): 
    suits = ['D', 'C', 'H', 'S'] 
    denominations = ['2', '3', '4', '5', '6', '7', '8', 
        '9', 'T', 'J', 'Q', 'K', 'A'] 
    deck = [] 
    for suit in suits: 
     for denomination in denominations: 
      ds = denomination + suit 
      deck.append(ds) 

    random.shuffle(deck)  
    return deck 

def deal_cards(deck, players): 
    hands = [] 

    for j in range(players): 
     player_hand = [] 
     for i in range(2): 
      cards = deck.pop(0) 
      player_hand.append(cards) 

     hands.append(player_hand) 
    return hands 

答えて

3

、その後、第二:ここ

def deal_cards(deck, players): 
    hands = [[] for player in range(players)] 

    for _ in range(2): 
     for hand in hands: 
      hand.append(deck.pop(0)) 

    return hands 
+1

問題はplayer_hand' 'の実装です。反復を開始し、 'player_hand'をインスタンス化し、次に各プレイヤーにその手を追加します。あなたは各プレイヤーのために新しい手が必要です。 'hand'属性と' add_to_hand() 'メソッドを持つ' Player'クラスはきれいです。 – pstatix

+0

はい、今修正しました。 –

+1

それはうまく動作するすべての集中的な目的のためです。しかし、どのプレーヤーがどのような手を持っているかをどのように知るのですか?私はクラスデザインで解決するためにそれをOPに任せます。解決策は質問に答えます。 – pstatix

関連する問題