public Spot(int x, int y, ParkZone parkZone) { X = x; Y = y; ParkZone = parkZone; ParkZone.AddFreeParkSpot(this); CalcDistToTarget(); CalcTimeToTarget(); CalculatePriceForStay(); }
private static void ReadInput() { var numOfParkZones = int.Parse(Console.ReadLine()); parkZones = new List <ParkZone>(); var parkZoneParams = new List <string>(); for (int i = 0; i < numOfParkZones; i++) { parkZoneParams.Add(Console.ReadLine()); } var freeParkSpots = Console.ReadLine() .Split(';') .ToArray(); var targetCoord = Console.ReadLine() .Split(", ".ToArray(), StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse) .ToArray(); var target = new Spot(targetCoord[0], targetCoord[1]); var timePerSpot = int.Parse(Console.ReadLine()); for (int i = 0; i < parkZoneParams.Count; i++) { var line = parkZoneParams[i].Split(':').ToArray(); var parkZoneName = line[0].Trim(); var parameters = line[1] .Trim() .Split(", ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) .ToArray(); var coordinates = parameters.Take(4).Select(int.Parse).ToArray(); var price = decimal.Parse(parameters[4]); var parkZone = new ParkZone(parkZoneName, coordinates[0], coordinates[1], coordinates[2], coordinates[3], price, target, timePerSpot); parkZones.Add(parkZone); } foreach (var parkSpotStr in freeParkSpots) { var parkSpotCoord = parkSpotStr .Split(", ".ToArray(), StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse) .ToArray(); var x = parkSpotCoord[0]; var y = parkSpotCoord[1]; foreach (var parkZone in parkZones) { if (parkZone.isInParkZone(x, y)) { var parkSpot = new Spot(x, y, parkZone); break; } } } }