2015-06-07 33 views
1

我試圖做一個非常簡單的21點遊戲。當你得到兩張牌時,如果它們都是整數或字符串,一切都沒問題,但如果兩張牌發出的是字符串和整數,我會得到一個錯誤。作爲一個整數處理一個字符串

我該如何做到這一點,如果你得到了7和女王處理,女王將被視爲10,總共給你17?

#imports 
import random 

Jack = 10 
Queen = 10 
King = 10 
Ace = 1 or 11 

Cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'Jack', 'Queen', 'King', 'Ace'] 
#Faces = Jack, Queen, King, Ace 
print('Welcome to Blackjack!\n\nHere are your cards: \n ') 
Card1 = random.choice(Cards) 
Card2 = random.choice(Cards) 
Total = Card1 + Card2 
print(Card1,'and a', Card2, '. Your total is', Total) 






#print(int(Jack + Ace)) 
+0

你到目前爲止嘗試過什麼?向我們展示用於轉換爲整數的方法的代碼,並解釋其失敗的原因。 – HyperNeutrino

回答

2

使用一個字典映射卡值:

Cards = {"1": 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, 'Ace': 10} 

#Faces = Jack, Queen, King, Ace 
print('Welcome to Blackjack!\n\nHere are your cards: \n ') 
keys = list(Cards) 
Card1 = random.choice(keys) 
Card2 = random.choice(keys) 
Total = Cards[Card1] + Cards[Card2] 
print(Card1, 'and a', Card2, '. Your total is', Total) 

或者使用.items:

Cards = {"1": 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, 'Ace': 10} 

#Faces = Jack, Queen, King, Ace 
print('Welcome to Blackjack!\n\nHere are your cards: \n ') 
c = list(Cards.items()) 
Card1 = random.choice(c) 
Card2 = random.choice(c) 
Total = Card1[1] + Card2[1] 
print(Card1[0], 'and a', Card2[0], '. Your total is', Total) 
+0

如果你從不使用它,爲什麼會有'Cards2'字典? – Ryan

+0

@Ryan沒有,這是剩下的東西 –

+0

你能解釋一下'Total = Cards [Card1] + Cards [Card2]'line嗎?爲什麼我不能使用'Total = Card1 + Card2' – Ryan

2

使用卡這樣的映射: -

import random 

Jack = 10 
Queen = 10 
King = 10 
Ace = 1 or 11 

Cards_map = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 'Jack': 10, 'Queen': 11, 'King': 12, 'Ace': 13} 
Cards=list(Cards_map) 
#Faces = Jack, Queen, King, Ace 
print('Welcome to Blackjack!\n\nHere are your cards: \n ') 
Card1 = random.choice(Cards) 
Card2 = random.choice(Cards) 
Total = Cards_map[Card1] + Cards_map[Card2] 
print(Card1,'and a', Card2, '. Your total is', Total) 
1

使用字典爲:

Cards = {1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:10, 11:'Jack', 12:'Queen', 13:'King', 14:'Ace'} 

print('Welcome to Blackjack!\n\nHere are your cards: \n ') 
Card1 = random.choice(Cards.keys()) 
Card2 = random.choice(Cards.keys()) 
Total = Card1 + Card2 
print(Cards[Card1],'and a', Cards[Card2], '. Your total is', Total) 
相關問題