/// <summary> /// Cosntructeur vide d'un aéroport /// </summary> public Aeroport() { m_nom = "null"; m_localisation = new PositionGeo(); m_listAeronef = new List <Aeronef>(); m_achalPassager = 0; m_achalMarchandise = 0; }
/// <summary> /// Obtient une position random pour le feu /// </summary> /// <param name="width">Width de la carte</param> /// <param name="height">Height de la carte</param> /// <param name="rand">Random</param> /// <returns>PositionGeo aléatoire dans la carte</returns> public override PositionGeo randomPosition(int width, int height, Random rand) { PositionGeo position = new PositionGeo(); position.PosX = rand.Next(width); position.PosY = rand.Next(height); return(position); }
/// <summary> /// Cosntructeur d'un aéroport /// </summary> /// <param name="p_nom">Nom de l'aeroport</param> /// <param name="p_achalMarchandise">Nombre représentant l'achalandage des marchandises de l'aeroport</param> /// <param name="p_achalPassager">Nombre représentant l'achalandage des passagers de l'aeroport</param> public Aeroport(string p_nom, int p_achalMarchandise, int p_achalPassager) { m_listAeronef = new List <Aeronef>(); m_listClient = new List <Client>(); m_nom = p_nom; m_achalPassager = p_achalPassager; m_achalMarchandise = p_achalMarchandise; m_localisation = new PositionGeo(); m_image = Properties.Resources.airport; }
/// <summary> /// Constructeur vide d'aeroincendie. /// </summary> public AeroIncendie() : base() { m_nom = "null"; m_vitesse = 0; m_tempsEnt = 0; m_dispo = true; m_origine = new PositionGeo(); m_image = null; m_nbAller = 0; this.m_indexClient = -1; }
/// <summary> /// Constructeur d'Aeronef de secours /// </summary> /// <param name="nom">Nom de l'aeronef</param> /// <param name="type">Type de l'aeronef</param> /// <param name="vitesse">Vitesse de l'aeronef</param> /// <param name="entretien">Temps d'entretien de l'aeronef</param> /// <param name="origine">Origine de l'aeronef</param> /// <param name="nbAller">Nombre d'aller retour que l'aeronef doit effectuer</param> public AeroSecours(string nom, string type, int vitesse, int entretien, PositionGeo origine, int nbAller) : base(nom, type, vitesse, entretien, origine) { this.m_nom = nom; this.m_type = type; this.m_vitesse = vitesse; this.m_tempsEnt = entretien; this.m_origine = origine; this.m_dispo = true; this.m_indexClient = -1; this.m_nbAller = nbAller; }
/// <summary> /// Constructeur vide d'aeronef. /// </summary> public Aeronef() { m_nom = "null"; m_vitesse = 0; m_tempsEnt = 0; m_localisation = new PositionGeo(); m_origine = new PositionGeo(); this.m_dispo = true; this.m_indexClient = -1; this.m_etat = new Etat(this);; }
/// <summary> /// Constructeur complex AeroIncendie. /// </summary> /// <param name="nom">Nom de l'aeronef</param> /// <param name="vitesse">Vitesse de l'aeronef</param> /// <param name="entretien">Temps d'entretien de l'aeronef</param> /// <param name="origine">Point d'origine de l'aeronef</param> /// <param name="type">Type de l'areonef</param> public AeroIncendie(string nom, string type, int vitesse, int entretien, PositionGeo origine) : base(nom, type, vitesse, entretien, origine) { this.m_nom = nom; this.m_type = type; this.m_vitesse = vitesse; this.m_tempsEnt = entretien; this.m_dispo = true; this.m_origine = origine; this.m_image = Properties.Resources.incendie; this.m_nbAller = 0; this.m_indexClient = -1; }
/// <summary> /// Constructeur d'aeronef. /// </summary> /// <param name="nom">Nom de l'aeronef</param> /// <param name="vitesse">Vitesse de l'aeronef</param> /// <param name="entretien">Temps d'entretien de l'aeronef</param> /// <param name="origine">Point d'origine de l'aeronef</param> public Aeronef(string nom, string type, int vitesse, int entretien, PositionGeo origine) { this.m_nom = nom; this.m_type = type; this.m_vitesse = vitesse; this.m_tempsEnt = entretien; this.m_localisation = null; this.m_origine = origine; this.m_dispo = true; this.m_etat = new Etat(this); this.m_indexClient = -1; }
/// <summary> /// Constructeur complex d'AeroObservateur /// </summary> /// <param name="nom">Nom de l'aeronef</param> /// <param name="vitesse">Vitesse de l'aeronef</param> /// <param name="entretien">Temps d'entretien de l'aeronef</param> /// <param name="origine">Point d'origine de l'aeronef</param> /// <param name="nbAller">Nombre d'aller que l'aeronef fait</param> /// <param name="rayon">Rayon d'un tour complet de l'aeronef</param> /// <param name="type">type de l'areonef</param> public AeroObservateur(string nom, string type, int vitesse, int entretien, PositionGeo origine, int nbAller, int rayon) : base(nom, type, vitesse, entretien, origine) { this.m_nom = nom; this.m_type = type; this.m_vitesse = vitesse; this.m_tempsEnt = entretien; this.m_origine = origine; this.m_dispo = true; this.m_nbAller = nbAller; this.m_rayon = rayon; this.m_indexClient = -1; }
/// <summary> /// Constructeur vide d'AeroMarchandise /// </summary> public AeroMarchandise() : base() { m_nom = "null"; m_vitesse = 0; m_tempsEnt = 0; m_origine = new PositionGeo(); m_tempsEmb = 0; m_tempsDeb = 0; m_capacite = 0; m_image = null; this.m_indexClient = -1; m_clientDestination = new PositionGeo(); }
/// <summary> /// Constructeur complex d'AeroMarchandise /// </summary> /// <param name="nom">Nom de l'aeronef</param> /// <param name="vitesse">Vitesse de l'aeronef</param> /// <param name="entretien">Temps d'entretien de l'aeronef</param> /// <param name="origine">Point d'origine de l'aeronef</param> /// <param name="charger">Temps de chargement de l'aeronefe</param> /// <param name="decharger">Temps de déchargement de l'aeronef</param> /// <param name="change">Capacité de l'aeronef</param> public AeroMarchandise(string nom, string type, int vitesse, int entretien, PositionGeo origine, int charger, int decharger, int change) : base(nom, type, vitesse, entretien, origine, charger, decharger) { this.m_nom = nom; this.m_type = type; this.m_vitesse = vitesse; this.m_tempsEnt = entretien; this.m_origine = origine; this.m_tempsEmb = charger; this.m_tempsDeb = decharger; this.m_capacite = change; this.m_indexClient = -1; m_clientDestination = new PositionGeo(); }
/// <summary> /// Avance l'avion vers sa destination /// </summary> /// <param name="tempsPasse">Minute passée dans la simulation pendant le tick</param> /// <param name="clients">Liste des clients dans l'aéroport auquel appartient l'aéronef</param> public override void avancer(int tempsPasse, List <Client> clients) { int x = m_positionActuelle.PosX; int y = m_positionActuelle.PosY; int clientX = clients[m_aeronef.IndexClient].Destination.PosX; int clientY = clients[m_aeronef.IndexClient].Destination.PosY; double distance = pythagore(clientX - x, clientY - y); double ticks = distance / (m_aeronef.Vitesse * tempsPasse); m_positionActuelle.PosX += Convert.ToInt32((clientX - x) / ticks); m_positionActuelle.PosY += Convert.ToInt32((clientY - y) / ticks); //Selon le type de l'aéonef, le dirige vers le prochain état switch (m_aeronef.Type) { case "Secours": if (m_positionActuelle.Equals(clients[m_aeronef.IndexClient].Destination)) { PositionGeo tempo = m_aeronef.Origine; m_aeronef.Origine = clients[m_aeronef.IndexClient].Destination; clients[m_aeronef.IndexClient].Destination = tempo; } else { } break; case "Incendies": if (true) { } break; default: break; } }
/// <summary> /// Cosntructeur de distance /// </summary> /// <param name="nom"></param> /// <param name="type"></param> /// <param name="vitesse"></param> /// <param name="entretien"></param> /// <param name="origine"></param> public Distance(string nom, string type, int vitesse, int entretien, PositionGeo origine) : base(nom, type, vitesse, entretien, origine) { }
/// <summary> /// Constructeur vide de transport /// </summary> /// <param name="nom"></param> /// <param name="type"></param> /// <param name="vitesse"></param> /// <param name="entretien"></param> /// <param name="origine"></param> /// <param name="charger"></param> /// <param name="decharger"></param> public Transport(string nom, string type, int vitesse, int entretien, PositionGeo origine, int charger, int decharger) : base(nom, type, vitesse, entretien, origine) { }
/// <summary> /// Obtient une position aléatoire pour la génération d'un client /// </summary> /// <param name="width">Width de la carte</param> /// <param name="height">Height de la carte</param> /// <param name="rand">Aléatoire</param> /// <returns>Retourne une position geographique</returns> virtual public PositionGeo randomPosition(int width, int height, Random rand) { PositionGeo position = new PositionGeo(); return(position); }