Exemplo n.º 1
0
 def test_compare_cards(self):
     card0 = TraitCard("climbing", 0)
     card1 = TraitCard("burrowing", 3)
     card2 = TraitCard("climbing", -1)
     cards = [card0, card1, card2]
     cards.sort(TraitCard.compare)
     self.assertEqual(cards, [card1, card2, card0])
     self.assertEqual(TraitCard.compare(card0, card1), 1)
     self.assertEqual(TraitCard.compare(card1, card2), -1)
     self.assertEqual(TraitCard.compare(card0, card2), 1)
Exemplo n.º 2
0
    def choose(self, choice):
        """
        Returns the players Action representing how this player wants to use their
        cards for the current round.
        :param choice: A Choice object representing the state of the species before
        and after the current player.
        :return: An Action representing how the player is using their cards for
        the round.
        """
        cards = []
        for i, card in enumerate(self.player_state.hand):
            cards.append({"card": card, "index": i})
        cards.sort(lambda c0, c1: TraitCard.compare(c0['card'], c1['card']))

        food_card = cards[0]['index']
        action = Action(food_card, [], [], [], [])
        action.species_additions.append(BoardAddition(cards[1]['index'],
                                                      [cards[2]['index']]))
        if len(self.player_state.hand) > 3:
            action.pop_grows.append(PopGrow(len(self.player_state.species), cards[3]['index']))
        if len(self.player_state.hand) > 4:
            action.body_grows.append(BodyGrow(len(self.player_state.species), cards[4]['index']))
        if len(self.player_state.hand) > 5:
            action.trait_replacements.append(ReplaceTrait(len(self.player_state.species),
                                                          0,
                                                          cards[5]['index']))
        return action
Exemplo n.º 3
0
    def choose(self, choice):
        cards = []
        for i, card in enumerate(self.player_state.hand):
            cards.append({"card": card, "index": i})
        cards.sort(lambda c0, c1: TraitCard.compare(c0['card'], c1['card']))

        food_card = cards[0]['index']
        action = Action(food_card, [], [], [], [])
        action.species_additions.append(BoardAddition(cards[1]['index'],
                                                      [cards[2]['index']]))
        if len(self.player_state.hand) > 3:
            action.pop_grows.append(PopGrow(len(self.player_state.species), cards[3]['index']))
        if len(self.player_state.hand) > 4:
            action.body_grows.append(BodyGrow(len(self.player_state.species), cards[4]['index']))
        if len(self.player_state.hand) > 5:
            action.trait_replacements.append(ReplaceTrait(len(self.player_state.species),
                                                          0,
                                                          cards[5]['index']))
        return action