Exemplo n.º 1
0
 /// <summary>
 /// Ajoute un objet volant dans la file d'attente si possible
 /// </summary>
 /// <returns>Vrai si l'ajout a ete fait et Faux si l'ajout n'a pas ete possible</returns>
 public bool EnQueueFileAttente(ObjVolants objet)
 {
     if (fileAttente.Count < tailleFileAttente)
     {
         fileAttente.Enqueue(objet);
         return(true);
     }
     return(false);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Met a jour different composants de la piste. Par exemple, si la piste a besoin d'être prepare, elle le sera. Si un avion est en train de coller
        /// ou bien d'atterrir, la progression continuera.
        /// </summary>
        public void Update()
        {
            if (occupee)
            {
                if (utilisateur == null)                          // Si un objVolants vient d'atterir/decoller mais que la piste est en preparation
                {
                    if (progressionPiste < tempsPreparationPiste) // Si la preparation n'est pas fini
                    {
                        progressionPiste++;
                    }
                    else
                    {
                        occupee          = false;
                        progressionPiste = 0;
                    }
                }
                else //Si un avion est encore en train d'atterir ou decoller
                {
                    if (utilisateur.Statut == ObjVolants.StatutAvion.Decollage)
                    {
                        if (progressionPiste < utilisateur.TempsDecollage) // Si l'objets volants n'a pas fini de decoller
                        {
                            progressionPiste++;
                        }
                        else //L'avion s'envole et on prepare la piste
                        {
                            utilisateur.Statut = ObjVolants.StatutAvion.EnVol;
                            _avionsDecolles.Add(utilisateur);
                            utilisateur      = null;
                            progressionPiste = 0;
                        }
                    }
                    else if (utilisateur.Statut == ObjVolants.StatutAvion.Atterissage)
                    {
                        if (progressionPiste < utilisateur.TempsAtterissage) // Si l'avion n'a pas atteri
                        {
                            progressionPiste++;
                        }
                        else //L'avion a atteri
                        {
                            if (taxiWay.Count < tailleTaxiWay) // S'il reste de la place dans le taxi way
                            {
                                //On l'ajout au taxi way
                                utilisateur.Statut = ObjVolants.StatutAvion.AuSol;
                                taxiWay.Enqueue(utilisateur);
                                //On supprime l'avion de la piste
                                utilisateur = null;

                                //On prepare la piste
                                progressionPiste = 0;
                            }
                            else //Si le taxi way est plein, on fait attendre l'avion sur la piste
                            {
                                utilisateur.Statut = ObjVolants.StatutAvion.SurPisteEnAttente;
                            }
                        } // Fin si avion atteri
                    }     // Fin si avion en atterissage
                    else if (utilisateur.Statut == ObjVolants.StatutAvion.SurPisteEnAttente)
                    {
                        if (taxiWay.Count < tailleTaxiWay) // Si il y a de la place dans le taxi way
                        {
                            utilisateur.Statut = ObjVolants.StatutAvion.AuSol;
                            //On ajoute l'avion au taxi way
                            taxiWay.Enqueue(utilisateur);
                            //On libere la piste et la prepare
                            utilisateur      = null;
                            progressionPiste = 0;
                        } // Fin si on peut ajouter l'avion en attente sur le taxi way
                    }     //Fin si avion est en attente sur piste
                }         //Fin si avion en train de decoller ou atterir
            }             // Fin si la piste est utilisee
        }