2016-12-31 48 views
0

我正在製作一個簡單的21點遊戲。將列表中的值與Python中的整數相關聯

deck = ['Ace',2,3,4,5,6,7,8,9,10,'Jack','Queen','King'] 

card_1 = random.choice(deck) 
card_2 = random.choice(deck) 

def my_hand(card_1,card_2): 
    total = card_1 + card_2 
    if total > 21: 
     return "Bust!" 
    elif total == 21: 
     return "Blackjack!" 
    elif total < 21: 
     return "Hit again?" 

print card_1,'and',card_2 
my_hand(card_1,card_2) 

如何在列表中分配特定項目的整數值?也就是說,我想將'Ace'分配給整數1或11,'Jack','King'和'Queen'等於10.

謝謝。

+0

我不是你的願望清晰。你想更新'deck'列表嗎?或者你想在另一個數據結構中將「Ace」與1或11映射? –

+0

爲什麼要從「Ace」等名稱開始,這些名稱僅適用於人類?只需使用數字來表示整個程序中的卡片,並且只將它們轉換爲輸出給人類的單詞。僅僅因爲計算機語言*可以使用字母串並不意味着這是個好主意。 –

回答

3

使用字典(我建議你將所有鑰匙串):

deck = {'Ace':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10, 
'Jack':10,'Queen':10,'King':10} 
+0

這會工作,但很愚蠢。卡片應該像數字一樣表示,並且只有在輸出給人類時才轉換爲「Ace」這樣的名字。 –

相關問題