/// <summary> /// /// </summary> /// <returns></returns> public override string ToString() { if (m_serializedPath == null) { m_serializedPath = new StringBuilder(); for (int i = 0; i < TransitCells.Count; i++) { m_serializedPath.Append(Pathfinding.GetDirectionChar(Directions[i])); m_serializedPath.Append(Util.CellToChar(TransitCells[i])); } } return(m_serializedPath.ToString()); }
/// <summary> /// /// </summary> /// <param name="startCell"></param> /// <param name="endCell"></param> /// <param name="diagonal"></param> /// <param name="movementPoints"></param> /// <param name="obstacles"></param> /// <returns></returns> public string FindPathAsString(int startCell, int endCell, bool diagonal, int movementPoints = -1, IEnumerable <int> obstacles = null) { var movementPath = FindPath(startCell, endCell, diagonal, movementPoints, obstacles == null ? new List <int>() : obstacles); StringBuilder PathAsString = new StringBuilder(); for (int i = 0; i <= movementPath.Count() - 2; i++) { PathAsString.Append(Pathfinding.GetDirectionChar((Pathfinding.GetDirection(map, movementPath.ElementAt(i), movementPath.ElementAt(i + 1))))); PathAsString.Append(Util.CellToChar(movementPath.ElementAt(i + 1))); } return(PathAsString.ToString()); }