def test_blackpawn_valid_move_capture(self):
        pawn = pieces.Pawn(False, 3, 1)

        rival1 = pieces.Pawn(True, 4, 2)     # down_right
        rival2 = pieces.Pawn(True, 4, 0)     # down_left

        self.assertTrue(pawn.valid_move(rival1))
        self.assertTrue(pawn.valid_move(rival2))
    def test_whitepawn_valid_move_capture(self):
        pawn = pieces.Pawn(True, 12, 1)

        rival1 = pieces.Pawn(False, 11, 2)    # up_right
        rival2 = pieces.Pawn(False, 11, 0)    # up_left

        self.assertTrue(pawn.valid_move(rival1))
        self.assertTrue(pawn.valid_move(rival2))
    def test_whitehorse_valid_move_capture(self):
        horse = pieces.Horse(True, 8, 8)

        rival1 = pieces.Pawn(False, 6, 9)     # L up_right
        rival2 = pieces.Pawn(False, 10, 9)    # L down_right
        rival3 = pieces.Pawn(False, 10, 7)    # L down_left
        rival4 = pieces.Pawn(False, 6, 7)     # L up_left

        self.assertTrue(horse.valid_move(rival1))
        self.assertTrue(horse.valid_move(rival2))
        self.assertTrue(horse.valid_move(rival3))
        self.assertTrue(horse.valid_move(rival4))
    def test_whitebishop_invalid_move_capture(self):
        bishop = pieces.Bishop(True, 7, 7)

        rival1 = pieces.Pawn(False, 6, 7)     # up
        rival2 = pieces.Pawn(False, 7, 9)     # right
        rival3 = pieces.Pawn(False, 11, 7)   # down
        rival4 = pieces.Pawn(False, 7, 1)     # left

        self.assertFalse(bishop.valid_move(rival1))
        self.assertFalse(bishop.valid_move(rival2))
        self.assertFalse(bishop.valid_move(rival3))
        self.assertFalse(bishop.valid_move(rival4))
    def test_whiterook_valid_move_capture(self):
        rook = pieces.Rook(True, 7, 7)

        rival1 = pieces.Pawn(False, 0, 7)     # up
        rival2 = pieces.Pawn(False, 7, 5)     # right
        rival3 = pieces.Pawn(False, 12, 7)     # down
        rival4 = pieces.Pawn(False, 7, 1)     # left

        self.assertTrue(rook.valid_move(rival1))
        self.assertTrue(rook.valid_move(rival2))
        self.assertTrue(rook.valid_move(rival3))
        self.assertTrue(rook.valid_move(rival4))
    def test_whiterook_invalid_move_capture(self):
        rook = pieces.Rook(True, 7, 7)

        rival1 = pieces.Pawn(False, 5, 5)     # up_rigth
        rival2 = pieces.Pawn(False, 9, 9)     # down_right
        rival3 = pieces.Pawn(False, 9, 5)     # down_left
        rival4 = pieces.Pawn(False, 3, 3)     # up_left

        self.assertFalse(rook.valid_move(rival1))
        self.assertFalse(rook.valid_move(rival2))
        self.assertFalse(rook.valid_move(rival3))
        self.assertFalse(rook.valid_move(rival4))
    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))
    def test_whitebishop_valid_move_capture(self):
        bishop = pieces.Bishop(True, 7, 7)

        rival1 = pieces.Pawn(False, 3, 3)     # up_left
        rival2 = pieces.Pawn(False, 5, 9)     # up_right
        rival3 = pieces.Pawn(False, 11, 11)   # down_right
        rival4 = pieces.Pawn(False, 8, 6)     # down_left

        self.assertTrue(bishop.valid_move(rival1))
        self.assertTrue(bishop.valid_move(rival2))
        self.assertTrue(bishop.valid_move(rival3))
        self.assertTrue(bishop.valid_move(rival4))
    def test_jump_rival_whitepawn(self):
        factor = -1
        white_pawn1 = pieces.Pawn(True, 12, 6)  # center-front
        white_pawn2 = pieces.Pawn(True, 13, 6)  # center-back
        white_pawn3 = pieces.Pawn(True, 12, 2)  # side-front
        white_pawn4 = pieces.Pawn(True, 12, 12)  # side-front
        white_pawn5 = pieces.Pawn(True, 13, 2)  # side-back
        white_pawn6 = pieces.Pawn(True, 13, 12)  # side-back
        white_pawn7 = pieces.Pawn(True, 12, 9)  # king-front
        white_pawn8 = pieces.Pawn(True, 13, 9)  # king-back

        square1 = pieces.EmptySquare(11, 6)
        square2 = pieces.EmptySquare(12, 6)
        square3 = pieces.EmptySquare(11, 2)
        square4 = pieces.EmptySquare(11, 12)
        square5 = pieces.EmptySquare(12, 2)
        square6 = pieces.EmptySquare(12, 12)
        square7 = pieces.EmptySquare(11, 9)
        square8 = pieces.EmptySquare(12, 9)

        self.assertEqual(-62.29, score.jump_pawn(white_pawn1, square1, factor))
        self.assertEqual(-61.22, score.jump_pawn(white_pawn2, square2, factor))
        self.assertEqual(-60.29, score.jump_pawn(white_pawn3, square3, factor))
        self.assertEqual(-60.29, score.jump_pawn(white_pawn4, square4, factor))
        self.assertEqual(-60.22, score.jump_pawn(white_pawn5, square5, factor))
        self.assertEqual(-60.22, score.jump_pawn(white_pawn6, square6, factor))
        self.assertEqual(-62.29, score.jump_pawn(white_pawn7, square7, factor))
        self.assertEqual(-62.22, score.jump_pawn(white_pawn8, square8, factor))
