/// <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); }
/// <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 }