/// <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; }
private static void NotifierDeplacement(Chemin c, Joueur j, ListeJoueur lj) { //envoie message noptif var message = MessageFactory.GetInstanceOf(TypeMessage.Notif); message.PreparerMessage((object)j.UiUnique.ToString(), (object)c.ToString()); foreach (var joueur in lj.ToList().Where(joueur => joueur != j)) { joueur.EmetteurJoueur.envoyer(message); } }