Beispiel #10
0
    def test_jump_blackpawn(self):
        factor = 1
        black_pawn1 = pieces.Pawn(False, 3, 6)  # center-front
        black_pawn2 = pieces.Pawn(False, 2, 6)  # center-back
        black_pawn3 = pieces.Pawn(False, 3, 2)  # side-front
        black_pawn4 = pieces.Pawn(False, 3, 12)  # side-front
        black_pawn5 = pieces.Pawn(False, 2, 2)  # side-back
        black_pawn6 = pieces.Pawn(False, 2, 12)  # side-back
        black_pawn7 = pieces.Pawn(False, 3, 9)  # king-front
        black_pawn8 = pieces.Pawn(False, 2, 9)  # king-back

        square1 = pieces.EmptySquare(4, 6)
        square2 = pieces.EmptySquare(3, 6)
        square3 = pieces.EmptySquare(4, 2)
        square4 = pieces.EmptySquare(4, 12)
        square5 = pieces.EmptySquare(3, 2)
        square6 = pieces.EmptySquare(3, 12)
        square7 = pieces.EmptySquare(4, 9)
        square8 = pieces.EmptySquare(3, 9)

        self.assertEqual(62.29, score.jump_pawn(black_pawn1, square1, factor))
        self.assertEqual(61.22, score.jump_pawn(black_pawn2, square2, factor))
        self.assertEqual(60.29, score.jump_pawn(black_pawn3, square3, factor))
        self.assertEqual(60.29, score.jump_pawn(black_pawn4, square4, factor))
        self.assertEqual(60.22, score.jump_pawn(black_pawn5, square5, factor))
        self.assertEqual(60.22, score.jump_pawn(black_pawn6, square6, factor))
        self.assertEqual(62.29, score.jump_pawn(black_pawn7, square7, factor))
        self.assertEqual(62.22, score.jump_pawn(black_pawn8, square8, factor))
