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; }
/// <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; }
public Chemin Clone() { Chemin c = new Chemin(); foreach (Vecteur parcour in parcours) { c.AddMouvementFin(parcour); } return c; }