예제 #1
0
        protected Aeroport m_aeroport;    //Référence à l'aeroport

        /**Constructeur de véhicule
         * p_nom: le nom du véhicule
         * p_KMH: la vitesse de déplacement du véhicule
         * p_tempsMaintenance: le temps de maintenance du véhicule
         * p_couleur: la couleur de la ligne à l'affichage
         * p_posAeroport: position de l'aeroport qui le contient
         * p_scenario: référence sur le scenario
         * p_aeroport: référence sur l'aeroport dans lequel il est
         */
        public Vehicule(string p_nom, int p_KMH, int p_tempsMain, Color p_couleur, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport)
        {
            m_nom = p_nom;
            m_KMH = p_KMH;
            m_tempsMaintenance = p_tempsMain;
            m_couleur          = p_couleur;
            Usine usine = Usine.obtenirUsine();

            m_etat = usine.creerHangar(this);
            m_etat.eventEtatFini += new DelegateEtatFini(ChangerEtat);
            m_posDepart           = p_posAeroport;
            m_scenario            = p_scenario;
            m_aeroport            = p_aeroport;
        }
예제 #2
0
        private Aeroport aeroportCorrespondant(PosCarte p_pos) //Trouver l'aéroport correspondant aux coordonnées
        {
            Aeroport aeroport = null;                          //Aéroport

            for (int i = 0; i < m_aeroports.Count; i++)
            {
                PosCarte posAero = m_aeroports[i].Pos;                //Emplacement aéroport

                if ((posAero.X == p_pos.X) && (posAero.Y == p_pos.Y)) //Si c'est le même emplacement
                {
                    aeroport = m_aeroports[i];
                }
            }

            return(aeroport);
        }
예제 #3
0
        private bool assignerClient(Client p_client) //Assigner le client à un aéroport proche
        {
            Aeroport AeroportProche = null;          //Aéroport la plus proche

            int PosX = p_client.PositionX;           //X du client
            int PosY = p_client.PositionY;           //Y du client

            int DistancesX     = 0;                  //Distance entre les X
            int DistancesY     = 0;                  //Distance entre les Y
            int Distance       = 0;                  //Distance entre le client et l'aéroport
            int DistanceProche = 9999999;            //La distance la moins grande

            for (int i = 0; i < m_aeroports.Count; i++)
            {
                int PosXAeroport = m_aeroports[i].Pos.X; //X de l'aéroport
                int PosYAeroport = m_aeroports[i].Pos.Y; //Y de l'aéroport

                DistancesX = Math.Abs(PosX - PosXAeroport);
                DistancesY = Math.Abs(PosY - PosYAeroport);
                Distance   = DistancesX + DistancesY;

                if (Distance < DistanceProche && m_aeroports[i].assignerClientPossible(p_client)) //Si moins loin
                {
                    DistanceProche = Distance;
                    AeroportProche = m_aeroports[i];
                }
            }

            if ((AeroportProche != null) && (AeroportProche.assignerClientPossible(p_client))) //Si un véhicule est disponible
            {
                AeroportProche.assignerClient(p_client);
                return(true);
            }

            return(false);
        }
예제 #4
0
        protected Observateur m_client;      //Le client observateur

        /** Constructeur d'un avion observateur
         * p_nom: le nom du véhicule
         * p_KMH: la vitesse de déplacement de l'avion
         * p_tempsMain: le temps de maintenance
         * p_couleur: la couleur de la ligne à l'affichage
         * p_posAeroport: l'aeroport qui le contient (pour extraire ses coordonnées)
         * p_tempsEmb: le temps d'embarquement de l'avion
         * p_tempsDeb: le temps de debarquement de l'avion
         * p_scenario: référence sur le scenario
         * p_aeroport: référence sur l'aeroport dans lequel il est
         */
        public AvionObservateur(string p_nom, int p_KMH, int p_tempsMain, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport) //Constructeur
            : base(p_nom, p_KMH, p_tempsMain, Color.Gray, p_posAeroport, p_scenario, p_aeroport)
        {
        }
예제 #5
0
        protected ClientTransport m_client;         //Le client du véhicule


        /** Constructeur d'un avion de transport
         * p_nom: le nom du véhicule
         * p_KMH: la vitesse de déplacement de l'avion
         * p_tempsMain: le temps de maintenance
         * p_couleur: la couleur de la ligne à l'affichage
         * p_posAeroport: l'aeroport qui le contient
         * p_tempsEmb: le temps d'embarquement de l'avion
         * p_tempsDeb: le temps de debarquement de l'avion
         * p_scenario: référence au scenario
         * p_aeroport: référence à l'aeroport dans lequel il est
         */
        public AvionTransport(string p_nom, int p_KMH, int p_tempsMain, int p_tempsEmb, int p_tempsDeb, Color p_couleur, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport) //Constructeur
            : base(p_nom, p_KMH, p_tempsMain, p_couleur, p_posAeroport, p_scenario, p_aeroport)
        {
            m_tempsEmbarquement = p_tempsEmb;
            m_tempsDebarquement = p_tempsDeb;
        }
