public List<Direction> GetDirections(Coord currPos, int numSteps = -1) { var n = numSteps == -1 ? path.Count : Math.Min(path.Count, numSteps); var directions = new List<Direction>(n); if (n > 0) { directions.Add(currPos.DirectionFromOffset(path[0])); for (int i = n - 1; i > 0; i--) { directions.Add(path[i].DirectionFromOffset(path[i - 1])); } } return directions; }