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)
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
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