Сначала вам нужна dect = {...}
внешняя функция, потому что она необходима для суммирования карт
Я предполагаю, что userhand
сохраняет двух игроков
for player in userhand:
print(sum(deck[cardname] for cardname in player))
или дольше, но проще для новичков
for player in userhand:
result = 0
for cardname in player:
result += deck[cardname]
print(result)
Если userhand
оставить только одного игрока, вы можете вложить sum()
print( sum(sum(deck[cardname] for cardname in hand) for hand in userhand) )
или больше, но проще для новичков
total_result = 0
for hand in userhand:
result = 0
for cardname in hand:
result += deck[cardname]
total_result += result
print(total_result)
Или вы можете использовать return shuffled
в deck1()
, потому что он возвращает только одну карту и нет необходимости возвращать ее как список. Это создаст более простые данные в userhand
, и для их суммирования потребуется более простой код.
Минимальный рабочий код
import random
from random import shuffle
deck = {"Two": 2, "Three": 3, "Four": 4, "Five": 5, "Six": 6, "Seven": 7, "Eight": 8,
"Nine": 9, "Ten": 10, "Jack": 11, "Queen": 12, "King": 13, "Ace": 14}
# Define the deck
def deck1():
hand = []
keys = list(deck.keys())
random.shuffle(keys)
shuffled = keys.pop()
hand.append(shuffled)
return hand
userhand = []
for i in range(2):
userhand.append(deck1())
print(userhand)
# Get the sum of the user hand
for player in userhand:
print(sum(deck[cardname] for cardname in player))
for player in userhand:
result = 0
for cardname in player:
result += deck[cardname]
print(result)
print( sum(sum(deck[cardname] for cardname in hand) for hand in userhand) )
total_result = 0
for hand in userhand:
result = 0
for cardname in hand:
result += deck[cardname]
total_result += result
print(total_result)