class Table: def __init__(self, people_number): self._all_cards = None self._copy_cards = None self._public_cards = [] self.newRound() # 新的一局 def newRound(self): self._all_cards = Cards() # 发手牌 def Deal(self): hands = [] for i in range(0, 2): hands.append(self._all_cards.pop()) return hands # 发特定手牌 def specialDeal(self, hands): self._all_cards.remove(hands[0]) self._all_cards.remove(hands[1]) return hands # 从牌堆里随机抽出一张牌 def popCard(self): card = self._all_cards.pop() return card # 同步桌子上的公共牌 def syncPublicCards(self, cards_list): self._public_cards = cards_list all_cards = self._all_cards.getAllCards() for i in range(0, len(cards_list)): if cards_list[i] in all_cards: self._all_cards.remove(cards_list[i]) # 返回桌子上的公共牌 def getPublicCards(self): return self._public_cards # 回收牌 def recoverCards(self, cards): self._all_cards.add(cards) # 显示牌堆 def showAllCards(self): print (self._all_cards.show()) # 复制牌堆 def copyCards(self): self._copy_cards = copy.deepcopy(self._all_cards) # 恢复牌堆 def recoverPreCards(self): self._all_cards = copy.deepcopy(self._copy_cards) # 洗牌 def shuffle(self): self._all_cards.shuffle()
class Player(object): def __init__(self): self.id = None self.cards = Cards() def pick(self, card): self.cards.append(card) def readyPlay(self): pass def play(self, last_round): print("hand: %s \n" % self.cards) inputs = input("your turn, enter letter to play or enter p to pass:"******"p": return PLAY_PASS inputs = upper(inputs) check_ret, v = self.check(inputs) if check_ret is True: cards = Cards(inputs, v[0], v[1]) self.removeCards(cards) return cards inputs = input(v) def check(self, inputs): if not self.cards.isContain(Cards(inputs)): return False, "played not exist card! your turn:" v = cardStringsValue(inputs) if v[1] <= 0: return False, "invalid card type! your turn:" return True, v def removeCards(self, cards): self.cards.remove(cards) def isEmpty(self): return not bool(len(self.cards.strings))