2017-08-07 3 views
0

私はPython 3でブラックジャックシミュレータを作成しようとしていますが、扱うカードに数値を割り当てる関数を定義しようとしています。私は私の機能を呼び出すときに間違いをしていると信じています。Python 3で関数を呼び出すことで文字列に数値を代入する

{ 
import random 
import CardVal 

cards = [ 
'AS', '2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', 'TS', 'JS', 'QS', 'KS', 
'AC', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', 'TC', 'JC', 'QC', 'KC', 
'AD', '2D', '3D', '4D', '5D', '6D', '7D', '8D', '9D', 'TD', 'JD', 'QD', 'KD', 
'AH', '2H', '3H', '4H', '5H', '6H', '7H', '8H', '9H', 'TH', 'JH', 'QH', 'KH' 
] 
decks = 6 * cards 


player = [] 
dealer = [] 

for i in range(2): 
    player.append(decks.pop(random.randrange(len(decks) - 1))) 
    dealer.append(decks.pop(random.randrange(len(decks) - 1))) 


print('Players cards:', player) 
print('Dealers card:', dealer[1]) 


total = 0 
for i in range(len(player)): 
    CardVal.card_value(player[i]) 

    total += player[i] 
} 

そして、ここで私はただ、辞書を使用

{ 
def card_value(card): 
    if '2' in card: 
     card = 2 
    elif '3' in card: 
     card = 3 
    elif '4' in card: 
     card = 4 
    elif '5' in card: 
     card = 5 
    elif '6' in card: 
     card = 6 
    elif '7' in card: 
     card = 7 
    elif '8' in card: 
     card = 8 
    elif '9' in card: 
     card = 9 
    elif 'T' in card or 'J' in card or 'Q' in card or 'K' in card: 
     card = 10 
    elif 'A' in card: 
     card = 11 
} 
+1

を..あなたは – Idos

+0

何の出力を得ていますか?あなたは何を得ると思いますか? –

+1

中括弧は何ですか? – user2357112

答えて

0

を呼び出しています関数です。代わりに辞書を使用し

def card_value(card): 
    values = {'T': 10, 'J': 10, 'Q': 10, 'K': 10, 'A': 11} 
    if card[0].isdigit(): 
     return int(card[0]) 
    else: 
     return values[card[0]] 
+0

カードストリングにはスーツと「AS」と「9H」 –

+0

@ robert_x44 ^の値があるので、すべてのTがスーツに関係なく10であることを知るにはコードが必要です。 Idkは辞書でそれを行う方法 –

+0

@ J.Moz編集、ちょうど '[0]'で索引をつけました。 –

関連する問題