pit_tonerПо-моему твоя задача - это как раз тот случай, когда ООП прямо таки просится в код.
Ну удаление карт из колоды вроде как здесь не принципиально, главное чтобы одинаковые карты не достались, а также были у каждого разные. Про кортеж оч.интересный вариант.
Сделай класс для отдельно взятой карты. Сделай класс КолодаКарт. В классе определи методы итератора, сравнения, удаления и пр. короче инкапсулируй логику работы с колодой в классах, будет гораздо проще потом с этим хозяйством работать. Как то так:
# -*- coding:utf-8 -*- import random class CardAttrs: SUITS={ "BUBI":0, "CHERVI":1, "TREFI":2, "PIKI":3} VALUES={ "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} class Card(object): def __init__(self, suit, value): self.suit=suit self.value=value def __repr__(self): return "%s:%s" %(self.value, self.suit) class Deck(object): def __init__(self): self.__deck=[] for i in CardAttrs.SUITS: for j in CardAttrs.VALUES: self.__deck.append(Card(i,j)) self.mix() def mix(self): random.shuffle(self.__deck) def pop_card(self,count=1): l=[self.__deck.pop() for i in range(count)] return l def __len__(self): return len(self.__deck) class UserDeck(object): def __init__(self, card_pack): self.deck=card_pack def __repr__(self): return str(self.deck) deck=Deck() print len(deck) user1=UserDeck(deck.pop_card(5)) user2=UserDeck(deck.pop_card(5)) print len(deck) print user1 print user2
