class DummyEngine(BaseEngine): def init(self, trump): self._cards = CardSet([], trump) return 'ok' def deal(self, cards, gamedata): self._cards.update(cards) return 'ok' def move(self, on_table, gamedata): assert self._cards if not on_table: cards = self._cards.cards_that_can_be_added_to(on_table) else: cards = self._cards.cards_that_can_be_added_to( on_table, including_trumps=False ) if cards: result = cards[0] self._cards.remove(result) return result return '' def respond(self, on_table, gamedata): assert self._cards cards = self._cards.cards_that_can_beat(on_table[-1]) if cards: result = cards[0] self._cards.remove(result) return result return '' def give_more(self, on_table, gamedata): assert self._cards max_count = gamedata['enemy_count'] - 1 cards = self._cards.cards_that_can_be_added_to( on_table, including_trumps=False )[:max_count] self._cards.difference_update(cards) return ' '.join(map(str, cards))
def test_cards_that_can_be_added_to_not_including_trumps(self): card_set = CardSet(['7H', '7S', 'AH', 'AD', 'TS', 'QS', '8D', 'AC'], self.trump) results = card_set.cards_that_can_be_added_to(['9C', '7D', 'AS'], including_trumps=False) self.assertEqual(results, [ DurakCard('7S'), DurakCard('AC'), DurakCard('AD'), ])
class DummyEngine(BaseEngine): def init(self, trump): self._cards = CardSet([], trump) return 'ok' def deal(self, cards, gamedata): self._cards.update(cards) return 'ok' def move(self, on_table, gamedata): assert self._cards if not on_table: cards = self._cards.cards_that_can_be_added_to(on_table) else: cards = self._cards.cards_that_can_be_added_to( on_table, including_trumps=False) if cards: result = cards[0] self._cards.remove(result) return result return '' def respond(self, on_table, gamedata): assert self._cards cards = self._cards.cards_that_can_beat(on_table[-1]) if cards: result = cards[0] self._cards.remove(result) return result return '' def give_more(self, on_table, gamedata): assert self._cards max_count = gamedata['enemy_count'] - 1 cards = self._cards.cards_that_can_be_added_to( on_table, including_trumps=False)[:max_count] self._cards.difference_update(cards) return ' '.join(map(str, cards))
def test_cards_that_can_be_added_to_not_including_trumps(self): card_set = CardSet( ['7H', '7S', 'AH', 'AD', 'TS', 'QS', '8D', 'AC'], self.trump ) results = card_set.cards_that_can_be_added_to( ['9C', '7D', 'AS'], including_trumps=False ) self.assertEqual(results, [ DurakCard('7S'), DurakCard('AC'), DurakCard('AD'), ])
def test_cards_that_can_be_added_to_returns_all_cards_if_to_is_empty(self): card_set = CardSet( ['7H', '7S', 'AH', 'AD', 'TS', 'QS', '8D', 'AC'], self.trump ) results = card_set.cards_that_can_be_added_to([]) self.assertEqual(results, card_set.sorted_cards())
def test_cards_that_can_be_added_to_returns_all_cards_if_to_is_empty(self): card_set = CardSet(['7H', '7S', 'AH', 'AD', 'TS', 'QS', '8D', 'AC'], self.trump) results = card_set.cards_that_can_be_added_to([]) self.assertEqual(results, card_set.sorted_cards())