Пример #1
0
 public Car GetNextCar()
 {
     if (AreCarsWaiting)
     {
         var car = QueuedCars[0];
         QueuedCars.RemoveAt(0);
         return(car);
     }
     return(null);
 }
Пример #2
0
        public void UpdateQueue(int curentTime)
        {
            var carsToAdd  = from c in CarsToSpawn where c.EntryTime == curentTime select c;
            var carsToAdd2 = carsToAdd.ToList();

            if (carsToAdd2.Count > 0)
            {
                foreach (var a in carsToAdd2)
                {
                    QueuedCars.Add(a);
                    CarsToSpawn.Remove(a);
                }
            }
        }
Пример #3
0
        public Car PeekAtQueue()
        {
            if (QueuedCars.Any())
            {
                return(QueuedCars[0]);
            }
            var nextCarMaybe = from a in CarsToSpawn where a.EntryTime == (Roundabout.MainCurrTime + 2) select a;

            if (nextCarMaybe.Count() > 1)
            {
                throw new Exception("There was a car time collision.");
            }
            if (nextCarMaybe.Count() == 1)
            {
                return(nextCarMaybe.Single());
            }
            return(null);
        }