예제 #1
0
    def test_capture_piece_queen_bad(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_queen = pieces.Queen(True, 12, 8)

        self.assertEqual(81,
                         score.capture_piece(black_queen, white_queen, factor))
예제 #2
0
    def complete_matrix_pieces(self):

        for row, pieces_row in enumerate(self.matrix):
            for col, piece in enumerate(pieces_row):
                # Creates a list with black pieces
                if piece == '♟':
                    black_pawn = pieces.Pawn(False, row, col)
                    self.matrix_pieces[row][col] = black_pawn
                elif piece == '♞':
                    black_horse = pieces.Horse(False, row, col)
                    self.matrix_pieces[row][col] = black_horse
                elif piece == '♝':
                    black_bishop = pieces.Bishop(False, row, col)
                    self.matrix_pieces[row][col] = black_bishop
                elif piece == '♜':
                    black_rook = pieces.Rook(False, row, col)
                    self.matrix_pieces[row][col] = black_rook
                elif piece == '♛':
                    black_queen = pieces.Queen(False, row, col)
                    self.matrix_pieces[row][col] = black_queen
                elif piece == '♚':
                    black_king = pieces.King(False, row, col)
                    self.matrix_pieces[row][col] = black_king

                # Creates a list with white pieces
                elif piece == '♙':
                    white_pawn = pieces.Pawn(True, row, col)
                    self.matrix_pieces[row][col] = white_pawn
                elif piece == '♘':
                    white_horse = pieces.Horse(True, row, col)
                    self.matrix_pieces[row][col] = white_horse
                elif piece == '♗':
                    white_bishop = pieces.Bishop(True, row, col)
                    self.matrix_pieces[row][col] = white_bishop
                elif piece == '♖':
                    white_rook = pieces.Rook(True, row, col)
                    self.matrix_pieces[row][col] = white_rook
                elif piece == '♕':
                    white_queen = pieces.Queen(True, row, col)
                    self.matrix_pieces[row][col] = white_queen
                elif piece == '♔':
                    white_king = pieces.King(True, row, col)
                    self.matrix_pieces[row][col] = white_king

                # Creates a list with empty squares
                else:
                    empty_square = pieces.EmptySquare(row, col)
                    self.matrix_pieces[row][col] = empty_square
예제 #3
0
    def test_capture_piece_bishop_good(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_bishop = pieces.Bishop(True, 9, 8)

        self.assertEqual(
            405, score.capture_piece(black_queen, white_bishop, factor))
예제 #4
0
    def test_capture_piece_king_bad(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_king = pieces.King(True, 12, 8)

        self.assertEqual(100,
                         score.capture_piece(black_queen, white_king, factor))
예제 #5
0
    def test_capture_piece_rook_good(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_rook = pieces.Rook(True, 9, 8)

        self.assertEqual(605,
                         score.capture_piece(black_queen, white_rook, factor))
예제 #6
0
    def test_capture_piece_horse_good(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_horse = pieces.Horse(True, 9, 8)

        self.assertEqual(305,
                         score.capture_piece(black_queen, white_horse, factor))
예제 #7
0
    def test_capture_piece_pawn_good(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_pawn = pieces.Pawn(True, 7, 8)

        self.assertEqual(105,
                         score.capture_piece(black_queen, white_pawn, factor))
예제 #8
0
    def test_whitequeen_invalid_move_jump(self):
        queen = pieces.Queen(True, 8, 8)

        empty_square1 = pieces.EmptySquare(6, 9)     
        empty_square2 = pieces.EmptySquare(10, 9)    
        empty_square3 = pieces.EmptySquare(10, 7)    
        empty_square4 = pieces.EmptySquare(6, 7)  

        self.assertFalse(queen.valid_move(empty_square1))
        self.assertFalse(queen.valid_move(empty_square2))
        self.assertFalse(queen.valid_move(empty_square3))
        self.assertFalse(queen.valid_move(empty_square4))
예제 #9
0
    def test_whitequeen_invalid_move_capture(self):
        queen = pieces.Queen(True, 8, 8)

        rival1 = pieces.Pawn(False, 6, 9)     
        rival2 = pieces.Pawn(False, 10, 9)    
        rival3 = pieces.Pawn(False, 10, 7)    
        rival4 = pieces.Pawn(False, 6, 7)  

        self.assertFalse(queen.valid_move(rival1))
        self.assertFalse(queen.valid_move(rival2))
        self.assertFalse(queen.valid_move(rival3))
        self.assertFalse(queen.valid_move(rival4))
예제 #10
0
    def test_scan_right(self):
        queen = pieces.Queen(False, 8, 8)
        pawn = pieces.Pawn(True, 8, 11)

        self.board_game.matrix_pieces[8][8] = queen
        self.board_game.matrix_pieces[8][11] = pawn

        right = scans.scan_right(self.board_game, queen)

        self.assertIsInstance(next(right), pieces.EmptySquare)
        self.assertIsInstance(next(right), pieces.EmptySquare)
        self.assertIsInstance(next(right), pieces.Pawn)
예제 #11
0
    def test_scan_up(self):
        queen = pieces.Queen(False, 8, 8)
        pawn = pieces.Pawn(True, 5, 8)

        self.board_game.matrix_pieces[8][8] = queen
        self.board_game.matrix_pieces[5][8] = pawn

        up = scans.scan_up(self.board_game, queen)

        self.assertIsInstance(next(up), pieces.EmptySquare)
        self.assertIsInstance(next(up), pieces.EmptySquare)
        self.assertIsInstance(next(up), pieces.Pawn)
예제 #12
0
    def test_scan_down_left(self):
        queen = pieces.Queen(False, 8, 8)
        pawn = pieces.Pawn(True, 11, 5)

        self.board_game.matrix_pieces[8][8] = queen
        self.board_game.matrix_pieces[11][5] = pawn

        down_left = scans.scan_down_left(self.board_game, queen)

        self.assertIsInstance(next(down_left), pieces.EmptySquare)
        self.assertIsInstance(next(down_left), pieces.EmptySquare)
        self.assertIsInstance(next(down_left), pieces.Pawn)
예제 #13
0
    def test_set_score(self):
        score_new = score.Score()
        color = True
        white_queen = pieces.Queen(True, 8, 8)
        black_king = pieces.King(False, 0, 8)
        move = [{
            'from_row': 8,
            'from_col': 8,
            'to_row': 0,
            'to_col': 8,
            'score': 100.0
        }]

        score_new.set_score(white_queen, black_king, color)

        self.assertEqual(move, score_new.play_moves)
예제 #14
0
    def test_whitekqueen_valid_move_jump(self):
        queen = pieces.Queen(True, 8, 8)

        empty_square1 = pieces.EmptySquare(1, 8)     # up
        empty_square2 = pieces.EmptySquare(5, 11)    # up_right
        empty_square3 = pieces.EmptySquare(8, 15)    # right
        empty_square4 = pieces.EmptySquare(11, 11)   # down_right
        empty_square5 = pieces.EmptySquare(12, 8)    # down
        empty_square6 = pieces.EmptySquare(10, 6)   # down_left
        empty_square7 = pieces.EmptySquare(8, 3)     # left
        empty_square8 = pieces.EmptySquare(5, 5)     # up_left

        self.assertTrue(queen.valid_move(empty_square1))
        self.assertTrue(queen.valid_move(empty_square2))
        self.assertTrue(queen.valid_move(empty_square3))
        self.assertTrue(queen.valid_move(empty_square4))
        self.assertTrue(queen.valid_move(empty_square5))
        self.assertTrue(queen.valid_move(empty_square6))
        self.assertTrue(queen.valid_move(empty_square7))
        self.assertTrue(queen.valid_move(empty_square8))    
예제 #15
0
    def test_whitekqueen_valid_move_capture(self):
        queen = pieces.Queen(True, 8, 8)

        rival1 = pieces.Pawn(False, 1, 8)     # up
        rival2 = pieces.Pawn(False, 5, 11)    # up_right
        rival3 = pieces.Pawn(False, 8, 15)    # right
        rival4 = pieces.Pawn(False, 11, 11)   # down_right
        rival5 = pieces.Pawn(False, 12, 8)    # down
        rival6 = pieces.Pawn(False, 10, 6)    # down_left
        rival7 = pieces.Pawn(False, 8, 3)     # left
        rival8 = pieces.Pawn(False, 5, 5)     # up_left

        self.assertTrue(queen.valid_move(rival1))
        self.assertTrue(queen.valid_move(rival2))
        self.assertTrue(queen.valid_move(rival3))
        self.assertTrue(queen.valid_move(rival4))
        self.assertTrue(queen.valid_move(rival5))
        self.assertTrue(queen.valid_move(rival6))
        self.assertTrue(queen.valid_move(rival7))
        self.assertTrue(queen.valid_move(rival8))
예제 #16
0
    def test_protect_center_1(self):
        white_queen = pieces.Queen(True, 8, 8)
        black_queen = pieces.Queen(False, 15, 15)

        self.assertEqual(1, score.protect_center(white_queen, black_queen))
예제 #17
0
    def test_protect_center_5(self):
        white_queen = pieces.Queen(True, 9, 9)
        black_queen = pieces.Queen(False, 8, 8)

        self.assertEqual(5, score.protect_center(white_queen, black_queen))
예제 #18
0
    def test_jump_rival_queen(self):
        factor = -1
        queen = pieces.Queen(True, 8, 8)

        self.assertEqual(-6, score.jump_piece(queen, factor))