Exemple #1
0
        public void Execute(Simulation sim)
        {
            var startPoint = new Vehicule();

            foreach (var simToRemove in sim.Rides.Where(r => startPoint.GetDistanceTo(r.StartPoint) + r.GetDistance() > sim.Steps))
            {
                sim.Rides.Remove(simToRemove);
            }

            for (; sim.CurrentStep < sim.Steps; sim.CurrentStep++)
            {
                AssignRide(sim);
                foreach (var vehicule in sim.Vehicules)
                {
                    vehicule.ComputeNextPosition();
                }
            }
        }
Exemple #2
0
        private Ride ComputeScoreForVhc(Vehicule vhc, int cStep)
        {
            long maxScore = 0;
            Ride ret      = null;

            for (int i = 0; i < _sim.Rides.Count; i++)
            {
                if (!_rAssigned[i])
                {
                    var ride  = _sim.Rides[i];
                    var score = vhc.GetDistanceTo(ride.StartPoint);
                    if (score > maxScore)
                    {
                        ret      = ride;
                        maxScore = score;
                    }
                }
            }

            return(ret);
        }