-2
這是我二十一點遊戲,我每次運行它的時候,我得到這個錯誤:二十一點遊戲錯誤?
Traceback (most recent call last):
File "...", line 42, in <module>
mydeck = deck()
File "...", line 9, in deck
deck.append(suit+rank)
TypeError: Can't convert 'int' object to str implicitly
(我拿出的位置和文件名),我不知道爲什麼這
正在發生。有人可以幫忙嗎?謝謝!
# Blackjack Game
import random
def deck():
deck = []
for suit in ['H','S','D','C']:
for rank in ['A',2,3,4,5,6,7,8,9,10,'J','Q','K']:
deck.append(suit+rank)
random.shuffle(deck)
return deck
def pCount(cards):
count = 0
aceCount = 0
for i in cards:
if(i[1] == 'J' or i[1] == 'Q' or i[1] == 'K' or i[1] == 10):
count += 10
elif (i[1] != 'A'):
count += int(i[1])
else:
aceCount += 1
if aceCount == 1 and count >= 10:
count += 11
elif aceCount != 0:
count += 1
return count
def playingHands(deck):
dealerhand = []
playerhand = []
dealerhand.append(deck.pop())
dealerhand.append(deck.pop())
playerhand.append(deck.pop())
playerhand.append(deck.pop())
while pCount(dealerhand) <= 16:
dealerhand.append(deck.pop())
return [dealerhand, playerhand]
game = ""
mydeck = deck()
hands = playingHands(dck)
dealer = hands[0]
player = hands[1]
while game != 'exit':
dealerCount = pCount(dealer)
playerCount = pCount(player)
print ('Dealer has: ')
print (dealer)
print ('Player, you have: ')
print (player)
if playerCount == 21:
print ('Blackjack! Player wins!')
break
elif playerCount > 21:
print ('Player busts! With '+playerCount+' points. Dealer wins!')
break
elif dealerCount > 21:
print ('Dealer busts! With '+dealerCount+' points. Player wins!')
break
game = input('What would you like to do? H: hit, S: stand? ')
if game == 'H':
player.append(deck.pop())
elif playerCount > dealerCount:
print ('Player wins with ' + playerCount + ' points')
print ('Dealer has ' + dealer + ' or ' +dealerCount + ' points')
break
else:
print ('Dealer wins!')
print ('Dealer has ' + dealer + ' or ' +dealerCount + ' points')
。 。 。 。 。 。 。 。 。 .. 。 。 。 。 。 。 。
.. 。 。 。 。 。 。 。
爲什麼在最後那怪異的點?另外,不要在print和函數的參數之間放置空格。 – Lucas