예제 #6
0
        protected Feu m_client;          //Le client Feu

        /** Constructeur d'un avion citerne
         * p_nom: le nom du véhicule
         * p_KMH: la vitesse de déplacement de l'avion
         * p_tempsMain: le temps de maintenance
         * p_couleur: la couleur de la ligne à l'affichage
         * p_posAeroport: position de l'aeroport qui le contient (pour extraire ses coordonnées)
         * p_tempsCharg: le temps d'embarquement de l'avion
         * p_tempsLarg: le temps de debarquement de l'avion
         * p_scenario: référence sur le scenario
         * p_aeroport: référence sur l'aeroport dans lequel il est
         */
        public AvionCiterne(string p_nom, int p_KMH, int p_tempsMain, int p_tempsCharg, int p_tempsLarg, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport)
            : base(p_nom, p_KMH, p_tempsMain, Color.Yellow, p_posAeroport, p_scenario, p_aeroport)
        {
            m_tempsChargement = p_tempsCharg;
            m_tempsLargage    = p_tempsLarg;
        }
예제 #7
0
        public void transfererVehicule(Vehicule p_vehicule, PosCarte p_posAero) //Transférer le véhicule entre aéroports
        {
            Aeroport aeroport = aeroportCorrespondant(p_posAero);

            aeroport.ajouterVehicule(p_vehicule);
        }
예제 #8
0
 /** Constructeur d'un avion de marchandises
  * p_nom: le nom du véhicule
  * p_KMH: la vitesse de déplacement de l'avion
  * p_tempsMain: le temps de maintenance
  * p_couleur: la couleur de la ligne à l'affichage
  * p_aeroport: l'aeroport qui le contient (pour extraire ses coordonnées)
  * p_tempsEmb: le temps d'embarquement de l'avion
  * p_tempsDeb: le temps de debarquement de l'avion
  * p_scenario: référence au scenario
  * p_aeroport: référence à l'aeroport dans lequel il est
  */
 public AvionPassagers(string p_nom, int p_KMH, int p_tempsMain, int p_tempsEmb, int p_tempsDeb, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport) //Constructeur
     : base(p_nom, p_KMH, p_tempsMain, p_tempsEmb, p_tempsDeb, Color.Green, p_posAeroport, p_scenario, p_aeroport)
 {
 }
예제 #9
0
 /** Constructeur d'un avion de marchandises
  * p_nom: le nom du véhicule
  * p_KMH: la vitesse de déplacement de l'avion
  * p_tempsMain: le temps de maintenance
  * p_couleur: la couleur de la ligne à l'affichage
  * p_aeroport: l'aeroport qui le contient (pour extraire ses coordonnées)
  * p_tempsEmb: le temps d'embarquement de l'avion
  * p_tempsDeb: le temps de debarquement de l'avion
  * p_scenario: référence au scenario
  * p_aeroport: référence à l'aeroport dans lequel il est
  */
 public AvionMarchandises(string p_nom, int p_KMH, int p_tempsMain, int p_tempsEmb, int p_tempsDeb, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport) //Constructeur
     : base(p_nom, p_KMH, p_tempsMain, p_tempsEmb, p_tempsDeb, Color.Blue, p_posAeroport, p_scenario, p_aeroport)
 {
 }
예제 #10
0
        protected Secours m_client;       //Le client Secours

        /** Constructeur d'un hélicoptère de secours
         * p_nom: le nom du véhicule
         * p_KMH: la vitesse de déplacement de l'avion
         * p_tempsMain: le temps de maintenance
         * p_couleur: la couleur de la ligne à l'affichage
         * p_posAeroport: l'aeroport qui le contient (pour extraire ses coordonnées)
         * p_scenario: référence sur le scenario
         * p_aeroport: référence sur l'aeroport dans lequel il est
         */
        public HelicoSecours(string p_nom, int p_KMH, int p_tempsMain, PosCarte p_posAeroport, Scenario p_scenario, Aeroport p_aeroport) //Constructeur
            : base(p_nom, p_KMH, p_tempsMain, Color.Red, p_posAeroport, p_scenario, p_aeroport)
        {
        }