无向图 解决Unity地图上固定网络上,标记走固定步数能到达的位置
首先需要了解无向图的定义
参考:https://www.cnblogs.com/wxgblogs/p/5572391.html
我们选择链表的方式进行操作。
int StartPositon; int prePosition; static List<PointEdge> myEdges; static string Final_Positions = ""; public struct PointEdge { public int currentPosition; public int[] connectArray; public PointEdge(int count_temp, int[] intPositon) { currentPosition = count_temp; connectArray = intPositon; } } public void FindTipPosition(int curPosition,int oldPosition,PointEdge edges,int step_count) { if (step_count == 0) { HightLightTips(curPosition); Final_Positions = Final_Positions+","+curPosition.ToString(); } else foreach (var edge in edges.connectArray) { if (edge != oldPosition) FindTipPosition(edge, curPosition, myEdges[edge], step_count - 1); else Debug.Log(oldPosition + "不回头走" + edge); } } void Start () { myEdges = Read("Assets/Resources/RED_PATH.txt"); Debug.Log(myEdges.Count); //CheckData(myEdges); FindTipPosition(0, -1, myEdges[0], 6); Debug.Log(Final_Positions); }
这里不知道能不能使用递归,希望有大佬能教我一下,感激!