code: def move_round_to(self, points, steps):
          
          # Spline interpolation needs a before and after point for the curve.
          # Duplicate the first and last points to handle this.  We also need
          # to move from the current position to the first specified point.
          points.insert(0, (self._rec_x, self._rec_y))
          points.insert(0, (self._rec_x, self._rec_y))
          points.append(points[-1])
  
          # Convert the points into an interpolated set of more detailed points.
          steps_per_spline = steps // (len(points) - 3)
          for j in range(1, len(points) - 2):
              for t in range(1, steps_per_spline + 1):
                  y = _spline(float(t) / steps_per_spline,
                              float(points[j - 1][1]),
                              float(points[j][1]),
                              float(points[j + 1][1]),
                              float(points[j + 2][1]))
                  x = int(points[j][0] + ((points[j + 1][0] - points[j][0]) *
                                          float(t) / steps_per_spline))
                  self._add_step((x, int(y)))
docs: Follow a path pre-defined by a set of at least 4 points.  This Path will
          interpolate the points into a curve and follow that curve.
  
          :param points: The list of points that defines the path.
          :param steps: The number of steps to take to follow the path.