Beispiel #11
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
Beispiel #12
0
    def test_scan_Pawn(self):
        new_score = score.Score()
        pawn = pieces.Pawn(True, 2, 13)
        moves = [{'from_row': 2, 'from_col': 13, 'to_row': 1, 'to_col': 13, 'score': 60.15},
                {'from_row': 2, 'from_col': 13, 'to_row': 1, 'to_col': 14, 'score': 43.0}]
        
        up          = scans.scan_up(self.actual_board, pawn)
        up_right    = scans.scan_up_right(self.actual_board, pawn)
        right       = scans.scan_right(self.actual_board, pawn)
        down_right  = scans.scan_down_right(self.actual_board, pawn)
        down        = scans.scan_down(self.actual_board, pawn)
        down_left   = scans.scan_down_left(self.actual_board, pawn)
        left        = scans.scan_left(self.actual_board, pawn)
        up_left     = scans.scan_up_left(self.actual_board, pawn)
        L           = scans.scan_L(self.actual_board, pawn)

        player.scan(new_score, up, pawn, True)
        player.scan(new_score, up_right, pawn, True)
        player.scan(new_score, right, pawn, True)
        player.scan(new_score, down_right, pawn, True)
        player.scan(new_score, down, pawn, True)
        player.scan(new_score, down_left, pawn, True)
        player.scan(new_score, left, pawn, True)
        player.scan(new_score, up_left, pawn, True)
        player.scan(new_score, L, pawn, True)

        self.assertEqual(moves, new_score.play_moves)
Beispiel #13
0
    def test_capture_piece_pawn_bad(self):
        factor = 1
        black_queen = pieces.Queen(False, 8, 8)
        white_pawn = pieces.Pawn(True, 12, 8)

        self.assertEqual(11,
                         score.capture_piece(black_queen, white_pawn, factor))
    def test_whitepawn_valid_move_jump(self):
        pawn = pieces.Pawn(True, 12, 1)

        empty_square1 = pieces.EmptySquare(11, 1)   # up
        empty_square2 = pieces.EmptySquare(10, 1)   # up

        self.assertTrue(pawn.valid_move(empty_square1))
        self.assertTrue(pawn.valid_move(empty_square2))
    def test_blackpawn_valid_move_jump(self):
        pawn = pieces.Pawn(False, 3, 1)

        empty_square1 = pieces.EmptySquare(4, 1)    # down
        empty_square2 = pieces.EmptySquare(5, 1)    # down

        self.assertTrue(pawn.valid_move(empty_square1))
        self.assertTrue(pawn.valid_move(empty_square2))
