Beispiel #1
0
 public PointWithIntensity GetPointWithIntensity(Position p)
 {
     LIList <PointWithIntensity> .Enumerator e = points.GetEnumerator();
     while (e.MoveNext())
     {
         if (e.Current.Tile.Position == p)
         {
             return(e.Current);
         }
     }
     return(null);
 }
Beispiel #2
0
        public Spider GetNearestSpider(LIList <Spider> spiders)
        {
            int min = Int32.MaxValue;
            int tmp;

            LIList <Spider> .Enumerator e = spiders.GetEnumerator();
            Spider bestSpider             = null;

            while (e.MoveNext())
            {
                if ((tmp = DistanceMeasurer.Taxi(this.Position, e.Current.Position)) < min)
                {
                    bestSpider = e.Current;
                    min        = tmp;
                }
            }
            return(bestSpider);
        }
Beispiel #3
0
        protected Food GetNearestFood(LIList <Food> foods)
        {
            if (foods.Count == 0)
            {
                return(null);
            }

            Food bestFood = null;
            int  min      = Int32.MaxValue;
            int  tmp;

            LIList <Food> .Enumerator e = foods.GetEnumerator();
            while (e.MoveNext())
            {
                if ((tmp = DistanceMeasurer.Taxi(this.Position, e.Current.Position)) < min)
                {
                    bestFood = e.Current;
                    min      = tmp;
                }
            }
            return(bestFood);
        }
Beispiel #4
0
        private Ant FindNearestAnt()
        {
            if (Simulation.simulation.queen == null)
            {
                return(null);
            }
            if (AntHillConfig.antSightRadius >= DistanceMeasurer.Taxi(Simulation.simulation.queen.Position, this.Position))
            {
                return(Simulation.simulation.queen);
            }

            LIList <Ant> ants = Simulation.simulation.GetVisibleAnts(this);

            if (ants == null)
            {
                return(null);
            }
            if (ants.Count == 0)
            {
                return(null);
            }
            int minDistance = DistanceMeasurer.Taxi(ants.First.Value.Position, Position);

            int distance;
            Ant bestAnt = null;

            LIList <Ant> .Enumerator ant = ants.GetEnumerator();
            while (ant.MoveNext())
            {
                if ((distance = DistanceMeasurer.Taxi(this.Position, ant.Current.Position)) < minDistance)
                {
                    bestAnt     = ant.Current;
                    minDistance = distance;
                }
            }
            return(bestAnt);
        }