예제 #1
0
    def test_revealing_not_flagged(self):
        board = generate_board(10, 10, 10)

        rev = RevealFields(board, 5, 5)
        rev._reveal_neighbours(5, 5)

        self.assertEqual(board[5][5].flagged, False)
        self.assertEqual(board[5][5].revealed, False)
    def test_no_mines(self):
        board = generate_board(5, 5, 0)
        mines = 0
        for i in range(5):
            for j in range(5):
                if board[i][j].value == VALUES_OF_BOARD_FIELDS["BOMB"]:
                    mines = mines + 1

        self.assertEqual(mines, 0)
    def test_normal_case(self):
        board = generate_board(8, 8, 10)
        mines = 0
        for i in range(8):
            for j in range(8):
                if board[i][j].value == VALUES_OF_BOARD_FIELDS["BOMB"]:
                    mines = mines + 1

        self.assertEqual(mines, 10)
예제 #4
0
    def _create_game_board(self):
        """
            This function creates the game board
            with previously given dimensions(self._board_height, self._board_width).
            The game board contains a specific number of mines(self._number_of_mines).
            The board consists of buttons (GameButton).
        """

        self._board_array = generate_board(height=self._board_height,
                                           width=self._board_width,
                                           mine_amount=self._number_of_mines)

        minimum_height_of_single_button = \
            (settings.GAME_BUTTONS_VERSUS_RIGHT_LAYOUT_RATIO *
             settings.MINIMUM_HEIGHT_OF_THE_WHOLE_APPLICATION) // self._board_height
        minimum_width_of_single_button =\
            (settings.GAME_BUTTONS_VERSUS_RIGHT_LAYOUT_RATIO *
             settings.MINIMUM_WIDTH_OF_LAYOUT) // self._board_width

        for row_idx in range(self._board_height):
            row_of_buttons_gui = QHBoxLayout()
            row_of_buttons_list = []
            for column_idx in range(self._board_width):
                game_button = GameButton()

                game_button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
                game_button_right_click = partial(self._handle_right_click,
                                                  row_idx=row_idx,
                                                  column_idx=column_idx)
                game_button.customContextMenuRequested.connect(
                    game_button_right_click)

                game_button.setMinimumHeight(minimum_height_of_single_button)
                game_button.setMinimumWidth(minimum_width_of_single_button)
                game_button_click_function = partial(self._game_button_click,
                                                     row_idx=row_idx,
                                                     column_idx=column_idx)
                game_button.clicked.connect(game_button_click_function)
                row_of_buttons_list.append(game_button)
                row_of_buttons_gui.addWidget(game_button)

            self._matrix_of_buttons.append(row_of_buttons_list)
            self._right_layout.addLayout(row_of_buttons_gui)
 def test_correct_size(self):
     board = generate_board(10, 12, 6)
     self.assertEqual(len(board), 10)
     self.assertEqual(len(board[0]), 12)
 def test_no_size_but_some_mines(self):
     with self.assertRaises(IndexError):
         board = generate_board(0, 0, 5)
예제 #7
0
 def test_pos_both_correct(self):
     board = generate_board(10, 10, 10)
     rev = RevealFields(board, 10, 10)
     self.assertEqual(rev._is_pos_correct(6, 7), True)
예제 #8
0
 def test_pos_second_more(self):
     board = generate_board(37, 37, 10)
     rev = RevealFields(board, 37, 37)
     self.assertEqual(rev._is_pos_correct(9, 40), False)
예제 #9
0
 def test_pos_first_more(self):
     board = generate_board(7, 21, 10)
     rev = RevealFields(board, 7, 21)
     self.assertEqual(rev._is_pos_correct(9, 15), False)
예제 #10
0
 def test__pos_second_less(self):
     board = generate_board(7, 9, 10)
     rev = RevealFields(board, 7, 9)
     self.assertEqual(rev._is_pos_correct(-5, -9), False)
예제 #11
0
 def test_pos_first_less(self):
     board = generate_board(6, 6, 10)
     rev = RevealFields(board, 6, 6)
     self.assertEqual(rev._is_pos_correct(-1, 3), False)