示例#1
0
        public static Chemin GetFromString(string chemin)
        {
            Chemin c = new Chemin();
            string[] temp = chemin.Split('|');
            if (temp.Length == 1 && temp[0] == "Chemin vide")
                return c;

            //ici one st sur que chemin non vide
            foreach (string t in temp)
            {
                string[] tempo = t.Split(',');
                c.AddMouvementFin(new Vecteur(Int32.Parse(tempo[0]), Int32.Parse(tempo[1])));

            }

            return c;
        }
示例#2
0
        /// <summary>
        /// Calcule le chemin (prenant en compte les obstacles) pour aller d'un point à un autre
        /// </summary>
        /// <param name="oDepart">Coordonnee de depart</param>
        /// <param name="oArrivee">coordonnee d'arrivee</param>
        /// <returns>Chemin à emprunter pour y arriver</returns>
        public Chemin CalculerChemin(Coordonnees oDepart, Coordonnees oArrivee)
        {
            var c = new Chemin();

            var a = oDepart.X;
            var b = oArrivee.X;
            var cpt = oDepart.X;
            var res = this.GetChemin(oDepart, oArrivee);
            List<Coordonnees> result = res.Select(t => t.pos).Reverse().ToList();
            for (int i = 0; i < result.Count - 1; i++)
            {
                var diff = (result[i + 1] - result[i]);
                c.AddMouvementFin(new Vecteur(diff));
            }

            Console.WriteLine("Chemin calculé pour aller de " + oDepart + " à " + oArrivee + " : ");
            Console.WriteLine(c.ToString());

            return c;
        }
示例#3
0
 public Chemin Clone()
 {
     Chemin c = new Chemin();
     foreach (Vecteur parcour in parcours)
     {
         c.AddMouvementFin(parcour);
     }
     return c;
 }