2015-04-22 2 views
1

Я пишу карточную программу на Python, и я хочу, чтобы графический интерфейс отображал все карты в руке.Как написать строку, представляющую карту для графического интерфейса?

suits = ['spades','hearts','diamonds','clubs'] 
ranks = ['ace','two','three','four','five','six','seven','eight','nine','ten','jack','queen','king'] 

def create_deck(): 
    deck = [] 
    for suit in suits: 
     for rank in ranks: 
      deck.append((suit,rank)) 
    return deck 

def shuffle(deck): 
    for i in range(100): 
     card = deck.pop(randint(0,51)) 
     deck.append(card) 

values = {} 
i = 1 
for card in deck: 
    values[card]=i 
    if i == 13: 
     i = 1 
    else: 
     i += 1 
print values #dictionary mapping values to cards 

Я хочу функцию, которая записывает строку, представляющую каждую карту в руке, который я считаю, можно сделать итерацию функции, которая записывает строку, представляющую каждую карту за каждую карту в руке. Тем не менее, я не совсем уверен, как это должно выглядеть (например, если мне нужны параметры для функции, если параметры должны быть «костюм, ранг» или просто «карта» и т. Д.).

+1

возможно дубликат [Python только показать элементы кортежа в петле х количество раз] (http://stackoverflow.com/questions/29459803/python-only-show-tuple-items-in-loop-x -amount-оф-времени) – CCovey

ответ

1
>>> my_hand = [('spades','ace'), ('hearts','five'), ('hearts','six')] 
>>> def showhand(hand): 
...  return '\n'.join([rank.title() + ' of ' + suit.title() for (suit,rank) in hand]) 
... 
>>> print(showhand(my_hand)) 
Ace of Spades 
Five of Hearts 
Six of Hearts 
Смежные вопросы