Пример #1
0
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()
Пример #2
0
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))