def testAll(self):
        board = Board(setup=True)
        dsa = DecisionSupportAlgorithm()
        dsa.set_foe_as_bot()
        dsa.enableDisableAlgo(True)

        moves = ((cordDic["e2"], cordDic["e4"]), (cordDic["d7"],
                                                  cordDic["d5"]))

        for cord0, cord1 in moves:
            board = board.move(Move(Cord(cord0), Cord(cord1), board))
        board.printPieces()

        # Not protected
        self.assertEqual(
            set([
                Cord("a1", color="Y"),
                Cord("h1", color="Y"),
                Cord("e4", color="R")
            ]), set(dsa.calculate_coordinate_in_danger(board, WHITE)))

        # protected by Queen, so no danger
        self.assertEqual(set([Cord("a8", color="Y"),
                              Cord("h8", color="Y")]),
                         set(dsa.calculate_coordinate_in_danger(board, BLACK)))

        # pawn go forward, no danger
        board = board.move(Move(Cord(E4), Cord(E5), board))
        self.assertEqual(
            set([
                Cord("a1", color="Y"),
                Cord("h1", color="Y"),
                Cord("e5", color="Y")
            ]), set(dsa.calculate_coordinate_in_danger(board, WHITE)))

        # Should not recognize king
        board_king = Board(setup=True)
        dsa_king = DecisionSupportAlgorithm()
        dsa_king.set_foe_as_bot()
        dsa_king.enableDisableAlgo(True)

        moves = ((cordDic["e2"], cordDic["e4"]),
                 (cordDic["f7"], cordDic["f5"]), (cordDic["d1"],
                                                  cordDic["h5"]))

        for cord0, cord1 in moves:
            board_king = board_king.move(
                Move(Cord(cord0), Cord(cord1), board_king))
            # board_king.printPieces()

        self.assertEqual(
            set([
                Cord("a8", color="Y"),
                Cord("h8", color="Y"),
                Cord("f5", color="Y")
            ]), set(dsa.calculate_coordinate_in_danger(board_king, BLACK)))
Exemple #2
0
    def test1(self):
        """ Testing Board.move() on frc castling in non frc game """
        board = Board(setup=True)

        moves = ((D2, D4), (G8, F6), (C2, C4), (G7, G6), (G2, G3), (F8, G7), (F1, G2), (E8, H8))

        for cord0, cord1 in moves:
            print(cord0, cord1)
            board = board.move(Move(Cord(cord0), Cord(cord1), board))
            board.printPieces()

        self.assertIsNone(board[Cord(E8)])
        self.assertIsNone(board[Cord(H8)])

        self.assertEqual(board[Cord(G8)].piece, Piece(BLACK, KING).piece)
        self.assertEqual(board[Cord(F8)].piece, Piece(BLACK, ROOK).piece)