Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def deal_cards(self, players):
''' Deal cards to players
Args:
players (list): list of DoudizhuPlayer objects
'''
hand_num = (len(self.deck) - 3) // len(players)
for index, player in enumerate(players):
current_hand = self.deck[index*hand_num:(index+1)*hand_num]
current_hand.sort(key=functools.cmp_to_key(doudizhu_sort_card))
player.set_current_hand(current_hand)
player.initial_hand = cards2str(player.current_hand)
def initiate(self, players):
''' Call dealer to deal cards and bid landlord.
Args:
players (list): list of DoudizhuPlayer objects
'''
landlord_id = self.dealer.determine_role(players)
seen_cards = self.dealer.deck[-3:]
seen_cards.sort(key=functools.cmp_to_key(doudizhu_sort_card))
self.seen_cards = cards2str(seen_cards)
self.landlord_id = landlord_id
self.current_player = landlord_id
self.public = {'deck': self.deck_str, 'seen_cards': self.seen_cards,
'landlord': self.landlord_id, 'trace': self.trace,
'played_cards': self.played_cards}
## determine 'landlord'
#max_score = get_landlord_score(
# cards2str(self.landlord.current_hand))
#for player in players[1:]:
# player.role = 'peasant'
# score = get_landlord_score(
# cards2str(player.current_hand))
# if score > max_score:
# max_score = score
# self.landlord = player
#self.landlord.role = 'landlord'
# give the 'landlord' the three cards
self.landlord.current_hand.extend(self.deck[-3:])
self.landlord.current_hand.sort(key=functools.cmp_to_key(doudizhu_sort_card))
self.landlord.initial_hand = cards2str(self.landlord.current_hand)
return self.landlord.player_id
def _get_others_current_hand(self, player):
player_up = self.players[get_upstream_player_id(player, self.players)]
player_down = self.players[get_downstream_player_id(
player, self.players)]
others_hand = merge(player_up.current_hand, player_down.current_hand, key=functools.cmp_to_key(doudizhu_sort_card))
return cards2str(others_hand)
def __init__(self):
self.trace = []
self.played_cards = []
self.greater_player = None
self.dealer = Dealer()
self.deck_str = cards2str(self.dealer.deck)