def add_piece(self, piece: Piece, position: Position, player: Player):
        """Adds a piece on the board."""

        if piece.name == "King":
            if self.king_mask & 1 << player.value:
                return False
            else:
                self.king_mask |= 1 << player.value

        Guard.check_position(position, self.SIZE)

        piece.set_position(position)
        piece.set_player(player)
        self.board[piece.position.x][piece.position.y] = copy(piece)