Exemplo n.º 1
0
 def test_cards_that_can_beat_trump_including_trumps(self):
     card_set = CardSet(
         ['7H', 'KH', 'AH', '6S', 'TS', 'QS', '8D', 'AC'], self.trump
     )
     self.assertEqual(card_set.cards_that_can_beat('TH'), [
         DurakCard('KH'), DurakCard('AH'),
     ])
Exemplo n.º 2
0
 def test_cards_that_can_beat_trump_including_trumps(self):
     card_set = CardSet(['7H', 'KH', 'AH', '6S', 'TS', 'QS', '8D', 'AC'],
                        self.trump)
     self.assertEqual(card_set.cards_that_can_beat('TH'), [
         DurakCard('KH'),
         DurakCard('AH'),
     ])
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
 def test_cards_that_can_beat_not_trump_not_including_trumps(self):
     card_set = CardSet(
         ['7H', 'KH', 'AH', '6S', 'TS', 'QS', '8D', 'AC'], self.trump
     )
     results = card_set.cards_that_can_beat('8S', including_trumps=False)
     self.assertEqual(results, [DurakCard('TS'), DurakCard('QS')])
Exemplo n.º 6
0
 def test_cards_that_can_beat_not_trump_not_including_trumps(self):
     card_set = CardSet(['7H', 'KH', 'AH', '6S', 'TS', 'QS', '8D', 'AC'],
                        self.trump)
     results = card_set.cards_that_can_beat('8S', including_trumps=False)
     self.assertEqual(results, [DurakCard('TS'), DurakCard('QS')])