Beispiel #16
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)
Beispiel #17
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)
Beispiel #18
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)
    def test_blackpawn_invalid_move_capture(self):
        pawn = pieces.Pawn(False, 3, 1)

        rival1 = pieces.Pawn(True, 2, 1)     # up
        rival2 = pieces.Pawn(True, 2, 2)     # up_right
        rival3 = pieces.Pawn(True, 3, 2)     # right
        rival4 = pieces.Pawn(True, 2, 1)     # down
        rival5 = pieces.Pawn(True, 3, 0)     # left
        rival6 = pieces.Pawn(True, 2, 0)     # up_left

        self.assertFalse(pawn.valid_move(rival1))
        self.assertFalse(pawn.valid_move(rival2))
        self.assertFalse(pawn.valid_move(rival3))
        self.assertFalse(pawn.valid_move(rival4))
        self.assertFalse(pawn.valid_move(rival5))
        self.assertFalse(pawn.valid_move(rival6))
    def test_blackpawn_invalid_move_jump(self):
        pawn = pieces.Pawn(False, 3, 1)

        empty_square1 = pieces.EmptySquare(2, 1)    # up
        empty_square2 = pieces.EmptySquare(2, 2)    # up_right
        empty_square3 = pieces.EmptySquare(3, 2)    # right
        empty_square4 = pieces.EmptySquare(4, 2)    # down_right
        empty_square5 = pieces.EmptySquare(4, 0)    # down_left
        empty_square6 = pieces.EmptySquare(3, 0)    # left
        empty_square7 = pieces.EmptySquare(2, 0)    # up_left

        self.assertFalse(pawn.valid_move(empty_square1))
        self.assertFalse(pawn.valid_move(empty_square2))
        self.assertFalse(pawn.valid_move(empty_square3))
        self.assertFalse(pawn.valid_move(empty_square4))
        self.assertFalse(pawn.valid_move(empty_square5))
        self.assertFalse(pawn.valid_move(empty_square6))
        self.assertFalse(pawn.valid_move(empty_square7))
    def test_whitepawn_invalid_move_jump(self):
        pawn = pieces.Pawn(True, 12, 1)

        empty_square1 = pieces.EmptySquare(11, 2)   # up_right
        empty_square2 = pieces.EmptySquare(12, 2)   # rigth
        empty_square3 = pieces.EmptySquare(13, 2)   # down_right    
        empty_square4 = pieces.EmptySquare(13, 1)   # down
        empty_square5 = pieces.EmptySquare(13, 0)   # down_left
        empty_square6 = pieces.EmptySquare(12, 0)   # left
        empty_square7 = pieces.EmptySquare(11, 0)   # up_left

        self.assertFalse(pawn.valid_move(empty_square1))
        self.assertFalse(pawn.valid_move(empty_square2))
        self.assertFalse(pawn.valid_move(empty_square3))
        self.assertFalse(pawn.valid_move(empty_square4))
        self.assertFalse(pawn.valid_move(empty_square5))
        self.assertFalse(pawn.valid_move(empty_square6))
        self.assertFalse(pawn.valid_move(empty_square7))
    def test_whitekking_invalid_move_capture(self):
        king = pieces.King(True, 8, 8)

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

        self.assertFalse(king.valid_move(rival1))
        self.assertFalse(king.valid_move(rival2))
        self.assertFalse(king.valid_move(rival3))
        self.assertFalse(king.valid_move(rival4))
        self.assertFalse(king.valid_move(rival5))
        self.assertFalse(king.valid_move(rival6))
        self.assertFalse(king.valid_move(rival7))
        self.assertFalse(king.valid_move(rival8))
    def test_whitekking_valid_move_capture(self):
        king = pieces.King(True, 8, 8)

        rival1 = pieces.Pawn(False, 7, 8)     # up
        rival2 = pieces.Pawn(False, 7, 9)     # up_right
        rival3 = pieces.Pawn(False, 8, 9)     # right
        rival4 = pieces.Pawn(False, 9, 9)     # down_right
        rival5 = pieces.Pawn(False, 9, 8)    # down
        rival6 = pieces.Pawn(False, 9, 7)    # down_left
        rival7 = pieces.Pawn(False, 8, 7)     # left
        rival8 = pieces.Pawn(False, 7, 7)     # up_left

        self.assertTrue(king.valid_move(rival1))
        self.assertTrue(king.valid_move(rival2))
        self.assertTrue(king.valid_move(rival3))
        self.assertTrue(king.valid_move(rival4))
        self.assertTrue(king.valid_move(rival5))
        self.assertTrue(king.valid_move(rival6))
        self.assertTrue(king.valid_move(rival7))
        self.assertTrue(king.valid_move(rival8))
    def test_whitehorse_invalid_move_capture(self):
        horse = pieces.Horse(True, 8, 8)

        rival1 = pieces.Pawn(False, 7, 8)     # up
        rival2 = pieces.Pawn(False, 7, 9)     # up_right
        rival3 = pieces.Pawn(False, 8, 9)     # right
        rival4 = pieces.Pawn(False, 9, 9)     # dow_right
        rival5 = pieces.Pawn(False, 9, 8)     # down
        rival6 = pieces.Pawn(False, 9, 7)     # down_left
        rival7 = pieces.Pawn(False, 8, 7)     # left
        rival8 = pieces.Pawn(False, 6, 6)     # up_left

        self.assertFalse(horse.valid_move(rival1))
        self.assertFalse(horse.valid_move(rival2))
        self.assertFalse(horse.valid_move(rival3))
        self.assertFalse(horse.valid_move(rival4))
        self.assertFalse(horse.valid_move(rival5))
        self.assertFalse(horse.valid_move(rival6))
        self.assertFalse(horse.valid_move(rival7))
        self.assertFalse(horse.valid_move(rival8))
    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))
 def throw_exception_color():
     pawn = pieces.Pawn('asdd', 0, 0)
 def throw_exception_col_neg():
     pawn = pieces.Pawn(True, -1, 0)
 def throw_exception_col_higher():
     pawn = pieces.Pawn(True, 50, 0)