public static ParkingResult Calculate(double initialLength /*, Curve initialCurve*/) { PeterParker origin = new PeterParker(initialLength /*, initialCurve*/); Queue <PeterParker> wait = new Queue <PeterParker>(); PeterParkerCollection fit = new PeterParkerCollection(); wait.Enqueue(origin); while (wait.Count > 0) { PeterParker current = wait.Dequeue(); for (int i = 0; i < (int)ParkingType.Max; i++) { PeterParker temp = new PeterParker(current, (ParkingType)i); if (temp.LeftLength() < 0) { //cull } else if (temp.LeftLength() > 0) { if (temp.LeftLength() < 5) { //fit fit.Add(temp); } else { //re enqueue wait.Enqueue(temp); } } } } // fit.collection.ForEach(n => n.FillRoads()); var result = new ParkingResult(fit); return(result); }
public ParkingResult(PeterParkerCollection result) { resultCollection = result; }