public CarDistance(Car car, int distance,Road road, int delay = 0 ) { this.Car = car; this.Distance = distance; this.Road = road; this.Delay = delay; }
public bool AddCarToIncreasingLane(Car car,int distanceFromCrossroad,int delay = 0) { var targetLaneIndex = GetEmptiestIncreasingLane(); if (SpaceOnEnterIncreasingLane(targetLaneIndex)) { car.RoadProgress ++; IncreasingLanes[targetLaneIndex].AddLast(new CarDistance(car, distanceFromCrossroad, this, delay)); } else { targetLaneIndex = SpaceOnEnterIncreasingLane(); if (targetLaneIndex != -1) { car.RoadProgress++; IncreasingLanes[targetLaneIndex].AddLast(new CarDistance(car, distanceFromCrossroad, this, delay)); } else { return false; } } return true; }