Esempio n. 1
0
    def __init__(self,
                 mateInOne=False,
                 castleBoard=False,
                 pessant=False,
                 promotion=False):
        self.pieces = []
        self.history = []
        self.points = 0
        self.currentSide = WHITE
        self.movesMade = 0
        self.checkmate = False

        if not mateInOne and not castleBoard and not pessant and not promotion:
            self.pieces.extend([
                Rook(self, BLACK, C(0, 7)),
                Knight(self, BLACK, C(1, 7)),
                Bishop(self, BLACK, C(2, 7)),
                Queen(self, BLACK, C(3, 7)),
                King(self, BLACK, C(4, 7)),
                Bishop(self, BLACK, C(5, 7)),
                Knight(self, BLACK, C(6, 7)),
                Rook(self, BLACK, C(7, 7))
            ])
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6)))
            for x in range(8):
                self.pieces.append(Pawn(self, WHITE, C(x, 1)))
            self.pieces.extend([
                Rook(self, WHITE, C(0, 0)),
                Knight(self, WHITE, C(1, 0)),
                Bishop(self, WHITE, C(2, 0)),
                Queen(self, WHITE, C(3, 0)),
                King(self, WHITE, C(4, 0)),
                Bishop(self, WHITE, C(5, 0)),
                Knight(self, WHITE, C(6, 0)),
                Rook(self, WHITE, C(7, 0))
            ])

        elif promotion:
            pawnToPromote = Pawn(self, WHITE, C(1, 6))
            pawnToPromote.movesMade = 1
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend([pawnToPromote, kingWhite, kingBlack])

        elif pessant:
            pawn = Pawn(self, WHITE, C(1, 4))
            pawn2 = Pawn(self, BLACK, C(2, 6))
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend([pawn, pawn2, kingWhite, kingBlack])
            self.history = []
            self.currentSide = BLACK
            self.points = 0
            self.movesMade = 0
            self.checkmate = False
            firstMove = Move(pawn2, C(2, 4))
            self.makeMove(firstMove)
            self.currentSide = WHITE
            return
Esempio n. 2
0
    def __init__(self, mateInOne=False, castleBoard=False, pessant=False, promotion=False):
        self.pieces = []
        self.history = []
        self.points = 0
        self.player = WHITE
        self.move_count = 0
        self.checkmate = False

        if not mateInOne and not castleBoard and not pessant and not promotion:
            self.pieces.extend(
                [
                    Rook(self, BLACK, C(0, 7)),
                    Knight(self, BLACK, C(1, 7)),
                    Bishop(self, BLACK, C(2, 7)),
                    Queen(self, BLACK, C(3, 7)),
                    King(self, BLACK, C(4, 7)),
                    Bishop(self, BLACK, C(5, 7)),
                    Knight(self, BLACK, C(6, 7)),
                    Rook(self, BLACK, C(7, 7)),
                ]
            )
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6)))
            for x in range(8):
                self.pieces.append(Pawn(self, WHITE, C(x, 1)))
            self.pieces.extend(
                [
                    Rook(self, WHITE, C(0, 0)),
                    Knight(self, WHITE, C(1, 0)),
                    Bishop(self, WHITE, C(2, 0)),
                    Queen(self, WHITE, C(3, 0)),
                    King(self, WHITE, C(4, 0)),
                    Bishop(self, WHITE, C(5, 0)),
                    Knight(self, WHITE, C(6, 0)),
                    Rook(self, WHITE, C(7, 0)),
                ]
            )

        elif promotion:
            pawnToPromote = Pawn(self, WHITE, C(1, 6))
            pawnToPromote.movesMade = 1
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend([pawnToPromote, kingWhite, kingBlack])

        elif pessant:
            pawn = Pawn(self, WHITE, C(1, 4))
            pawn2 = Pawn(self, BLACK, C(2, 6))
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend([pawn, pawn2, kingWhite, kingBlack])
            self.history = []
            self.player = BLACK
            self.points = 0
            self.move_count = 0
            self.checkmate = False
            firstMove = Move(pawn2, C(2, 4))
            self.make_move(firstMove)
            self.player = WHITE
            return
