def render(self): self._clear_screen() print('Game %d' % self.n_games) print('Round %d' % self.n_round) for i, player in enumerate(self.players): print('%s Player %d score %d' % ('>' if i == self.cur_pos else ' ',\ i, player.score)) cards = '' for rank, suit in sorted(player.hand, key=lambda c: (c[1], c[0])): cards += (' '+unicard('%s%s' % (RANK_TO_CARD[rank], SUIT_TO_CARD[suit]),\ color=True)) print(' ', cards) cards = '' for rank, suit in sorted(player.income, key=lambda c: (c[1], c[0])): cards += (' '+unicard('%s%s' % (RANK_TO_CARD[rank], SUIT_TO_CARD[suit]),\ color=True)) print(' ', cards, '\n') board = '' for card in self.board: if card: rank, suit = card board += (' '+unicard('%s%s' % (RANK_TO_CARD[rank], SUIT_TO_CARD[suit]),\ color=True)+' ') else: board += ' NA' print(board, '\n')
def convert_to_unicard(suit=0, rank=2): unicard_suit = ['s','h','d', 'c'] unicard_rank = [None, 'A','2','3','4','5','6','7','8','9','T','J','Q','K'] if (suit == -1 or rank == -1): return "NaN" card = str(unicard_rank[rank])+str(unicard_suit[suit]) return unicard(card)
def test_unicards(): for suit in unicards.SUITS: print('') out = [] for face in unicards.FACES: out.append(unicards.unicard(face + suit, color=True)) print(u' '.join(out)) print('')
def __repr__(self): """ >>> Card('A', 's') 🂡 """ key = f'{self.rank}{self.suit}' return unicard(key)
def get_unicard(card): def get_val(symbol): if ord(symbol) == 10121: return 'T' elif 9398 <= ord(symbol) <= 9414: return chr(ord(symbol) - 9333) else: return chr(ord(symbol) - 0x274f) temp = get_val(card[0]) temp += Deck.shapes[card[1]][0] return unicard(temp)
def test_back(): assert unicards.unicard('b') == u'\U0001f0a0'
def test_ten(): assert unicards.unicard('10c') == u'\U0001f0da'
def test_case_insensitivity(): assert unicards.unicard('as') == u'\U0001f0a1' assert unicards.unicard('aS') == u'\U0001f0a1'
def test_color(): card = unicards.unicard('As', color=True) assert card == u'\x1b[30m\U0001f0a1\x1b[39m', repr(card)
def test_As(): card = unicards.unicard('As') assert card == u'\U0001f0a1', card