def to_str(player): """Convert a player tuple into rendered string.""" actions_str = " | ".join([ PlayerActionTools.to_str(action) for action in player.actions if not PlayerActionTools.is_blank(action) ]) return "{} ┋┋ {}".format(Card.render_card_number(player.hand_card), actions_str)
def new(player_count=4, seed=451): """Create a brand new game""" deck = Card.shuffle_deck(seed) dealt_cards = deck[:player_count] undealt_cards = deck[player_count:] players = list(map(PlayerTools.blank, dealt_cards)) return Game(undealt_cards, players, 0)
def _to_str_player(self, idx, player): is_playing = " " if PlayerTools.is_playing(player) else "☠️" is_turn = "⭐" if self.player_turn() == idx else " " draw_card = self.draw_card() if self.active( ) and self.player_turn() == idx else Card.noCard draw_card_render = Card.render_card_number(draw_card) header = "Player {} {} {}".format(idx, is_turn, is_playing) state = " Current: {} {}".format( draw_card_render, PlayerTools.to_str(player)) return [header, state]
def to_str(self): """Returns a string[] representation of the game""" strings = [ "" + ("━" * 79), "Game is active" if self.active() else "Game is over", "Round:{: >2} | Cards Left:{: >2} | Withheld Card: {: >10} ".format( self.round(), self.cards_left(), Card.render_card_number(self.held_card())), "" ] for idx, player in enumerate(self._players): strings += self._to_str_player(idx, player) strings += [""] return strings
def to_str(action): """Convert a player action to a renderable string.""" # TODO: Improve this render return Card.render_card_number(action.discard)