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
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
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)])
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