Esempio n. 1
0
    def test_start_new_game_players_and_deck_cards(self):
        controller = GameController()
        controller.start_new_game()
        self.assertEqual(controller._trump, controller._deck[-1])

        all_cards = []
        all_cards.extend(controller._deck)
        all_cards.extend(controller._player1.cards)
        all_cards.extend(controller._player2.cards)
        self.assertItemsEqual(all_cards, DurakCard.all())
Esempio n. 2
0
    def test_start_new_game_players_and_deck_cards(self):
        controller = GameController()
        controller.start_new_game()
        self.assertEqual(controller._trump, controller._deck[-1])

        all_cards = []
        all_cards.extend(controller._deck)
        all_cards.extend(controller._player1.cards)
        all_cards.extend(controller._player2.cards)
        self.assertItemsEqual(all_cards, DurakCard.all())
Esempio n. 3
0
    def start_new_game(self, ignore_winner=True):
        self._deck = list(DurakCard.all())
        random.shuffle(self._deck)
        self._trump = self._deck[-1]

        self._logger.reset()
        if self._logger_enabled:
            self._logger.log_before_game(
                self._player1.name,
                self._player2.name,
                self._deck,
                self._trump
            )

        self._player1.cards = CardSet(cards=self._deck[:6], trump=self._trump)
        self._player2.cards = CardSet(
            cards=self._deck[6:12], trump=self._trump
        )
        self._deck = self._deck[12:]

        if not ignore_winner and self._winner is not None:
            self._to_move = self._winner
        else:
            self._to_move = self._get_first_to_move_by_trump()

        self._winner = None
        self._discarded = []
        self._on_table = Table()

        self._state = self.States.MOVING
        self._no_response = False

        if self._logger_enabled:
            self._logger.log_before_move(
                set(self._player1.cards),
                set(self._player2.cards),
                self.to_move,
                self.deck_count,
            )

        return {
            'player1_cards': CardSet(self._player1.cards, trump=self._trump),
            'player2_cards': CardSet(self._player2.cards, trump=self._trump),
            'trump': DurakCard(self._trump),
        }
Esempio n. 4
0
    def _prepare_data(self):
        wx_bitmap = (
            wx.Image(self._image_path, wx.BITMAP_TYPE_GIF).ConvertToBitmap()
        )

        for card in DurakCard.all():
            left_top_x = card.numeric_rank * self._card_width
            left_top_y = card.numeric_suit * self._card_height
            self._data[card] = wx_bitmap.GetSubBitmap(
                (left_top_x, left_top_y, self._card_width, self._card_height)
            )

        hidden_bitmap = (
            wx.Image(self._hidden_image_path, wx.BITMAP_TYPE_GIF)
              .ConvertToBitmap()
        )
        self._data[self.HIDDEN] = hidden_bitmap

        wx_bitmap.Destroy()
Esempio n. 5
0
    def start_new_game(self, ignore_winner=True):
        self._deck = list(DurakCard.all())
        random.shuffle(self._deck)
        self._trump = self._deck[-1]

        self._logger.reset()
        if self._logger_enabled:
            self._logger.log_before_game(self._player1.name,
                                         self._player2.name, self._deck,
                                         self._trump)

        self._player1.cards = CardSet(cards=self._deck[:6], trump=self._trump)
        self._player2.cards = CardSet(cards=self._deck[6:12],
                                      trump=self._trump)
        self._deck = self._deck[12:]

        if not ignore_winner and self._winner is not None:
            self._to_move = self._winner
        else:
            self._to_move = self._get_first_to_move_by_trump()

        self._winner = None
        self._discarded = []
        self._on_table = Table()

        self._state = self.States.MOVING
        self._no_response = False

        if self._logger_enabled:
            self._logger.log_before_move(
                set(self._player1.cards),
                set(self._player2.cards),
                self.to_move,
                self.deck_count,
            )

        return {
            'player1_cards': CardSet(self._player1.cards, trump=self._trump),
            'player2_cards': CardSet(self._player2.cards, trump=self._trump),
            'trump': DurakCard(self._trump),
        }
Esempio n. 6
0
    def test_prepare_data_prepares_card_images(self):
        all_cards = DurakCard.all()

        with patch('durak.gui.images.wx.Image') as wx_image_mock:
            self.manager._prepare_data()

            wx_image_mock.assert_any_call(
                self.cards_image_path, wx.BITMAP_TYPE_GIF
            )
            wx_image_mock.assert_any_call(
                self.cards_hidden_image_path, wx.BITMAP_TYPE_GIF
            )
            self.assertEqual(
                (wx_image_mock.return_value
                              .ConvertToBitmap
                              .return_value
                              .GetSubBitmap
                              .call_count),
                len(all_cards)
            )
            self.assertItemsEqual(
                self.manager._data.keys(),
                list(all_cards) + [self.manager.HIDDEN]
            )
Esempio n. 7
0
 def test_all(self):
     expected = set()
     for rank in DurakCard.RANKS:
         for suit in DurakCard.SUITS:
             expected.add(DurakCard(rank, suit))
     self.assertEqual(DurakCard.all(), expected)
Esempio n. 8
0
 def test_start_new_game_cards_are_shuffled(self):
     controller = GameController()
     with patch('durak.controller.random') as random_mock:
         controller.start_new_game()
         random_mock.shuffle.assert_called_once_with(list(DurakCard.all()))
Esempio n. 9
0
 def test_all(self):
     expected = set()
     for rank in DurakCard.RANKS:
         for suit in DurakCard.SUITS:
             expected.add(DurakCard(rank, suit))
     self.assertEqual(DurakCard.all(), expected)
Esempio n. 10
0
 def test_start_new_game_cards_are_shuffled(self):
     controller = GameController()
     with patch('durak.controller.random') as random_mock:
         controller.start_new_game()
         random_mock.shuffle.assert_called_once_with(list(DurakCard.all()))