예제 #1
0
        public List <int> UpdateSicknessQueue()
        {
            Random     rnd            = new Random();
            List <int> sicknessLevels = new List <int>();
            int        sickLevel;
            int        randomNumber;

            foreach (var patients in PatientsQueue.ToArray())
            {
                randomNumber = rnd.Next(1, 101);

                if (randomNumber <= RiskIncrease)
                {
                    patients.UpdateSicknessLevel(1);
                }
                else if (randomNumber >= ChanceDecrease)
                {
                    patients.UpdateSicknessLevel(-1);
                }

                sickLevel = patients.CheckSicknessLevel();
                if (sickLevel != 0)
                {
                    TempPatients.Add(patients);
                    TimeInQueue.Add(patients.GetTimeInQueue());
                    sicknessLevels.Add(sickLevel);
                    RemoveSpecificPatient(patients);
                }
            }
            return(sicknessLevels);
        }
예제 #2
0
 public Patient GetPatient()
 {
     if (PatientsQueue.Count != 0)
     {
         TimeInQueue.Add(PatientsQueue.Peek().GetTimeInQueue());
         return(PatientsQueue.Dequeue());
     }
     return(null);
 }
예제 #3
0
 public int GetCountOfPatient()
 {
     return(PatientsQueue.Count());
 }
예제 #4
0
 public void RemoveSpecificPatient(Patient patient)
 {
     PatientsQueue = new Queue <Patient>(PatientsQueue.Where(x => x != patient));
 }