Пример #1
0
        private CAeronef ChoisirAeronef(CVoyageur client)
        {
            List <CAeronef> aPassager =
                Aeronefs.FindAll(vehicule => (vehicule.etat.Status == EtatAeronef.Inactif && vehicule.Type == typeAvion.Passager));

            if (aPassager.Count <= 0)
            {
                return(null);
            }

            aPassager.Sort((x, y) => x.capacite.CompareTo(y.capacite));
            CAeronef aeronef = aPassager.ElementAt(aPassager.Count - 1);

            for (int i = aPassager.Count() - 2; i >= 0 && aeronef.capacite > client.clients; i--)
            {
                aeronef = (aPassager.ElementAt(i).capacite >= client.clients) ? aPassager.ElementAt(i) : aeronef;
            }
            return(aeronef);
        }
Пример #2
0
        private CAeronef ChoisirAeronef(CCargaison client)
        {
            List <CAeronef> aCargo =
                Aeronefs.FindAll(vehicule => (vehicule.etat.Status == EtatAeronef.Inactif && vehicule.Type == typeAvion.Cargo));

            if (aCargo.Count <= 0)
            {
                return(null);
            }

            aCargo.Sort((x, y) => x.capacite.CompareTo(y.capacite));
            CAeronef aeronef = aCargo.ElementAt(aCargo.Count - 1);

            for (int i = aCargo.Count() - 2; i >= 0 && aeronef.capacite > client.poid; i--)
            {
                aeronef = (aCargo.ElementAt(i).capacite >= client.poid) ? aCargo.ElementAt(i) : aeronef;
            }
            return(aeronef);
        }
Пример #3
0
        public Etat ChangerEtat(CAeronef aeronef, int TimerSecs)
        {
            if (!Fini)
            {
                double TimeDiff = (TimerSecs - aeronef.DebutEtat) / 3600.0;
                if (TimeDiff >= 1)
                {
                    double a = (double)(m_posArriver.y - m_posActuelle.y) / (double)(m_posArriver.x - m_posActuelle.x);
                    double x = (m_posActuelle.x + aeronef.vitesse * TimeDiff);
                    double b = (a * (double)m_posActuelle.x - m_posActuelle.y) * -1;
                    double y = a * x + b;

                    m_posActuelle.x = (int)x;
                    m_posActuelle.y = (int)y;
                }
            }
            if (m_prevEtat == EtatAeronef.Embarquement)
            {
                return(Fini ? new CDebarquement(aeronef.DebutEtat, (aeronef as CTransport).debarquement, aeronef.capacite) : base.ChangerEtat());
            }

            return(Fini ? new CMaintenance(aeronef.DebutEtat, aeronef.entretient): base.ChangerEtat());
        }
Пример #4
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     return(Fini ? new CVol(EtatAeronef.Sauvetage, m_posArriver, m_posDepart) : base.ChangerEtat());
 }
Пример #5
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     return(base.ChangerEtat());
 }
Пример #6
0
 public int AjouterAeronef(CAeronef Aeronef)
 {
     Aeronefs.Add(Aeronef);
     return(Aeronefs.Count());
 }
Пример #7
0
 public void RetierAeronef(CAeronef Aeronef)
 {
     Aeronefs.RemoveAt(Aeronefs.FindIndex(e => e == Aeronef));
 }
Пример #8
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     MaintenanceFini = FinMaintenance <= aeronef.DebutEtat;
     return(Fini ? new CInactif():base.ChangerEtat());
 }
Пример #9
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     return(Fini ? new CVol(EtatAeronef.Embarquement, depart, arriver): base.ChangerEtat());
 }
Пример #10
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     return(Fini ? new CVol(EtatAeronef.Observation, m_posArriver, m_posDepart) : base.ChangerEtat());
 }
Пример #11
0
 public void AjouterAeronef(CAeroport Aeroport, CAeronef Aeronef)
 {
     Aeroport.AjouterAeronef(Aeronef);
 }
Пример #12
0
 public virtual Etat ChangerEtat(CAeronef aeronef, Position depart, Position arriver)
 {
     return(this);
 }
Пример #13
0
 public abstract Etat ChangerEtat(CAeronef aeronef);
Пример #14
0
 public override Etat ChangerEtat(CAeronef aeronef)
 {
     return(Fini ? new CMaintenance(aeronef.DebutEtat, aeronef.entretient):base.ChangerEtat());
 }