Esempio n. 3
0
    def __init__(self, mateInOne=False, castleBoard=True,
                 pessant=False, promotion=False, testing= 0):
        self.pieces = []
        self.whiteCaptured = []
        self.blackCaptured = []
        self.history = []
        self.points = 0
        self.currentSide = WHITE
        self.movesMade = 0
        self.checkmate = False

        #testing 1: normal board 
        if not mateInOne and not pessant and not promotion and testing < 2:
            self.pieces.extend([Rook(self, BLACK, C(0, 7), 0),
                                Knight(self, BLACK, C(1, 7), 0),
                                Bishop(self, BLACK, C(2, 7), 0),
                                Queen(self, BLACK, C(3, 7), 0),
                                King(self, BLACK, C(4, 7), 0),
                                Bishop(self, BLACK, C(5, 7), 1),
                                Knight(self, BLACK, C(6, 7), 1),
                                Rook(self, BLACK, C(7, 7), 1)])
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6), x))
            for x in range(8):
                self.pieces.append(Pawn(self, WHITE, C(x, 1), x))
            self.pieces.extend([Rook(self, WHITE, C(0, 0), 0),
                                Knight(self, WHITE, C(1, 0), 0),
                                Bishop(self, WHITE, C(2, 0), 0),
                                Queen(self, WHITE, C(3, 0), 0),
                                King(self, WHITE, C(4, 0), 0),
                                Bishop(self, WHITE, C(5, 0), 1),
                                Knight(self, WHITE, C(6, 0), 1),
                                Rook(self, WHITE, C(7, 0), 1)])

        elif promotion:
            pawnToPromote = Pawn(self, WHITE, C(1, 6), 8)
            pawnToPromote.movesMade = 1
            kingWhite = King(self, WHITE, C(4, 0), 2)
            kingBlack = King(self, BLACK, C(3, 2), 2)
            self.pieces.extend([pawnToPromote, kingWhite, kingBlack])

        elif pessant:
            pawn = Pawn(self, WHITE, C(1, 4), 8)
            pawn2 = Pawn(self, BLACK, C(2, 6), 8)
            kingWhite = King(self, WHITE, C(4, 0), 2)
            kingBlack = King(self, BLACK, C(3, 2), 2)
            self.pieces.extend([pawn, pawn2, kingWhite, kingBlack])
            self.history = []
            self.currentSide = BLACK
            self.points = 0
            self.movesMade = 0
            self.checkmate = False
            firstMove = Move(pawn2, C(2, 4))
            self.makeMove(firstMove)
            self.currentSide = WHITE
            return
        #white pawn being able to capture 1 piece 
        elif testing == 2:
            self.pieces.extend([Bishop(self, BLACK, C(5, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(6, 2), 0)])
        #testing for pawn being able to capture 2 pieces 
        elif testing ==3:
            self.pieces.extend([Bishop(self, BLACK, C(4, 3), 0)])
            self.pieces.extend([Knight(self, BLACK, C(2, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(3, 2), 0)])
        #testing taking a piece that can be captured by 2 pieces
        elif testing ==4:
            self.pieces.extend([Bishop(self, WHITE, C(3, 1), 0)])
            self.pieces.extend([Knight(self, BLACK, C(2, 2), 0)])
            self.pieces.extend([Queen(self, WHITE, C(5, 2), 0)])
        #black queen capturing 1 piece
        elif testing ==5:
            self.pieces.extend([Rook(self, WHITE, C(3, 4), 0)])
            self.pieces.extend([Knight(self, WHITE, C(7, 5), 0)])
            self.pieces.extend([Queen(self, BLACK, C(4, 5), 0)])
        #black castle queen side with scattered pieces
        elif testing ==6:
            self.pieces.extend([Rook(self, BLACK, C(0, 7), 0)])
            self.pieces.extend([King(self, BLACK, C(4, 7), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(2, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(3, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(4, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(5, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(6, 3), 0)])
            self.pieces.extend([Rook(self, WHITE, C(0, 3), 0)])
        elif testing ==7:
            self.pieces.extend([Rook(self, BLACK, C(7, 7), 0)])
            self.pieces.extend([King(self, BLACK, C(4, 7), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(2, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(3, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(4, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(5, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(6, 3), 0)])
            self.pieces.extend([Rook(self, WHITE, C(0, 3), 0)])
        elif testing ==8:
            self.pieces.extend([Rook(self, BLACK, C(0, 0), 0)])
            self.pieces.extend([King(self, BLACK, C(4, 0), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(2, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(3, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(4, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(5, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(6, 3), 0)])
            self.pieces.extend([Rook(self, WHITE, C(0, 3), 0)])
        elif testing ==9:
            self.pieces.extend([Rook(self, BLACK, C(7, 0), 0)])
            self.pieces.extend([King(self, BLACK, C(4, 0), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(2, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(3, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(4, 3), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(5, 2), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(6, 3), 0)])
            self.pieces.extend([Rook(self, WHITE, C(0, 3), 0)])
        elif testing ==10:
            self.pieces.extend([Pawn(self, BLACK, C(6, 6), 0)])
            self.pieces.extend([Pawn(self, WHITE, C(5, 4), 0)])
            # need to move the pawn so that the en passant is a legal move
        elif testing == 11:
            self.pieces.extend([Knight(self, WHITE, C(4, 4), 0)])
            self.pieces.extend([Queen(self, BLACK, C(7, 1), 0)])
        elif testing == 12:
            self.pieces.extend([Rook(self, BLACK, C(0, 7), 0),
                                Knight(self, BLACK, C(1, 7), 0),
                                Bishop(self, BLACK, C(2, 7), 0),
                                Queen(self, BLACK, C(3, 7), 0),
                                King(self, BLACK, C(4, 7), 0),
                                Bishop(self, BLACK, C(5, 7), 1),
                                Knight(self, BLACK, C(6, 7), 1),
                                Rook(self, BLACK, C(7, 7), 1)])
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6), x))
            for x in range(8):
                self.pieces.append(Pawn(self, WHITE, C(x, 1), x))
            self.pieces.extend([Rook(self, WHITE, C(0, 0), 0),
                                Knight(self, WHITE, C(1, 0), 0),
                                Bishop(self, WHITE, C(2, 0), 0),
                                Queen(self, WHITE, C(3, 0), 0),
                                King(self, WHITE, C(4, 0), 0),
                                Bishop(self, WHITE, C(5, 0), 1),
                                Knight(self, WHITE, C(6, 0), 1),
                                Rook(self, WHITE, C(7, 0), 1)])
        elif testing == 13:
            self.pieces.extend([Rook(self, BLACK, C(0, 4), 0),
                                Knight(self, BLACK, C(1, 7), 0),
                                Bishop(self, BLACK, C(1, 2), 0),
                                Queen(self, BLACK, C(3, 7), 0),
                                King(self, BLACK, C(4, 7), 0),
                                Bishop(self, BLACK, C(5, 7), 1),
                                Knight(self, BLACK, C(6, 4), 1),
                                Rook(self, BLACK, C(7, 7), 1)])
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6), x))
            for x in range(7):
                self.pieces.append(Pawn(self, WHITE, C(x, 1), x))
            self.pieces.extend([Pawn(self,  WHITE, C(6, 2), 7),
                                Rook(self, WHITE, C(0, 2), 0),
                                Knight(self, WHITE, C(3, 3), 0),
                                Bishop(self, WHITE, C(2, 0), 0),
                                Queen(self, WHITE, C(3, 0), 0),
                                King(self, WHITE, C(4, 0), 0),
                                Bishop(self, WHITE, C(5, 0), 1),
                                Knight(self, WHITE, C(6, 0), 1),
                                Rook(self, WHITE, C(1, 5), 1)])
Esempio n. 4
0
    def __init__(self,
                 mateInOne=False,
                 castleBoard=False,
                 passant=False,
                 promotion=False):
        self.pieces = []
        self.history = []
        self.points = 0
        self.currentSide = WHITE
        self.movesMade = 0
        self.checkmate = False

        if not mateInOne and not castleBoard and not passant and not promotion:
            self.pieces.extend([
                Rook(self, BLACK, C(0, 7)),
                Knight(self, BLACK, C(1, 7)),
                Bishop(self, BLACK, C(2, 7)),
                Queen(self, BLACK, C(3, 7)),
                King(self, BLACK, C(4, 7)),
                Bishop(self, BLACK, C(5, 7)),
                Knight(self, BLACK, C(6, 7)),
                Rook(self, BLACK, C(7, 7))
            ])
            for x in range(8):
                self.pieces.append(Pawn(self, BLACK, C(x, 6)))
            for x in range(8):
                self.pieces.append(Pawn(self, WHITE, C(x, 1)))
            self.pieces.extend([
                Rook(self, WHITE, C(0, 0)),
                Knight(self, WHITE, C(1, 0)),
                Bishop(self, WHITE, C(2, 0)),
                Queen(self, WHITE, C(3, 0)),
                King(self, WHITE, C(4, 0)),
                Bishop(self, WHITE, C(5, 0)),
                Knight(self, WHITE, C(6, 0)),
                Rook(self, WHITE, C(7, 0))
            ])

        elif mateInOne:
            kingW = King(self, WHITE, C(4, 0))
            kingB = King(self, BLACK, C(4, 7))
            rook1 = Rook(self, WHITE, C(3, 0))
            rook2 = Rook(self, WHITE, C(5, 0))
            queen = Queen(self, WHITE, C(7, 1))
            self.pieces.extend([kingW, kingB, rook1, rook2, queen])

        elif castleBoard:
            kingW = King(self, WHITE, C(4, 0))
            kingB = King(self, BLACK, C(4, 7))
            rook1 = Rook(self, WHITE, C(0, 0))
            rook2 = Rook(self, WHITE, C(7, 0))
            pawn1 = Pawn(self, WHITE, C(1, 3))
            pawn2 = Pawn(self, WHITE, C(2, 1))
            bshp = Bishop(self, WHITE, C(3, 3))
            queen = Queen(self, BLACK, C(2, 4))
            self.pieces.extend(
                [kingW, kingB, rook1, rook2, pawn1, pawn2, bshp, queen])

        elif promotion:
            pawn1 = Pawn(self, WHITE, C(1, 6))
            pawn1.movesMade = 1
            pawn2 = Pawn(self, WHITE, C(2, 6))
            pawn3 = Pawn(self, WHITE, C(3, 5))
            pawnB = Pawn(self, BLACK, C(2, 7))
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend(
                [pawn1, pawn2, pawn3, pawnB, kingWhite, kingBlack])

        elif passant:
            pawn = Pawn(self, WHITE, C(1, 4))
            pawn2 = Pawn(self, BLACK, C(2, 6))
            kingWhite = King(self, WHITE, C(4, 0))
            kingBlack = King(self, BLACK, C(3, 2))
            self.pieces.extend([pawn, pawn2, kingWhite, kingBlack])
            self.history = []
            self.currentSide = BLACK
            self.points = 0
            self.movesMade = 0
            self.checkmate = False
            firstMove = Move(pawn2, C(2, 4))
            self.makeMove(firstMove)
            self.currentSide = WHITE
            return