protected override void DistribuerZones() { var link = new LinkCaseToZone(); for (int i = 0; i < GameManager.Longueur; ++i) { for (int j = 0; j < GameManager.Largeur; ++j) { if (i < GameManager.Longueur/2) { if (j < GameManager.Largeur/3) { // ZONE DEHORS var coor = new Coordonnees(i, j); ZoneExterne.AjouterCase(coor); link.LinkObject(coor, ZoneExterne, Simulation.Tableau); } else if (j < (3*GameManager.Largeur/4)) { // CAISSES CLIENTS var coor = new Coordonnees(i, j); CaissesClient.AjouterCase(coor); link.LinkObject(coor, CaissesClient, Simulation.Tableau); } else { // CAISSES CUISTOTS var coor = new Coordonnees(i, j); CaissesCuistots.AjouterCase(coor); link.LinkObject(coor, CaissesCuistots, Simulation.Tableau); } } else { if (j < GameManager.Largeur/3) { // ZONE EXTERNE var coor = new Coordonnees(i, j); ZoneExterne.AjouterCase(coor); link.LinkObject(coor, ZoneExterne, Simulation.Tableau); } else { // ZONE REPAS var coor = new Coordonnees(i, j); ZoneRepas.AjouterCase(coor); link.LinkObject(coor, ZoneRepas, Simulation.Tableau); } } } } }
private List<ArrayList> RecupererChemins(Grille grille,Coordonnees casedepart, List<ObjetAbstrait> objets) { if(grille == null) throw new NullReferenceException("La grille renseignée est nulle !"); var list = new List<ArrayList>(); foreach (var obj in objets) { var chemin = grille.Route(casedepart, obj.Case); grille.ReinitialiserMinDistances(); list.Add(chemin); } return list; //return objets.Select(obj => grille.Route(casedepart, obj.Case)).ToList(); }
public void LinkObject(Coordonnees coor, SujetObserveAbstrait obj, Grille grille) { if (coor == null) return; if (!coor.EstValide()) return; if(grille == null) return; if (TestNullObject(obj)) return; var node = GetNode(coor,grille); if (node == null) { Console.WriteLine("LinkCaseToZone: Impossible de récupérer une node viable en " + coor); return; } AttachObjectToCase(node, obj); AttachCaseToObject(node, obj); }
public Bee(string nom,Coordonnees coor) : base("Abeille", EGame.Honeyland, new TextureBee()) { SetCoordonnees(coor); Etat = new Etat_Free(); }
private void MyMap_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { Point mouseLeftButtonUpPosition = new Point(e.GetPosition(MyMap).X, e.GetPosition(MyMap).Y); if (mouseLeftButtonUpPosition == MouseLeftButtonDownPoisition) // OnClick { switch (EditMode) { case EditModes.Select: bool elementSelected = false; for (int i = MapData.ICartoObjs.Count() - 1; i >= 0; i--) // Reverse loop because the last element is the first showed on screen { Point clickPoint = e.GetPosition(MyMap); MyMap.TryViewportPointToLocation(clickPoint, out Location clickLocation); Coordonnees clickCoordonnees = new Coordonnees(clickLocation.Latitude, clickLocation.Longitude); CartoObj cartoObj = MapData.ICartoObjs[i] as CartoObj; if (cartoObj.IsPointClose(clickCoordonnees, _PRECISION)) { elementSelected = true; LbCartographyObjects.SelectedItem = MapData.ICartoObjs[i]; LbCartographyObjects.ScrollIntoView(MapData.ICartoObjs[i]); break; } } if (!elementSelected) { LbCartographyObjects.SelectedItem = null; } break; case EditModes.Add: Location ClickLocation; MyMap.TryViewportPointToLocation(e.GetPosition(MyMap), out ClickLocation); switch (CbType.SelectedIndex) { case 0: // Point of interest AddPushpin(ClickLocation); break; case 1: // Travel AddPointToTravel(ClickLocation); break; case 2: // Surface AddPointToSurface(ClickLocation); break; } UpdateLbCartographyObjectsItemsSource(); break; case EditModes.Remove: bool somethingToRemove = false; ICartoObj toRemove = new POI(); // Default value for (int i = MapData.ICartoObjs.Count() - 1; i >= 0; i--) // Reverse loop because the last element is the first showed on screen { ICartoObj iCartoObj = MapData.ICartoObjs[i]; Point clickPoint = e.GetPosition(MyMap); MyMap.TryViewportPointToLocation(clickPoint, out Location clickLocation); Coordonnees clickCoordonnees = new Coordonnees(clickLocation.Latitude, clickLocation.Longitude); CartoObj cartoObj = iCartoObj as CartoObj; if (cartoObj.IsPointClose(clickCoordonnees, _PRECISION)) { somethingToRemove = true; toRemove = iCartoObj; UIElement uiElement = (UIElement)(iCartoObj.Tag); MyMap.Children.Remove(uiElement); UpdateLbCartographyObjectsItemsSource(); break; } } if (somethingToRemove) { MapData.Remove(toRemove); } break; case EditModes.Update: bool somethingToUpdate = false; ICartoObj toUpdate = new POI(); // Default value for (int i = MapData.ICartoObjs.Count() - 1; i >= 0; i--) // Reverse loop because the last element is the first showed on screen { ICartoObj iCartoObj = MapData.ICartoObjs[i]; Point clickPoint = e.GetPosition(MyMap); MyMap.TryViewportPointToLocation(clickPoint, out Location clickLocation); Coordonnees clickCoordonnees = new Coordonnees(clickLocation.Latitude, clickLocation.Longitude); CartoObj cartoObj = iCartoObj as CartoObj; if (cartoObj.IsPointClose(clickCoordonnees, _PRECISION)) { somethingToUpdate = true; toUpdate = iCartoObj; break; } } if (somethingToUpdate) { UpdateWindow updateWindow = new UpdateWindow(toUpdate); updateWindow.send = UpdateMapAndListBox; updateWindow.Show(); } UpdateLbCartographyObjectsItemsSource(); break; } } else // OnDrag // Nothing { } }
static void Main(string[] args) { //Constructeur par defaut Coordonnees c1 = new Coordonnees(); POI poi1 = new POI(); Polyline PolyL1 = new Polyline(); Polygon PolyG1 = new Polygon(); //Constructeur d'initialisation Coordonnees c2 = new Coordonnees(2, 2); Coordonnees c3 = new Coordonnees(4, -2); Coordonnees c4 = new Coordonnees(1, -5); Coordonnees c5 = new Coordonnees(-3, 0); Coordonnees c6 = new Coordonnees(5, 5); POI poi2 = new POI("Magnée", c3); Coordonnees[] tab1 = { new Coordonnees(2, 0), new Coordonnees(-4, 0), new Coordonnees(-4, -4) }; Coordonnees[] tab2 = { c3, c2, c4, c5, c6 }; Coordonnees[] tab3 = { new Coordonnees(3, 3), new Coordonnees(3, 8), new Coordonnees(2, 8) }; Coordonnees[] tab4 = { new Coordonnees(-3, 3), new Coordonnees(0, 5), new Coordonnees(5, 2), new Coordonnees(2, -4), new Coordonnees(-2, -3) }; Coordonnees[] tabref = { new Coordonnees(0, 0), new Coordonnees(6, 0) }; Polyline PolyL2 = new Polyline(tab1, Colors.Blue, 10); Polygon PolyG2 = new Polygon(tab2, Colors.Lime, Colors.Aqua, 1); Polyline pol1 = new Polyline(tab1, Colors.Azure, 5); Polyline pol2 = new Polyline(tab2, Colors.CornflowerBlue, 2); Polyline pol3 = new Polyline(tab3, Colors.Coral, 7); Polyline pol4 = new Polyline(tab4, Colors.DarkRed, 9); Polyline Reference = new Polyline(tabref, Colors.DarkBlue, 2); MyPolylineBoundingBoxComparer pcomp = new MyPolylineBoundingBoxComparer(); CartoObjComparer ocomp = new CartoObjComparer(); //Liste générique List <CartoObj> cartoObj = new List <CartoObj>() { c1, c2, poi1, poi2, PolyL1, PolyL2, PolyG1, PolyG2 }; List <Polyline> polyline = new List <Polyline>() { pol1, pol2, pol3, pol4 }; Console.WriteLine("=============================================="); Console.WriteLine("------ c1 (Cpd) ---------"); Console.WriteLine(c1); Console.WriteLine("------ poi1 (Cpd) -------"); Console.WriteLine(poi1); Console.WriteLine("\n=============================================="); Console.WriteLine("------ c2 (Cinit) -------"); Console.WriteLine(c2); Console.WriteLine("------ poi2 (Cinit) -----"); Console.WriteLine(poi2); Console.WriteLine("\n=============================================="); Console.WriteLine("------ PolyL1 (Cpd) -----"); PolyL1.Draw(); Console.WriteLine("\n------ PolyG1 (Cpd) -----"); PolyG1.Draw(); Console.WriteLine("\n=============================================="); Console.WriteLine("------ PolyL2 (Cinit) -----"); PolyL2.Draw(); Console.WriteLine("\n------ PolyG2 (Cinit) -----"); PolyG2.Draw(); Console.WriteLine("\n=============================================="); Console.WriteLine("\nc1 IsPointClose c2"); Console.WriteLine("---> " + c1.IsPointClose(new Coordonnees(1, 6), 6)); Console.WriteLine("\npoi1 IsPointClose poi2"); Console.WriteLine("---> " + poi1.IsPointClose(poi2, 4.9)); Console.WriteLine("\nPolyline IsPointClose c"); Console.WriteLine("---> " + PolyL2.IsPointClose(new Coordonnees(-3, -4), 1.1)); Console.WriteLine("\nPolygon IsPointClose c"); Console.WriteLine("---> " + PolyG2.IsPointClose(new Coordonnees(-3, 3), 0)); Console.WriteLine("\nNbrPoint PolyLline"); Console.WriteLine("---> " + PolyL2.GetNumberOfPoint()); Console.WriteLine("\nNbrPoint Polygon"); Console.WriteLine("---> " + PolyG2.GetNumberOfPoint()); Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage de la liste générique de CartoObj\n"); foreach (CartoObj c in cartoObj) { c.Draw(); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage des CartoObj IPointy\n"); foreach (CartoObj c in cartoObj) { if (c is IPointy) { c.Draw(); Console.WriteLine("-----> is Ipointy\n"); } } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage des CartoObj qui ne sont pas IPointy\n"); foreach (CartoObj c in cartoObj) { if (!(c is IPointy)) { Console.WriteLine(c + " is not Ipointy"); } } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage de la liste générique de polyline\n"); foreach (Polyline p in polyline) { p.Draw(); Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n"); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage des polyline trier par ordre de longueur\n"); polyline.Sort(); foreach (Polyline p in polyline) { p.Draw(); Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n"); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage des polyline trier par ordre de surface de BoundingBox\n"); polyline.Sort(pcomp); foreach (Polyline p in polyline) { p.Draw(); Console.WriteLine("Surface de la BoundingBox = " + p.PolylineBoundingBox() + "\n"); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nRecherche si une liste de Polyline contient un polyline de même longueur qu'un polyline de reference\n"); double longueur = MathUtile.Longueur(Reference.Collection); Polyline res = polyline.Find(x => MathUtile.Longueur(x.Collection) == longueur); if (res == null) { Console.WriteLine("Aucune Polyline trouver"); } else { Console.WriteLine("Longueur polyline de reference = " + longueur); Console.WriteLine("Longueur polyline trouver = " + MathUtile.Longueur(res.Collection)); res.Draw(); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage des polyline qui sont proche d'un point\n"); int cpt = 0; foreach (Polyline p in polyline) { if ((p.IsPointClose(new Coordonnees(0, 0), 1)) == true) { Console.WriteLine("Ce polyline est proche du point"); p.Draw(); cpt++; } } if (cpt == 0) { Console.WriteLine("Aucun Polyline n'est proche du point..."); } Console.WriteLine("\n=============================================="); Console.WriteLine("\nAffichage d'une liste de CartoObj trier par nombre de point\n"); cartoObj.Sort(ocomp); foreach (CartoObj c in cartoObj) { c.Draw(); Console.WriteLine("Nombre de point -------> " + c.NbrPointCarto() + "\n"); } Console.ReadKey(); }
public Caisse(string nom, Coordonnees coor) : base(nom, EGame.AgeOfKebab, new TextureDollar3D()) { SetCoordonnees(coor); }
public Bee(string nom, Coordonnees coor) : base("Abeille", EGame.Honeyland, new TextureBee()) { SetCoordonnees(coor); Etat = new Etat_Free(); }
public GatherPoint(EGame nomdujeu, Coordonnees coor) : base("Point de rassemblement générique", nomdujeu, new TextureFootIcon()) { SetCoordonnees(coor); }
public List<Coordonnees> FindAjacentOfZone(Coordonnees coor, ZoneFinale zone) { List<Coordonnees> list = new List<Coordonnees>(); if (zone == null) return list; if (coor == null || !coor.EstValide()) return list; foreach (var adj in Coordonnees.ObtenirCasesAdjacentes(coor)) { if(zone.ContientCoordonnees(adj)) list.Add(adj); } return list; }
public IEnumerable <ISecteur> Secteurs(Coordonnees position, double distance) { return(new List <ISecteur>()); }
public Node(Coordonnees coor) : base(coor.ToString()) { Coor = coor; }
public static void Main(string[] args) { Console.WriteLine("************COORDONNEES************\n"); Coordonnees A = new Coordonnees(40.25, 48.25); Coordonnees B = new Coordonnees(2.25, 12.25); Coordonnees C = new Coordonnees(3.45, 50.45); Coordonnees D = new Coordonnees(3.25, 10.45); Coordonnees Z = new Coordonnees(5.2, 11); A.latitude = 41.2; Console.WriteLine(A.ToString()); Console.WriteLine(C.ToString()); Console.WriteLine("\n**************POI**************\n"); POI E = new POI(); POI F = new POI("ici", 25.2, 1.25); POI Y = new POI("ok", 14, 2); Console.WriteLine(E.ToString()); Console.WriteLine(F.ToString()); Console.WriteLine("\n**************** Polyline******************\n"); Polyline Poly1 = new Polyline(new List <Coordonnees>() { A, D, Y }, 10, Color.FromArgb(255, 255, 255, 255), 1); Polyline Poly2 = new Polyline(new List <Coordonnees>() { E, F }, 15, Color.FromArgb(0, 0, 0, 0), 1); Polyline Poly3 = new Polyline(new List <Coordonnees>() { Z, A }, 11, Color.FromArgb(254, 0, 211, 0), 0); Polyline Poly4 = new Polyline(new List <Coordonnees>() { Z, B }, 11, Color.FromArgb(254, 158, 251, 0), 0); Console.WriteLine(Poly1.ToString()); Console.WriteLine(Poly2.ToString()); Console.WriteLine("\n**************Polygone**********************\n"); Polygone Polygone = new Polygone(new List <Coordonnees>() { A, D, E }, Color.FromArgb(165, 187, 195, 0), Color.FromArgb(165, 200, 140, 165), 1, 1); Polygone P5 = new Polygone(); Console.WriteLine(Polygone.ToString()); Console.WriteLine(P5.ToString()); Console.WriteLine("\n******************Liste CartObj********************\n"); List <CartoObj> ListeCart = new List <CartoObj>(); ListeCart.Add(A); ListeCart.Add(E); ListeCart.Add(F); ListeCart.Add(Poly1); ListeCart.Add(Poly2); //Afficher la liste ListeCart.ForEach(item => Console.WriteLine(item)); //Afficher ceux qui utilise ipointy Console.Write("\n****************On affiche ceux qui utilise IPOINTY*************\n"); foreach (CartoObj item in ListeCart) { if (!(item is IPointy)) { item.Draw(); } } Console.Write("\n****************On affiche ceux qui n'utilise pas IPOINTY*************\n"); foreach (CartoObj item in ListeCart) { if (item is IPointy) { item.Draw(); } } Console.WriteLine("\n****************Cree une liste de 5 polyline***********************\n"); List <Polyline> Polyliste = new List <Polyline>(); Polyliste.Add(Poly1); Polyliste.Add(Poly2); Polyliste.Add(Poly3); Polyliste.Add(Poly4); foreach (Polyline item in Polyliste) { Console.WriteLine(item.ToString()); } Polyliste.Sort(); Console.WriteLine("\n*************************** On Affiche la liste polyline triee -> longueur********************"); foreach (Polyline item in Polyliste) { Console.WriteLine(item.ToString()); } Console.WriteLine("\n*************************** On Affiche la liste polyline triee -> AIR Box********************"); MyPolylineBoundingBoxComparer Compare = new MyPolylineBoundingBoxComparer(); Polyliste.Sort(Compare); foreach (Polyline item in Polyliste) { Console.WriteLine(item.ToString()); } Console.WriteLine("\n******************Nombre de point Different Dans poly 1 : **************************"); int point = Poly1.NbPoints; Console.WriteLine("il y a : " + point + "point(s) différent"); Console.WriteLine("\n**************** Utilisation de IPointCLose*************"); Polyline P = Polyliste.Find(i => i.IsPointClose(25.2, 71, 1) == 1); //recherche dans la liste un element qui correspont if (P == null) // il ne sera pas proche { Console.WriteLine("Le point n'est pas proche."); } else { Console.WriteLine("Le point est proche ===>"); P.Draw(); } Polyline P2 = Polyliste.Find(i => i.IsPointClose(41.2, 48, 1) == 1); //recherche dans la liste un element qui correspont if (P2 == null) // il sera proche de la coordonnee A { Console.WriteLine("Le point n'est pas proche."); } else { Console.WriteLine("Le point est proche ===>"); P2.Draw(); } Console.WriteLine("\n*********************Test Longueur*******************\n"); double longueur = Poly1.LongueurPoly(); Console.WriteLine("Voici la longueur: " + longueur); Polyline PP = Polyliste.Find(i => i.LongueurPoly() == longueur); if (PP == null) { Console.WriteLine("Aucun point ne correspond a cette longueur"); } else { PP.Draw(); } Console.WriteLine("TestLoad et Save"); ObservableCollection <ICartoObj> ListeTest = new ObservableCollection <ICartoObj>(); ListeTest.Add(Poly1); MyPersonalMapData user = new MyPersonalMapData("Dresse", "Amarige", "email1"); user.ObservableCollection = ListeTest; user.Save(); Console.ReadKey(); }
protected static bool PlacerPoint(ZoneFinale zonedepart, ZoneFinale zonearrivee, bool doReverseToo, Coordonnees coorReverse) { if (zonedepart == null || zonearrivee == null) { Console.Write("PlacerPoint: La zone de départ/arrivée est nulle ! "); return(false); } string accesspointname = "Pt d'accès de " + zonedepart.nom + " vers " + zonearrivee.nom; var accesspoint = new AccessPoint(accesspointname, zonedepart.Simulation.NomDuJeu, zonearrivee); if (doReverseToo) { var list = new AccessPointFinder().Find(zonedepart, zonearrivee); if (list.Count == 0) { Console.WriteLine("Aucun point d'accès ne peut être placé entre la zone " + zonedepart + " et " + zonearrivee); } else { foreach (var coor in list) // Place l'objet dans la première coordonnée valide { accesspoint.SetCoordonnees(coor); if (zonedepart.PeutPlacerObjet(accesspoint)) { if (!zonedepart.AjouterObjet(accesspoint)) // Pas normal donc break; { Console.WriteLine("PlacerPoint: Erreur anormale rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); } else { foreach (var adj in new AccessPointFinder().FindAjacentOfZone(coor, zonearrivee)) { if (PlacerPoint(zonearrivee, zonedepart, false, adj)) { break; } } } break; } } } } else { if (coorReverse == null) { Console.WriteLine("Coordonnées du point d'accès reverse est null !"); return(false); } accesspoint.SetCoordonnees(coorReverse); if (!zonedepart.AjouterObjet(accesspoint)) { foreach (var obj in zonedepart.Objets) // s'il existe dejà un pt d'acces a cet endroit, rajouter la zone d'arrivée parmi les zones annexes { if (obj is AccessPoint) { if (obj.Case.Equals(coorReverse)) { var objAccess = (AccessPoint)obj; objAccess.AddZoneAnnexe(zonearrivee); // Cas où le point d'accès est relié à plusieurs zones (>= 3) return(true); } } } Console.WriteLine("PlacerPoint: Erreur rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); return(false); } } return(true); }
static void Main(string[] args) { List <CartoObj> liste = new List <CartoObj>(); Coordonnees c1 = new Coordonnees(); liste.Add(c1); Coordonnees c2 = new Coordonnees(10, 20); liste.Add(c2); POI p1 = new POI(); liste.Add(p1); POI p2 = new POI("test", 20, 30); liste.Add(p2); List <Coordonnees> l = new List <Coordonnees>(); l.Add(new Coordonnees(0, 1)); l.Add(new POI("lol", 0, 3)); l.Add(new Coordonnees(3, 4)); Polyline pl1 = new Polyline(); liste.Add(pl1); Polyline pl2 = new Polyline(l, 3, Colors.AliceBlue); liste.Add(pl2); Polygon pol1 = new Polygon(); liste.Add(pol1); Polygon pol2 = new Polygon(l, 2, Colors.ForestGreen, Colors.Aqua); liste.Add(pol2); foreach (CartoObj obj in liste) { if (obj is IPointy) { Console.WriteLine("Ipointy -- "); } else { Console.WriteLine("Not Ipointy --"); } Console.WriteLine(obj); Console.WriteLine("\n"); } List <Polyline> poListe = new List <Polyline>(); poListe.Add(pl1); poListe.Add(pl2); Polyline pl3 = new Polyline(); pl3.Coordonnees.Add(new Coordonnees(0, 5)); poListe.Add(pl3); Polyline pl4 = new Polyline(); pl4.Coordonnees.Add(new POI("lol", 0, 5)); poListe.Add(new Polyline()); poListe.Add(new Polyline()); poListe.Sort(); foreach (Polyline p in poListe) { Console.WriteLine(p); } PolylineComparer pc = new PolylineComparer(); poListe.Sort(pc); Console.WriteLine("+++++++++++++"); foreach (Polyline p in poListe) { Console.WriteLine(p); } Console.WriteLine("+++++++++++++"); Console.WriteLine( poListe.Find(x => x.NbPoints == 1) ); Console.WriteLine( poListe.FindAll(x => x.NbPoints == 1) ); DisplayCartoObjCollection( poListe.FindAll(x => x.IsPointClose(new Coordonnees(0, 0), 1)) ); Console.WriteLine("--------------- "); CartoComparer cc = new CartoComparer(); poListe.Sort(cc); DisplayCartoObjCollection(poListe); Console.ReadKey(); }
private Node <Case> GetNode(Coordonnees coor, Grille grille) { return((Node <Case>)grille[coor.X, coor.Y]); }
public static void Edit(Coordonnees c) { CoordonneesService.Edit(c); }
protected static bool PlacerPoint( ZoneFinale zonedepart,ZoneFinale zonearrivee, bool doReverseToo,Coordonnees coorReverse) { if (zonedepart == null || zonearrivee == null) { Console.Write("PlacerPoint: La zone de départ/arrivée est nulle ! "); return false; } string accesspointname = "Pt d'accès de " + zonedepart.nom + " vers " + zonearrivee.nom; var accesspoint = new AccessPoint(accesspointname, zonedepart.Simulation.NomDuJeu, zonearrivee); if (doReverseToo) { var list = new AccessPointFinder().Find(zonedepart, zonearrivee); if (list.Count == 0) { Console.WriteLine("Aucun point d'accès ne peut être placé entre la zone " + zonedepart + " et " + zonearrivee); } else { foreach (var coor in list) // Place l'objet dans la première coordonnée valide { accesspoint.SetCoordonnees(coor); if (zonedepart.PeutPlacerObjet(accesspoint)) { if (!zonedepart.AjouterObjet(accesspoint)) // Pas normal donc break; Console.WriteLine("PlacerPoint: Erreur anormale rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); else { foreach (var adj in new AccessPointFinder().FindAjacentOfZone(coor, zonearrivee)) { if (PlacerPoint(zonearrivee, zonedepart, false, adj)) break; } } break; } } } } else { if (coorReverse == null) { Console.WriteLine("Coordonnées du point d'accès reverse est null !"); return false; } accesspoint.SetCoordonnees(coorReverse); if (!zonedepart.AjouterObjet(accesspoint)) { foreach (var obj in zonedepart.Objets) // s'il existe dejà un pt d'acces a cet endroit, rajouter la zone d'arrivée parmi les zones annexes { if (obj is AccessPoint) { if (obj.Case.Equals(coorReverse)) { var objAccess = (AccessPoint) obj; objAccess.AddZoneAnnexe(zonearrivee); // Cas où le point d'accès est relié à plusieurs zones (>= 3) return true; } } } Console.WriteLine("PlacerPoint: Erreur rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); return false; } } return true; }
public Table(string nom, Coordonnees coor) : base(nom, EGame.AgeOfKebab, new TextureTable()) { SetCoordonnees(coor); }
public IEnumerable <ISecteur> Secteurs(Coordonnees position, double distance) { return(SecteurPrincipal.Secteurs(position, distance).OfType <FloorSecteur>()); }
public void SetCoordonnees(Coordonnees coor) { Case = coor; }
private Operateurs ajouterOperateur() { succesmessage.Text = ""; errormessage.Text = ""; Operateurs oper = new Operateurs(); Coordonnees cord = new Coordonnees(); if (nomTextBox.Text.Length == 0) { errormessage.Text = "Entrez un Nom"; nomTextBox.Focus(); } else if (prenomTextBox.Text.Length == 0) { errormessage.Text = "Entrez un Prenom"; prenomTextBox.Focus(); } else if (idTextBox.Text.Length == 0) { errormessage.Text = "Entrez un Matricul"; idTextBox.Focus(); } else { oper.Id = Int32.Parse(idTextBox.Text); oper.nom = nomTextBox.Text; oper.prenom = prenomTextBox.Text; cord.Adresse = adresseTextBox.Text; if (male.IsChecked == true) { cord.Sexe = "M"; } else if (female.IsChecked == true) { cord.Sexe = "F"; } cord.id = oper.Id; cord.civilStatus = civilStatus.Text; cord.dateOfBirth = dateOfBirth.SelectedDate; cord.dateOfEmployment = dateOfEmployment.SelectedDate; cord.departementName = departementName.Text; cord.graduationDate = graduationDate.SelectedDate; cord.educationLevel = educationlevel.Text; cord.Ville = villeTextBox.Text; cord.Email = emailTextBox.Text; cord.Tel = telTextBox.Text; if (postalCode.Text != "") { cord.postalCode = Int32.Parse(postalCode.Text); } cord.jobTitle = jobTitle.Text; cord.Operateur = oper; oper.Coordonnee = cord; using (var unitOfWork = new UnitOfWork(new yazakiDBEntities())) { try { unitOfWork.Operateurs.Add(oper); unitOfWork.Save(); succesmessage.Text = "Opérateur ajouter avec succès"; return(oper); } catch (Exception ex) { errormessage.Text = "Une érreur c'est produite impossible d'ajouter l'opérateur"; MessageBox.Show(ex.ToString()); } } } return(null); }
/// <summary> /// Constructeur statique. /// </summary> static CatalogueComportements() { // Initialisation des Comportement statiques. DryadTurn = new Comportement() { IsForwarder = (e, agent) => false, IsHandler = (e, agent) => e == Evenement.FirstTurn || e.Portee == 0, Handle = (e, agent) => { //ThreadPool.QueueUserWorkItem(HighPerfTimer.timePoint,agent.id.ToString()); if (agent.caracteristiques[LesCaracteristiques.Solitude].valeur > 20) { agent.caracteristiques[LesCaracteristiques.DistanceDeDeplacement].valeur = 8; } int dist = agent.caracteristiques[LesCaracteristiques.DistanceDeDeplacement].valeur; if (Kernel.CarteManipulee.Elements[agent.Coord.X][agent.Coord.Y].ElementBiome == TypeElementBiome.Eau || Kernel.CarteManipulee.Elements[agent.Coord.X][agent.Coord.Y].ElementBiome == TypeElementBiome.Pierre) { dist *= 4; } //Coordonnees oldCoord = new Coordonnees(agent.Coord.X, agent.Coord.Y); Coordonnees newCoord = new Coordonnees( agent.Coord.X + Randomizer.Next(-dist, dist + 1), agent.Coord.Y + Randomizer.Next(-dist, dist + 1) ); newCoord.X = Math.Max(0, newCoord.X); newCoord.X = Math.Min(Kernel.CarteManipulee.Largeur - 1, newCoord.X); newCoord.Y = Math.Max(0, newCoord.Y); newCoord.Y = Math.Min(Kernel.CarteManipulee.Hauteur - 1, newCoord.Y); Resultat res = agent.Do(NomAction.Teleporter, agent, newCoord); if (res == Resultat.Succes) { agent.Do(NomAction.Parler, agent, new Evt_Deplace(agent, agent.Coord.X, agent.Coord.Y)); } agent.caracteristiques[LesCaracteristiques.Solitude].valeur++; //Thread.Sleep(agent.caracteristiques[LesCaracteristiques.LenteurEsprit].valeur); agent.Envoyer(new Evenement(agent, null, 0)); } }; NearTo = new Comportement() { IsForwarder = (e, agent) => false, IsHandler = (e, agent) => e is Evt_Deplace, Handle = (e, agent) => { if (Kernel.CarteManipulee.Elements[agent.Coord.X][agent.Coord.Y].ElementBiome == TypeElementBiome.Eau || Kernel.CarteManipulee.Elements[agent.Coord.X][agent.Coord.Y].ElementBiome == TypeElementBiome.Pierre) { return; } agent.caracteristiques[LesCaracteristiques.DistanceDeDeplacement].valeur = 1; agent.caracteristiques[LesCaracteristiques.Solitude].valeur = 3; Resultat res = agent.Do(NomAction.Planter, agent, new Coordonnees(agent.Coord.X, agent.Coord.Y)); //Thread.Sleep(agent.caracteristiques[LesCaracteristiques.LenteurEsprit].valeur); //agent.Envoyer(new Evenement(agent, null, 0)); if (res != Resultat.Succes) { return; } Resultat resMort = agent.Do(NomAction.Mourir, agent, null); if (resMort == Resultat.Succes) { agent.Do(NomAction.Parler, agent, new Evt_Mort(agent)); } } }; DryadTurn.Next = NearTo; // Initialisation des Comportement statiques. CitizenTurn = new Comportement() { IsForwarder = (e, agent) => false, IsHandler = (e, agent) => e == Evenement.FirstTurn || e.Portee == 0, Handle = (e, agent) => { int dist = agent.caracteristiques[LesCaracteristiques.DistanceDeDeplacement].valeur; //Coordonnees oldCoord = new Coordonnees(agent.Coord.X, agent.Coord.Y); Coordonnees newCoord = new Coordonnees(agent.Coord.X + Randomizer.Next(-dist, dist + 1), agent.Coord.Y + Randomizer.Next(-dist, dist + 1)); newCoord.X = Math.Max(0, newCoord.X); newCoord.X = Math.Min(Kernel.CarteManipulee.Largeur - 1, newCoord.X); newCoord.Y = Math.Max(0, newCoord.Y); newCoord.Y = Math.Min(Kernel.CarteManipulee.Hauteur - 1, newCoord.Y); Resultat res = agent.Do(NomAction.Teleporter, agent, newCoord); if (res == Resultat.Succes) { agent.Do(NomAction.Construire, agent, agent.Coord); } // MaisonAutour ? agent.caracteristiques[LesCaracteristiques.Maison_X] = CatalogueCaracteristique.Maison_X(Kernel.CarteManipulee.Largeur / 2); agent.caracteristiques[LesCaracteristiques.Maison_Y] = CatalogueCaracteristique.Maison_Y(Kernel.CarteManipulee.Hauteur / 2); //Thread.Sleep(agent.caracteristiques[LesCaracteristiques.LenteurEsprit].valeur); agent.Envoyer(new Evenement(agent, null, 0)); } }; CitizenBuildRoad = new Comportement() { IsForwarder = (e, agent) => false, IsHandler = (e, agent) => { Caracteristique Maison_X = null; Caracteristique Maison_Y = null; agent.caracteristiques.TryGetValue(LesCaracteristiques.Maison_X, out Maison_X); agent.caracteristiques.TryGetValue(LesCaracteristiques.Maison_Y, out Maison_Y); return((e == Evenement.FirstTurn || e.Portee == 0) && (Maison_X != null && Maison_X.valeur >= 0) && (Maison_Y != null && Maison_Y.valeur >= 0)); }, Handle = (e, agent) => { Resultat res = agent.Do(NomAction.ConstruireRoute, agent, agent.Coord); if (res == Resultat.Succes) { int offset_x = agent.caracteristiques[LesCaracteristiques.Maison_X].valeur - agent.Coord.X; int offset_y = agent.caracteristiques[LesCaracteristiques.Maison_Y].valeur - agent.Coord.Y; agent.Do(NomAction.Teleporter, agent, new Coordonnees(agent.Coord.X + (offset_x == 0 ? offset_x : (offset_x / Math.Abs(offset_x))), agent.Coord.Y + (offset_y == 0 ? offset_y : (offset_y / Math.Abs(offset_y))))); } //Thread.Sleep(agent.caracteristiques[LesCaracteristiques.LenteurEsprit].valeur); agent.Envoyer(new Evenement(agent, null, 0)); } }; CitizenBuildRoad.Next = CitizenTurn; }
protected override bool TestEgaliteObjet(ObjetAbstrait obj, Coordonnees coor) { if (coor.Equals(obj.Case)) return true; return false; }
protected virtual bool TestEgaliteObjet(ObjetAbstrait obj, Coordonnees coor) { return false; // if (coor.Equals(obj.Case)) return true; // return false; }
public Coordonnees getPostionElement(TypeElementBiome typeElement, Coordonnees centre) { if (this.Elements[centre.X][centre.Y].ElementBiome == typeElement) { return(centre); } int rayonMax = Math.Max(this.Hauteur / 2, this.Largeur / 2); int rayonCarre; int y; int x1, x2, y1, y2; Coordonnees res = null; // DEBUG //StreamWriter sw = new StreamWriter(@".\Debug_getPostionElement.txt", false); //double tempsTotal = 0; //double tempsCalculRayonCarre = 0; //double tempsCalculY = 0; //double tempsRechercheDansTableauElements = 0; //DateTime debutGlobal, debutCalculRayonCarre, debutCalculY, debutRechercheTableau; //sw.WriteLine("Rayon;Etape;Temps"); //debutGlobal = DateTime.Now; // ----- for (int rayon = 1; rayon < rayonMax; rayon++) { // DEBUG //debutCalculRayonCarre = DateTime.Now; // ----- rayonCarre = rayon * rayon; // DEBUG //tempsCalculRayonCarre = DateTime.Now.Subtract(debutCalculRayonCarre).TotalMilliseconds; //sw.WriteLine("{0};Calcul R²;{1:0.000000}", rayon, tempsCalculRayonCarre); // ----- for (int x = 0; x <= rayon; x++) { // DEBUG //debutCalculY = DateTime.Now; // ----- // x² + y² = R² y = (int)Math.Sqrt(rayonCarre - (x * x)); // DEBUG //tempsCalculY = DateTime.Now.Subtract(debutCalculY).TotalMilliseconds; //sw.WriteLine(";Calcul Y;;{0:0.000000}", tempsCalculY); //debutRechercheTableau = DateTime.Now; // ----- x1 = centre.X - x; x2 = centre.X + x; y1 = centre.Y - y; y2 = centre.Y + y; if (x1 > 0 && y1 > 0 && this.Elements[x1][y1].ElementBiome == typeElement) { res = new Coordonnees(x1, y1); } else if (x1 > 0 && y2 < this.Hauteur && this.Elements[x1][y2].ElementBiome == typeElement) { res = new Coordonnees(x1, y2); } else if (x2 < this.Largeur && y1 > 0 && this.Elements[x2][y1].ElementBiome == typeElement) { res = new Coordonnees(x2, y1); } else if (x2 < this.Largeur && y2 < this.Hauteur && this.Elements[x2][y2].ElementBiome == typeElement) { res = new Coordonnees(x2, y2); } // DEBUG //tempsRechercheDansTableauElements = DateTime.Now.Subtract(debutRechercheTableau).TotalMilliseconds; //sw.WriteLine(";Recherche;;{0:0.000000}", tempsRechercheDansTableauElements); // ----- if (res != null) { break; } } // DEBUG //sw.WriteLine(""); //sw.Flush(); // ----- if (res != null) { break; } } // DEBUG //tempsTotal = DateTime.Now.Subtract(debutGlobal).TotalMilliseconds; //sw.WriteLine("TOTAL;{0:0.000}", tempsTotal); //sw.WriteLine(); //if (res != null) // sw.WriteLine("Point trouvé;{0}:{1}", res.X, res.Y); //else // sw.WriteLine("Rien trouvé", tempsTotal); //sw.Flush(); //sw.Close(); // ----- return(res); }
protected override PersonnageMobilisable PersonnageToInsertAt(Coordonnees coor) { return new Client("Client " + (PersonnagesInseres+1),coor); }
public Client(string nom,Coordonnees coor) : base(nom, EGame.AgeOfKebab, new TexturePlayer()) { SetCoordonnees(coor); Etat = new EtatClientEnAttenteDeFaim(); }
private Node<Case> GetNode(Coordonnees coor, Grille grille) { return (Node<Case>)grille[coor.X, coor.Y]; }
protected abstract PersonnageMobilisable PersonnageToInsertAt(Coordonnees coor);
public SpawnPoint(EGame nomdujeu, Coordonnees coor) : base("Point d'apparition générique", nomdujeu, new TextureCrossedCircle()) { SetCoordonnees(coor); }
public static void Add(Coordonnees c) { CoordonneesService.Add(c); }