示例#1
0
        public static Graph  InitTab(string[,] tab)
        {
            Graph graph  = new Graph();
            int   indice = 1;

            for (int line = 0; line < tab.GetLength(0); line++)
            {
                for (int column = 0; column < tab.GetLength(1); column++)
                {
                    if (tab[line, column].Length > 1)
                    {
                        Noeud n = new Noeud(new Vector2(column, line));
                        n.Indice   = indice++;
                        n.Obstacle = 0;
                        graph.ListNoeuds.Add(n);
                    }
                }
            }

            return(graph);
        }
示例#2
0
        public List <Noeud> rechercherChemin(Noeud noeudDepart, Noeud noeudFinal)
        {
            List <Noeud> list = algoAStar(noeudDepart, noeudFinal);
            List <Noeud> res  = new List <Noeud>();

            foreach (var n in list)
            {
                if (n.Indice == noeudFinal.Indice)
                {
                    Noeud noeud = n;

                    while (noeud.Parent != null)
                    {
                        res.Add(noeud);
                        noeud = noeud.Parent;
                    }

                    res.Add(noeud);
                }
            }

            res.Reverse();
            return(res);
        }