Example #1
0
        public override Dictionary <Evader, Point> getNextStep()
        {
            Dictionary <Evader, Point> res = new Dictionary <Evader, Point>();
            IEnumerable <Evader>       relevantEvaders;

            if (prevS.ActiveEvaders.Count == 0)
            {
                relevantEvaders = gm.A_E; //first round
            }
            else
            {
                relevantEvaders = prevS.ActiveEvaders;
            }

            foreach (Evader e in relevantEvaders)
            {
                if (currentEvadersLocations[e].nodeLocation.manDist(intrusionAreaCenter) > gm.r_e)
                {
                    res[e] = pgui.getMovement(e).First().nodeLocation;
                    currentEvadersLocations[e] = pgui.getMovement(e).First();
                }
                else
                {
                    // evader is on intrusion circumference - it is now stuck!
                    res[e] = currentEvadersLocations[e].nodeLocation;
                }
            }
            return(res);
        }
Example #2
0
        public override Dictionary <Pursuer, List <Point> > getNextStep()
        {
            Dictionary <Pursuer, List <Point> > res = new Dictionary <Pursuer, List <Point> >();

            foreach (Pursuer p in gm.A_P)
            {
                currentPursuersLocations[p] = pgui.getMovement(p).Last().nodeLocation;
                res[p] = pgui.getMovement(p).Select(x => x.nodeLocation).ToList();
            }

            return(res);
        }
Example #3
0
        public override Dictionary <Pursuer, Location> getNextStep()
        {
            foreach (Pursuer p in gm.A_P)
            {
                currentPursuersLocations[p] = pgui.getMovement(p).First();
            }

            return(currentPursuersLocations);
        }